X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=menu.c;h=95d4f476b49d2a93005df3129579580ebb22231d;hp=7370b129db9d5f50da700ab41ad0ac46289c5ced;hb=700dbab719f75421b81f8c603d239bbf38cfa6f9;hpb=13b3b36c8f696aea26b7c60444f2baa4858b004d diff --git a/menu.c b/menu.c index 7370b12..95d4f47 100644 --- a/menu.c +++ b/menu.c @@ -29,6 +29,8 @@ #include #include +#define SW (option(OPTMBOXPANE)?SidebarWidth:0) + extern int Charset_is_utf8; /* FIXME: bad modularisation */ extern size_t UngetCount; @@ -171,8 +173,8 @@ void menu_redraw_full (MUTTMENU * menu) if (option (OPTHELP)) { SETCOLOR (MT_COLOR_STATUS); - move (option (OPTSTATUSONTOP) ? LINES - 2 : 0, 0); - mutt_paddstr (COLS, menu->help); + move (option (OPTSTATUSONTOP) ? LINES - 2 : 0, SW); + mutt_paddstr (COLS-SW, menu->help); SETCOLOR (MT_COLOR_NORMAL); menu->offset = 1; menu->pagelen = LINES - 3; @@ -182,6 +184,8 @@ void menu_redraw_full (MUTTMENU * menu) menu->pagelen = LINES - 2; } + sidebar_draw_frames(); + mutt_show_error (); menu->redraw = REDRAW_INDEX | REDRAW_STATUS; @@ -193,10 +197,11 @@ void menu_redraw_status (MUTTMENU * menu) snprintf (buf, sizeof (buf), M_MODEFMT, menu->title); SETCOLOR (MT_COLOR_STATUS); - move (option (OPTSTATUSONTOP) ? 0 : LINES - 2, 0); - mutt_paddstr (COLS, buf); + move (option (OPTSTATUSONTOP) ? 0 : LINES - 2, SW); + mutt_paddstr (COLS-SW, buf); SETCOLOR (MT_COLOR_NORMAL); menu->redraw &= ~REDRAW_STATUS; + sidebar_draw_frames(); } void menu_redraw_index (MUTTMENU * menu) @@ -204,7 +209,6 @@ void menu_redraw_index (MUTTMENU * menu) char buf[STRING]; int i; - sidebar_draw (1); for (i = menu->top; i < menu->top + menu->pagelen; i++) { if (i < menu->max) { menu_make_entry (buf, sizeof (buf), menu, i); @@ -217,18 +221,20 @@ void menu_redraw_index (MUTTMENU * menu) if (i == menu->current) { attrset (menu->color (i)); ADDCOLOR (MT_COLOR_INDICATOR); + BKGDSET (MT_COLOR_INDICATOR); addstr ("->"); attrset (menu->color (i)); addch (' '); } else { attrset (menu->color (i)); - move (i - menu->top + menu->offset, SidebarWidth); + move (i - menu->top + menu->offset, SW); addstr (" "); } print_enriched_string (menu->color (i), (unsigned char *) buf, 1); SETCOLOR (MT_COLOR_NORMAL); + BKGDSET (MT_COLOR_NORMAL); } else { attrset (menu->color (i)); @@ -239,6 +245,8 @@ void menu_redraw_index (MUTTMENU * menu) } CLEARLINE_WIN (i - menu->top + menu->offset); + + move (i - menu->top + menu->offset, SW); print_enriched_string (menu->color (i), (unsigned char *) buf, i != menu->current); SETCOLOR (MT_COLOR_NORMAL); @@ -248,6 +256,9 @@ void menu_redraw_index (MUTTMENU * menu) else CLEARLINE_WIN (i - menu->top + menu->offset); } + sidebar_draw (1); +/* sidebar_draw_frames(); */ + menu->redraw = 0; } @@ -260,7 +271,7 @@ void menu_redraw_motion (MUTTMENU * menu) return; } - move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth); + move (menu->oldcurrent + menu->offset - menu->top, SW); SETCOLOR (MT_COLOR_NORMAL); BKGDSET (MT_COLOR_NORMAL); @@ -273,14 +284,14 @@ void menu_redraw_motion (MUTTMENU * menu) clrtoeol (); menu_make_entry (buf, sizeof (buf), menu, menu->oldcurrent); menu_pad_string (buf, sizeof (buf)); - move (menu->oldcurrent + menu->offset - menu->top, SidebarWidth + 3); + move (menu->oldcurrent + menu->offset - menu->top, SW + 3); print_enriched_string (menu->color (menu->oldcurrent), (unsigned char *) buf, 1); SETCOLOR (MT_COLOR_NORMAL); } /* now draw it in the new location */ - move (menu->current + menu->offset - menu->top, SidebarWidth); + move (menu->current + menu->offset - menu->top, SW); attrset (menu->color (menu->current)); ADDCOLOR (MT_COLOR_INDICATOR); addstr ("->"); @@ -302,6 +313,7 @@ void menu_redraw_motion (MUTTMENU * menu) ADDCOLOR (MT_COLOR_INDICATOR); BKGDSET (MT_COLOR_INDICATOR); CLEARLINE_WIN (menu->current - menu->top + menu->offset); + move (menu->current + menu->offset - menu->top, SW); print_enriched_string (menu->color (menu->current), (unsigned char *) buf, 0); SETCOLOR (MT_COLOR_NORMAL); @@ -314,7 +326,7 @@ void menu_redraw_current (MUTTMENU * menu) { char buf[STRING]; - move (menu->current + menu->offset - menu->top, SidebarWidth); + move (menu->current + menu->offset - menu->top, SW); menu_make_entry (buf, sizeof (buf), menu, menu->current); menu_pad_string (buf, sizeof (buf)); @@ -374,7 +386,7 @@ void menu_check_recenter (MUTTMENU * menu) set_option (OPTNEEDREDRAW); } } else { - if (option (OPTMENUSCROLL) || (menu->pagelen <= 0) || (c <= MenuContext)) { + if (option (OPTMENUSCROLL) || (menu->pagelen <= 0) || (c < MenuContext)) { if (menu->current < menu->top + c) menu->top = menu->current - c; else if (menu->current >= menu->top + menu->pagelen - c) @@ -808,9 +820,9 @@ int mutt_menuLoop (MUTTMENU * menu) menu->oldcurrent = menu->current; if (option (OPTARROWCURSOR)) - move (menu->current - menu->top + menu->offset, 2); + move (menu->current - menu->top + menu->offset, SW + 2); else if (option (OPTBRAILLEFRIENDLY)) - move (menu->current - menu->top + menu->offset, 0); + move (menu->current - menu->top + menu->offset, SW); else move (menu->current - menu->top + menu->offset, COLS - 1);