void dlg_draw_arrows2(WINDOW *win, int top_arrow, int bottom_arrow, int x, int top, int bottom, chtype attr, chtype borderattr) { chtype save = dlg_get_attrs(win); int cur_x, cur_y; int limit_x = getmaxx(win); bool draw_top = TRUE; bool is_toplevel = (wgetparent(win) == stdscr); getyx(win, cur_y, cur_x); /* * If we're drawing a centered title, do not overwrite with the arrows. */ if (dialog_vars.title && is_toplevel && (top - getbegy(win)) < MARGIN) { int have = (limit_x - dlg_count_columns(dialog_vars.title)) / 2; int need = x + 5; if (need > have) draw_top = FALSE; } if (draw_top) { (void) wmove(win, top, x); if (top_arrow) { (void) wattrset(win, merge_colors(uarrow_attr, attr)); (void) add_acs(win, ACS_UARROW); (void) waddstr(win, "(-)"); } else { (void) wattrset(win, attr); (void) whline(win, dlg_boxchar(ACS_HLINE), ON_LEFT); } } mouse_mkbutton(top, x - 1, 6, KEY_PPAGE); (void) wmove(win, bottom, x); if (bottom_arrow) { (void) wattrset(win, merge_colors(darrow_attr, borderattr)); (void) add_acs(win, ACS_DARROW); (void) waddstr(win, "(+)"); } else { (void) wattrset(win, borderattr); (void) whline(win, dlg_boxchar(ACS_HLINE), ON_LEFT); } mouse_mkbutton(bottom, x - 1, 6, KEY_NPAGE); (void) wmove(win, cur_y, cur_x); wrefresh(win); (void) wattrset(win, save); }
static void permute_colors (XColor *pcolors, XColor *colors, int count, unsigned long *plane_masks, Bool additive_p) { int out = 0; int max = i_exp (2, count); if (count > 31) abort (); for (out = 1; out < max; out++) { XColor *argv [32]; int this_mask = 0; int argc = 0; int bit; for (bit = 0; bit < 32; bit++) if (out & (1<<bit)) { argv [argc++] = &pcolors [bit]; this_mask |= plane_masks [bit]; } merge_colors (argc, argv, &colors [out-1], this_mask, additive_p); } }
static void set_color_defaults (void) { colors[WIN_ACTIVE] = merge_colors (B_RED, BLACK); colors[WIN_INACTIVE] = merge_colors (B_BLUE, BLACK); colors[WIN_INACTIVE_TITLE] = merge_colors (B_BLUE, BLACK); colors[WIN_INACTIVE_SCROLL] = merge_colors (BLUE, BLACK); colors[WIN_INACTIVE_SCROLLBAR] = merge_colors (B_BLUE, BLACK); colors[WIN_ACTIVE_TITLE] = merge_colors (B_RED, BLACK); colors[WIN_ACTIVE_SCROLL] = merge_colors (RED, BLACK); colors[WIN_ACTIVE_SCROLLBAR] = merge_colors (B_RED, BLACK); colors[FILE_UNSELECTED] = merge_colors (B_BLUE, BLACK); colors[FILE_SELECTED] = merge_colors (B_BLUE, RED); colors[FILE_UNSELECTED_DIRECTORY] = merge_colors (B_BLUE, BLACK); colors[FILE_SELECTED_DIRECTORY] = merge_colors (B_BLUE, RED); colors[FILE_WINDOW] = merge_colors (BLACK, BLACK); colors[PLAY_UNSELECTED] = merge_colors (B_BLUE, BLACK); colors[PLAY_SELECTED] = merge_colors (B_BLUE, RED); colors[PLAY_UNSELECTED_PLAYING] = merge_colors (B_RED, BLUE); colors[PLAY_SELECTED_PLAYING] = merge_colors (B_RED, RED); colors[PLAY_WINDOW] = merge_colors (BLACK, BLACK); colors[INFO_TEXT] = merge_colors (B_BLUE, BLACK); colors[INFO_WINDOW] = merge_colors (BLACK, BLACK); colors[MENU_TEXT] = merge_colors (B_BLUE, BLACK); colors[MENU_WINDOW] = merge_colors (BLACK, BLACK); colors[PLAYBACK_TEXT] = merge_colors (B_BLUE, BLACK); colors[PLAYBACK_WINDOW] = merge_colors (BLACK, BLACK); }
static void set_color (char *color, char *value) { char *fore = value; char *back = strchr (value, ':'); if (back == NULL) back = "black\0"; else back++; /* IMPORTANT IMPORTANT IMPORTANT IMPORTANT IMPORTANT * check * u_int32_t colors[24]; * around line 24 !!!!! * resize this array when adding more color entries !!!!! */ if (!strcasecmp (color, "window_active")) colors[WIN_ACTIVE] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "window_active_title")) colors[WIN_ACTIVE_TITLE] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "window_active_scroll")) colors[WIN_ACTIVE_SCROLL] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "window_active_scroll_bar")) colors[WIN_ACTIVE_SCROLLBAR] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "window_inactive")) colors[WIN_INACTIVE] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "window_inactive_title")) colors[WIN_INACTIVE_TITLE] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "window_inactive_scroll")) colors[WIN_INACTIVE_SCROLL] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "window_inactive_scroll_bar")) colors[WIN_INACTIVE_SCROLLBAR] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "files_selected_file")) colors[FILE_SELECTED] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "files_unselected_file")) colors[FILE_UNSELECTED] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "files_unselected_directory")) colors[FILE_UNSELECTED_DIRECTORY] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "files_selected_directory")) colors[FILE_SELECTED_DIRECTORY] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "files_background")) colors[FILE_WINDOW] = merge_colors (str2color (fore), str2color (fore)); else if (!strcasecmp (color, "playlist_unselected")) colors[PLAY_UNSELECTED] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "playlist_unselected_playing")) colors[PLAY_UNSELECTED_PLAYING] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "playlist_selected_playing")) colors[PLAY_SELECTED_PLAYING] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "playlist_selected")) colors[PLAY_SELECTED] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "playlist_background")) colors[PLAY_WINDOW] = merge_colors (str2color (fore), str2color (fore)); else if (!strcasecmp (color, "info_text")) colors[INFO_TEXT] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "info_background")) colors[INFO_WINDOW] = merge_colors (str2color (fore), str2color (fore)); else if (!strcasecmp (color, "menu_background")) colors[MENU_WINDOW] = merge_colors (str2color (fore), str2color (fore)); else if (!strcasecmp (color, "menu_text")) colors[MENU_TEXT] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "playback_text")) colors[PLAYBACK_TEXT] = merge_colors (str2color (fore), str2color (back)); else if (!strcasecmp (color, "playback_background")) colors[PLAYBACK_WINDOW] = merge_colors (str2color (fore), str2color (fore)); else if (!strcasecmp (color, "background")) colors[BACKGROUND] = merge_colors (str2color (fore), str2color (fore)); }