X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-ui%2Fmenu.c;h=f8a2565fb423892f5e9616a5d9093901b15c7090;hp=0a1d716d17377249b5fdb7ad8d33e1fd7e5d1f30;hb=8ab1ab66eb1c4b95f9b2a5ed9c2b2cf1dfa74544;hpb=fbb57685ed2c5633f7c76acb7cf2c9bd9d4897b3 diff --git a/lib-ui/menu.c b/lib-ui/menu.c index 0a1d716..f8a2565 100644 --- a/lib-ui/menu.c +++ b/lib-ui/menu.c @@ -18,8 +18,6 @@ #include #include -#define SW (option(OPTMBOXPANE)?SidebarWidth:0) - extern size_t UngetCount; static void print_enriched_string (int attr, unsigned char *s, int do_color) @@ -33,56 +31,56 @@ static void print_enriched_string (int attr, unsigned char *s, int do_color) while (*s) { if (*s < M_TREE_MAX) { if (do_color) - SETCOLOR (MT_COLOR_TREE); + SETCOLOR(main_w, MT_COLOR_TREE); while (*s && *s < M_TREE_MAX) { switch (*s) { case M_TREE_LLCORNER: - waddch (stdscr, ACS_LLCORNER); + waddch (main_w, ACS_LLCORNER); break; case M_TREE_ULCORNER: - waddch (stdscr, ACS_ULCORNER); + waddch (main_w, ACS_ULCORNER); break; case M_TREE_LTEE: - waddch (stdscr, ACS_LTEE); + waddch (main_w, ACS_LTEE); break; case M_TREE_HLINE: - waddch (stdscr, ACS_HLINE); + waddch (main_w, ACS_HLINE); break; case M_TREE_VLINE: - waddch (stdscr, ACS_VLINE); + waddch (main_w, ACS_VLINE); break; case M_TREE_TTEE: - waddch (stdscr, ACS_TTEE); + waddch (main_w, ACS_TTEE); break; case M_TREE_BTEE: - waddch (stdscr, ACS_BTEE); + waddch (main_w, ACS_BTEE); break; case M_TREE_SPACE: - waddch (stdscr, ' '); + waddch (main_w, ' '); break; case M_TREE_RARROW: - waddch (stdscr, '>'); + waddch (main_w, '>'); break; case M_TREE_STAR: - waddch (stdscr, '*'); /* fake thread indicator */ + waddch (main_w, '*'); /* fake thread indicator */ break; case M_TREE_HIDDEN: - waddch (stdscr, '&'); + waddch (main_w, '&'); break; case M_TREE_EQUALS: - waddch (stdscr, '='); + waddch (main_w, '='); break; case M_TREE_MISSING: - waddch (stdscr, '?'); + waddch (main_w, '?'); break; } s++, n--; } if (do_color) - wattrset (stdscr, attr); + wattrset (main_w, attr); } else if ((k = mbrtowc (&wc, (char *) s, n, &mbstate)) != (size_t)-1) { - waddnstr (stdscr, (char *) s, k); + waddnstr (main_w, (char *) s, k); s += k, n -= k; } else @@ -102,7 +100,7 @@ static void menu_make_entry (char *s, int l, MUTTMENU * menu, int i) static void menu_pad_string (char *s, size_t n) { - int cols = COLS - SW; + int cols = getmaxx(main_w); char *tmpbuf = p_new(char, n); mutt_format_string (tmpbuf, n, cols, cols, 0, ' ', s, m_strlen(s), 1); @@ -113,15 +111,15 @@ static void menu_pad_string (char *s, size_t n) void menu_redraw_full (MUTTMENU * menu) { - SETCOLOR (MT_COLOR_NORMAL); - /* wclear(stdscr) doesn't optimize screen redraws */ - wmove (stdscr, 0, 0); - wclrtobot (stdscr); - - SETCOLOR (MT_COLOR_STATUS); - wmove (stdscr, option (OPTSTATUSONTOP) ? LINES - 2 : 0, SW); - mutt_paddstr (COLS-SW, ""); - SETCOLOR (MT_COLOR_NORMAL); + SETCOLOR(main_w, MT_COLOR_NORMAL); + /* wclear() doesn't optimize screen redraws */ + wmove (main_w, 0, 0); + wclrtobot (main_w); + + SETCOLOR(main_w, MT_COLOR_STATUS); + wmove (main_w, option (OPTSTATUSONTOP) ? LINES - 2 : 0, 0); + mutt_paddstr (main_w, getmaxx(main_w), ""); + SETCOLOR(main_w, MT_COLOR_NORMAL); menu->offset = 1; menu->pagelen = LINES - 3; mutt_show_error (); @@ -134,10 +132,10 @@ void menu_redraw_status (MUTTMENU * menu) char buf[STRING]; snprintf (buf, sizeof (buf), M_MODEFMT, menu->title); - SETCOLOR (MT_COLOR_STATUS); - wmove (stdscr, option (OPTSTATUSONTOP) ? 0 : LINES - 2, SW); - mutt_paddstr (COLS-SW, buf); - SETCOLOR (MT_COLOR_NORMAL); + SETCOLOR(main_w, MT_COLOR_STATUS); + wmove (main_w, option (OPTSTATUSONTOP) ? 0 : LINES - 2, 0); + mutt_paddstr (main_w, getmaxx(main_w), buf); + SETCOLOR(main_w, MT_COLOR_NORMAL); menu->redraw &= ~REDRAW_STATUS; } @@ -151,22 +149,22 @@ void menu_redraw_index (MUTTMENU * menu) menu_make_entry (buf, sizeof (buf), menu, i); menu_pad_string (buf, sizeof (buf)); - wattrset (stdscr, menu->color (i)); + wattrset (main_w, menu->color (i)); if (i == menu->current) { - ADDCOLOR (MT_COLOR_INDICATOR); - BKGDSET (MT_COLOR_INDICATOR); + ADDCOLOR(main_w, MT_COLOR_INDICATOR); + BKGDSET(main_w, MT_COLOR_INDICATOR); } - CLEARLINE_WIN (i - menu->top + menu->offset); + CLEARLINE(main_w, i - menu->top + menu->offset); - wmove (stdscr, i - menu->top + menu->offset, SW); + wmove (main_w, i - menu->top + menu->offset, 0); print_enriched_string (menu->color (i), (unsigned char *) buf, i != menu->current); - SETCOLOR (MT_COLOR_NORMAL); - BKGDSET (MT_COLOR_NORMAL); + SETCOLOR(main_w, MT_COLOR_NORMAL); + BKGDSET(main_w, MT_COLOR_NORMAL); } else { - CLEARLINE_WIN (i - menu->top + menu->offset); + CLEARLINE(main_w, i - menu->top + menu->offset); } } sidebar_draw (); @@ -183,13 +181,13 @@ void menu_redraw_motion (MUTTMENU * menu) return; } - wmove (stdscr, menu->oldcurrent + menu->offset - menu->top, SW); - SETCOLOR (MT_COLOR_NORMAL); - BKGDSET (MT_COLOR_NORMAL); + wmove (main_w, menu->oldcurrent + menu->offset - menu->top, 0); + SETCOLOR(main_w, MT_COLOR_NORMAL); + BKGDSET(main_w, MT_COLOR_NORMAL); /* erase the current indicator */ - wattrset (stdscr, menu->color (menu->oldcurrent)); - wclrtoeol (stdscr); + wattrset (main_w, menu->color (menu->oldcurrent)); + wclrtoeol (main_w); menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent); menu_pad_string (buf, sizeof (buf)); print_enriched_string (menu->color (menu->oldcurrent), @@ -198,15 +196,15 @@ void menu_redraw_motion (MUTTMENU * menu) /* now draw the new one to reflect the change */ menu_make_entry (buf, sizeof (buf), menu, menu->current); menu_pad_string (buf, sizeof (buf)); - wattrset (stdscr, menu->color (menu->current)); - ADDCOLOR (MT_COLOR_INDICATOR); - BKGDSET (MT_COLOR_INDICATOR); - CLEARLINE_WIN (menu->current - menu->top + menu->offset); - wmove (stdscr, menu->current + menu->offset - menu->top, SW); + wattrset (main_w, menu->color (menu->current)); + ADDCOLOR(main_w, MT_COLOR_INDICATOR); + BKGDSET(main_w, MT_COLOR_INDICATOR); + CLEARLINE(main_w, menu->current - menu->top + menu->offset); + wmove (main_w, menu->current + menu->offset - menu->top, 0); print_enriched_string (menu->color (menu->current), (unsigned char *) buf, 0); - SETCOLOR (MT_COLOR_NORMAL); - BKGDSET (MT_COLOR_NORMAL); + SETCOLOR(main_w, MT_COLOR_NORMAL); + BKGDSET(main_w, MT_COLOR_NORMAL); menu->redraw &= REDRAW_STATUS; } @@ -215,18 +213,18 @@ void menu_redraw_current (MUTTMENU * menu) { char buf[STRING]; - wmove (stdscr, menu->current + menu->offset - menu->top, SW); + wmove (main_w, menu->current + menu->offset - menu->top, 0); menu_make_entry (buf, sizeof (buf), menu, menu->current); menu_pad_string (buf, sizeof (buf)); - wattrset (stdscr, menu->color (menu->current)); - ADDCOLOR (MT_COLOR_INDICATOR); - BKGDSET (MT_COLOR_INDICATOR); - wclrtoeol (stdscr); + wattrset (main_w, menu->color (menu->current)); + ADDCOLOR(main_w, MT_COLOR_INDICATOR); + BKGDSET(main_w, MT_COLOR_INDICATOR); + wclrtoeol (main_w); print_enriched_string (menu->color (menu->current), (unsigned char *) buf, 0); - SETCOLOR (MT_COLOR_NORMAL); - BKGDSET (MT_COLOR_NORMAL); + SETCOLOR(main_w, MT_COLOR_NORMAL); + BKGDSET(main_w, MT_COLOR_NORMAL); menu->redraw &= REDRAW_STATUS; } @@ -242,9 +240,9 @@ static void menu_redraw_prompt (MUTTMENU * menu) if (*Errorbuf) mutt_clear_error (); - SETCOLOR (MT_COLOR_NORMAL); - mvwaddstr (stdscr, LINES - 1, 0, menu->prompt); - wclrtoeol (stdscr); + SETCOLOR(main_w, MT_COLOR_NORMAL); + mvwaddstr (main_w, LINES - 1, 0, menu->prompt); + wclrtoeol (main_w); } } @@ -523,7 +521,7 @@ MUTTMENU *mutt_new_menu (void) p->top = 0; p->offset = 1; p->redraw = REDRAW_FULL; - p->pagelen = PAGELEN; + p->pagelen = LINES - 3; p->color = default_color; p->search = menu_search_generic; return (p); @@ -688,15 +686,8 @@ int mutt_menuLoop (MUTTMENU * menu) return OP_REDRAW; menu->oldcurrent = menu->current; - - if (option (OPTBRAILLEFRIENDLY)) - wmove (stdscr, menu->current - menu->top + menu->offset, SW); - else - wmove (stdscr, menu->current - menu->top + menu->offset, COLS - 1); - mutt_refresh (); - /* try to catch dialog keys before ops */ if (menu->dialog && menu_dialog_dokey (menu, &i) == 0) return i; @@ -704,11 +695,11 @@ int mutt_menuLoop (MUTTMENU * menu) i = km_dokey (menu->menu); if (i == OP_TAG_PREFIX || i == OP_TAG_PREFIX_COND) { if (menu->tagged) { - mvwaddstr (stdscr, LINES - 1, 0, "Tag-"); - wclrtoeol (stdscr); + mvwaddstr (main_w, LINES - 1, 0, "Tag-"); + wclrtoeol (main_w); i = km_dokey (menu->menu); menu->tagprefix = 1; - CLEARLINE (LINES - 1); + CLEARLINE(main_w, LINES - 1); } else if (i == OP_TAG_PREFIX) { mutt_error _("No tagged entries."); @@ -868,7 +859,7 @@ int mutt_menuLoop (MUTTMENU * menu) break; case OP_REDRAW: - clearok (stdscr, TRUE); + clearok (main_w, TRUE); menu->redraw = REDRAW_FULL; break;