Ticket #1565: menu-colors.patch

File menu-colors.patch, 2.6 KB (added by angel_il, 10 years ago)

patch by andrew_b

  • src/menu.c

    diff --git a/src/menu.c b/src/menu.c
    index 25c8d27..71799d3 100644
    a b static void menubar_paint_idx (WMenu *menubar, int idx, int color) 
    8888 
    8989    if (entry->text.start == NULL) { 
    9090        /* menu separator */ 
    91         tty_setcolor (SELECTED_COLOR); 
     91        tty_setcolor (MENU_ENTRY_COLOR); 
    9292 
    9393        if (!tty_is_slow ()) { 
    9494            widget_move (&menubar->widget, y, x - 1); 
    static inline void menubar_draw_drop (WMenu *menubar) 
    134134    if (column + menubar->max_entry_len + 4 > menubar->widget.cols) 
    135135        column = menubar->widget.cols - menubar->max_entry_len - 4; 
    136136 
    137     tty_setcolor (SELECTED_COLOR); 
     137    tty_setcolor (MENU_ENTRY_COLOR); 
    138138    draw_box (menubar->widget.parent, 
    139139              menubar->widget.y + 1, menubar->widget.x + column, 
    140140              count + 2, menubar->max_entry_len + 4); 
    static inline void menubar_draw_drop (WMenu *menubar) 
    148148    menubar_paint_idx (menubar, menubar->subsel, MENU_SELECTED_COLOR); 
    149149} 
    150150 
     151static void menubar_set_color (WMenu *menubar, int current, gboolean hotkey) 
     152{ 
     153    if (!menubar->active) 
     154        tty_setcolor (hotkey ? COLOR_HOT_FOCUS : SELECTED_COLOR); 
     155    else if (current == menubar->selected) 
     156        tty_setcolor (hotkey ? MENU_HOTSEL_COLOR : MENU_SELECTED_COLOR); 
     157    else 
     158        tty_setcolor (hotkey ? MENU_HOT_COLOR : MENU_ENTRY_COLOR); 
     159} 
     160 
    151161static void menubar_draw (WMenu *menubar) 
    152162{ 
    153163    const int items = menubar->items; 
    154164    int   i; 
    155165 
    156166    /* First draw the complete menubar */ 
    157     tty_setcolor (SELECTED_COLOR); 
     167    tty_setcolor (menubar->active ? MENU_ENTRY_COLOR : SELECTED_COLOR); 
    158168    tty_draw_hline (menubar->widget.y, menubar->widget.x, ' ', menubar->widget.cols); 
    159169 
    160     tty_setcolor (SELECTED_COLOR); 
    161170    /* Now each one of the entries */ 
    162171    for (i = 0; i < items; i++){ 
    163         tty_setcolor ((menubar->active && i == menubar->selected) ?  
    164                 MENU_SELECTED_COLOR : SELECTED_COLOR); 
     172        menubar_set_color (menubar, i, FALSE); 
    165173        widget_move (&menubar->widget, 0, menubar->menu [i]->start_x); 
    166174 
    167175        tty_print_string (menubar->menu[i]->text.start); 
    168176 
    169177        if (menubar->menu[i]->text.hotkey != NULL) { 
    170             tty_setcolor ((menubar->active && i == menubar->selected) ?  
    171                     MENU_HOTSEL_COLOR : COLOR_HOT_FOCUS); 
     178            menubar_set_color (menubar, i, TRUE); 
    172179            tty_print_string (menubar->menu[i]->text.hotkey); 
    173             tty_setcolor ((menubar->active && i == menubar->selected) ?  
    174                     MENU_SELECTED_COLOR : SELECTED_COLOR); 
     180            menubar_set_color (menubar, i, FALSE); 
    175181        } 
    176182        if (menubar->menu[i]->text.end != NULL) 
    177183            tty_print_string (menubar->menu[i]->text.end);