diff options
author | 2010-04-03 20:21:57 +0200 | |
---|---|---|
committer | 2010-04-03 20:21:57 +0200 | |
commit | b59bfddfa661a67b621b7bc24ae9aefa89fc2abf (patch) | |
tree | a1a954fbeb358c506df66409353f7576bd7a35b1 /plugins/gtkui/gdkdrawing.c | |
parent | ac5ec9950ba2ba88f858edb683a534e204637d4c (diff) |
custom widget color settings
Diffstat (limited to 'plugins/gtkui/gdkdrawing.c')
-rw-r--r-- | plugins/gtkui/gdkdrawing.c | 177 |
1 files changed, 121 insertions, 56 deletions
diff --git a/plugins/gtkui/gdkdrawing.c b/plugins/gtkui/gdkdrawing.c index 207575ea..84b07d29 100644 --- a/plugins/gtkui/gdkdrawing.c +++ b/plugins/gtkui/gdkdrawing.c @@ -149,116 +149,181 @@ draw_get_text_extents (const char *text, int len, int *w, int *h) { *h = ink.height; } -static GdkColor gtkui_back_color; -static GdkColor gtkui_selection_color; -static GdkColor gtkui_dark_color; -static GdkColor gtkui_mid_color; -static GdkColor gtkui_light_color; -static GdkColor gtkui_even_row_color; -static GdkColor gtkui_odd_row_color; -static GdkColor gtkui_text_color; -static GdkColor gtkui_selected_text_color; +static GdkColor gtkui_bar_foreground_color; +static GdkColor gtkui_bar_background_color; + +static GdkColor gtkui_tabstrip_dark_color; +static GdkColor gtkui_tabstrip_mid_color; +static GdkColor gtkui_tabstrip_light_color; +static GdkColor gtkui_tabstrip_base_color; + +static GdkColor gtkui_listview_even_row_color; +static GdkColor gtkui_listview_odd_row_color; +static GdkColor gtkui_listview_selection_color; +static GdkColor gtkui_listview_text_color; +static GdkColor gtkui_listview_selected_text_color; +static GdkColor gtkui_listview_cursor_color; + +static int override_listview_colors = 0; +static int override_bar_colors = 0; +static int override_tabstrip_colors = 0; + +int +gtkui_override_listview_colors (void) { + return override_listview_colors; +} + +int +gtkui_override_bar_colors (void) { + return override_bar_colors; +} + +int +gtkui_override_tabstrip_colors (void) { + return override_tabstrip_colors; +} void gtkui_init_theme_colors (void) { - int override = deadbeef->conf_get_int ("gtkui.override_theme_colors", 0); + override_listview_colors= deadbeef->conf_get_int ("gtkui.override_listview_colors", 0); + override_bar_colors = deadbeef->conf_get_int ("gtkui.override_bar_colors", 0); + override_tabstrip_colors = deadbeef->conf_get_int ("gtkui.override_tabstrip_colors", 0); extern GtkWidget *mainwin; GtkStyle *style = mainwin->style; char color_text[100]; const char *clr; - if (!override) { - memcpy (>kui_selection_color, &style->base[GTK_STATE_SELECTED], sizeof (GdkColor)); - memcpy (>kui_back_color, &style->fg[GTK_STATE_NORMAL], sizeof (GdkColor)); - memcpy (>kui_dark_color, &style->dark[GTK_STATE_NORMAL], sizeof (GdkColor)); - memcpy (>kui_mid_color, &style->mid[GTK_STATE_NORMAL], sizeof (GdkColor)); - memcpy (>kui_light_color, &style->light[GTK_STATE_NORMAL], sizeof (GdkColor)); - memcpy (>kui_even_row_color, &style->light[GTK_STATE_NORMAL], sizeof (GdkColor)); - memcpy (>kui_odd_row_color, &style->mid[GTK_STATE_NORMAL], sizeof (GdkColor)); - memcpy (>kui_text_color, &style->fg[GTK_STATE_NORMAL], sizeof (GdkColor)); - memcpy (>kui_selected_text_color, &style->fg[GTK_STATE_SELECTED], sizeof (GdkColor)); + if (!override_bar_colors) { + memcpy (>kui_bar_foreground_color, &style->base[GTK_STATE_SELECTED], sizeof (GdkColor)); + memcpy (>kui_bar_background_color, &style->fg[GTK_STATE_NORMAL], sizeof (GdkColor)); } else { snprintf (color_text, sizeof (color_text), "%d %d %d", style->base[GTK_STATE_SELECTED].red, style->base[GTK_STATE_SELECTED].green, style->base[GTK_STATE_SELECTED].blue); - clr = deadbeef->conf_get_str ("gtkui.color.selection", color_text); - sscanf (clr, "%d %d %d", >kui_selection_color.red, >kui_selection_color.green, >kui_selection_color.blue); + clr = deadbeef->conf_get_str ("gtkui.color.bar_foreground", color_text); + sscanf (clr, "%d %d %d", >kui_bar_foreground_color.red, >kui_bar_foreground_color.green, >kui_bar_foreground_color.blue); snprintf (color_text, sizeof (color_text), "%d %d %d", style->fg[GTK_STATE_NORMAL].red, style->fg[GTK_STATE_NORMAL].green, style->fg[GTK_STATE_NORMAL].blue); - clr = deadbeef->conf_get_str ("gtkui.color.back", color_text); - sscanf (clr, "%d %d %d", >kui_back_color.red, >kui_back_color.green, >kui_back_color.blue); + clr = deadbeef->conf_get_str ("gtkui.color.bar_background", color_text); + sscanf (clr, "%d %d %d", >kui_bar_background_color.red, >kui_bar_background_color.green, >kui_bar_background_color.blue); + + } + if (!override_tabstrip_colors) { + memcpy (>kui_tabstrip_dark_color, &style->dark[GTK_STATE_NORMAL], sizeof (GdkColor)); + memcpy (>kui_tabstrip_mid_color, &style->mid[GTK_STATE_NORMAL], sizeof (GdkColor)); + memcpy (>kui_tabstrip_light_color, &style->light[GTK_STATE_NORMAL], sizeof (GdkColor)); + memcpy (>kui_tabstrip_base_color, &style->bg[GTK_STATE_NORMAL], sizeof (GdkColor)); + } + else { snprintf (color_text, sizeof (color_text), "%d %d %d", style->dark[GTK_STATE_NORMAL].red, style->dark[GTK_STATE_NORMAL].green, style->dark[GTK_STATE_NORMAL].blue); - clr = deadbeef->conf_get_str ("gtkui.color.dark", color_text); - sscanf (clr, "%d %d %d", >kui_dark_color.red, >kui_dark_color.green, >kui_dark_color.blue); + clr = deadbeef->conf_get_str ("gtkui.color.tabstrip_dark", color_text); + sscanf (clr, "%d %d %d", >kui_tabstrip_dark_color.red, >kui_tabstrip_dark_color.green, >kui_tabstrip_dark_color.blue); snprintf (color_text, sizeof (color_text), "%d %d %d", style->mid[GTK_STATE_NORMAL].red, style->mid[GTK_STATE_NORMAL].green, style->mid[GTK_STATE_NORMAL].blue); - clr = deadbeef->conf_get_str ("gtkui.color.mid", color_text); - sscanf (clr, "%d %d %d", >kui_mid_color.red, >kui_mid_color.green, >kui_mid_color.blue); + clr = deadbeef->conf_get_str ("gtkui.color.tabstrip_mid", color_text); + sscanf (clr, "%d %d %d", >kui_tabstrip_mid_color.red, >kui_tabstrip_mid_color.green, >kui_tabstrip_mid_color.blue); snprintf (color_text, sizeof (color_text), "%d %d %d", style->light[GTK_STATE_NORMAL].red, style->light[GTK_STATE_NORMAL].green, style->light[GTK_STATE_NORMAL].blue); - clr = deadbeef->conf_get_str ("gtkui.color.light", color_text); - sscanf (clr, "%d %d %d", >kui_light_color.red, >kui_light_color.green, >kui_light_color.blue); + clr = deadbeef->conf_get_str ("gtkui.color.tabstrip_light", color_text); + sscanf (clr, "%d %d %d", >kui_tabstrip_light_color.red, >kui_tabstrip_light_color.green, >kui_tabstrip_light_color.blue); + + snprintf (color_text, sizeof (color_text), "%d %d %d", style->bg[GTK_STATE_NORMAL].red, style->bg[GTK_STATE_NORMAL].green, style->bg[GTK_STATE_NORMAL].blue); + clr = deadbeef->conf_get_str ("gtkui.color.tabstrip_base", color_text); + sscanf (clr, "%d %d %d", >kui_tabstrip_base_color.red, >kui_tabstrip_base_color.green, >kui_tabstrip_base_color.blue); + } + if (!override_listview_colors) { + memcpy (>kui_listview_even_row_color, &style->light[GTK_STATE_NORMAL], sizeof (GdkColor)); + memcpy (>kui_listview_odd_row_color, &style->mid[GTK_STATE_NORMAL], sizeof (GdkColor)); + memcpy (>kui_listview_selection_color, &style->bg[GTK_STATE_SELECTED], sizeof (GdkColor)); + memcpy (>kui_listview_text_color, &style->fg[GTK_STATE_NORMAL], sizeof (GdkColor)); + memcpy (>kui_listview_selected_text_color, &style->fg[GTK_STATE_SELECTED], sizeof (GdkColor)); + memcpy (>kui_listview_cursor_color, &style->fg[GTK_STATE_NORMAL], sizeof (GdkColor)); + } + else { snprintf (color_text, sizeof (color_text), "%d %d %d", style->light[GTK_STATE_NORMAL].red, style->light[GTK_STATE_NORMAL].green, style->light[GTK_STATE_NORMAL].blue); - clr = deadbeef->conf_get_str ("gtkui.color.even_row", color_text); - sscanf (clr, "%d %d %d", >kui_even_row_color.red, >kui_even_row_color.green, >kui_even_row_color.blue); + clr = deadbeef->conf_get_str ("gtkui.color.listview_even_row", color_text); + sscanf (clr, "%d %d %d", >kui_listview_even_row_color.red, >kui_listview_even_row_color.green, >kui_listview_even_row_color.blue); snprintf (color_text, sizeof (color_text), "%d %d %d", style->mid[GTK_STATE_NORMAL].red, style->mid[GTK_STATE_NORMAL].green, style->mid[GTK_STATE_NORMAL].blue); - clr = deadbeef->conf_get_str ("gtkui.color.odd_row", color_text); - sscanf (clr, "%d %d %d", >kui_odd_row_color.red, >kui_odd_row_color.green, >kui_odd_row_color.blue); + clr = deadbeef->conf_get_str ("gtkui.color.listview_odd_row", color_text); + sscanf (clr, "%d %d %d", >kui_listview_odd_row_color.red, >kui_listview_odd_row_color.green, >kui_listview_odd_row_color.blue); + + snprintf (color_text, sizeof (color_text), "%d %d %d", style->mid[GTK_STATE_NORMAL].red, style->mid[GTK_STATE_NORMAL].green, style->mid[GTK_STATE_NORMAL].blue); + clr = deadbeef->conf_get_str ("gtkui.color.listview_selection", color_text); + sscanf (clr, "%d %d %d", >kui_listview_selection_color.red, >kui_listview_selection_color.green, >kui_listview_selection_color.blue); snprintf (color_text, sizeof (color_text), "%d %d %d", style->fg[GTK_STATE_NORMAL].red, style->fg[GTK_STATE_NORMAL].green, style->fg[GTK_STATE_NORMAL].blue); - clr = deadbeef->conf_get_str ("gtkui.color.text", color_text); - sscanf (clr, "%d %d %d", >kui_text_color.red, >kui_text_color.green, >kui_text_color.blue); + clr = deadbeef->conf_get_str ("gtkui.color.listview_text", color_text); + sscanf (clr, "%d %d %d", >kui_listview_text_color.red, >kui_listview_text_color.green, >kui_listview_text_color.blue); + + snprintf (color_text, sizeof (color_text), "%d %d %d", style->fg[GTK_STATE_SELECTED].red, style->fg[GTK_STATE_SELECTED].green, style->fg[GTK_STATE_SELECTED].blue); + clr = deadbeef->conf_get_str ("gtkui.color.listview_selected_text", color_text); + sscanf (clr, "%d %d %d", >kui_listview_selected_text_color.red, >kui_listview_selected_text_color.green, >kui_listview_selected_text_color.blue); snprintf (color_text, sizeof (color_text), "%d %d %d", style->fg[GTK_STATE_SELECTED].red, style->fg[GTK_STATE_SELECTED].green, style->fg[GTK_STATE_SELECTED].blue); - clr = deadbeef->conf_get_str ("gtkui.color.selected_text", color_text); - sscanf (clr, "%d %d %d", >kui_selected_text_color.red, >kui_selected_text_color.green, >kui_selected_text_color.blue); + clr = deadbeef->conf_get_str ("gtkui.color.listview_cursor", color_text); + sscanf (clr, "%d %d %d", >kui_listview_cursor_color.red, >kui_listview_cursor_color.green, >kui_listview_cursor_color.blue); } } GdkColor * -gtkui_get_back_color (void) { - return >kui_back_color; +gtkui_get_bar_foreground_color (void) { + return >kui_bar_foreground_color; +} + +GdkColor * +gtkui_get_bar_background_color (void) { + return >kui_bar_background_color; +} + +GdkColor * +gtkui_get_tabstrip_dark_color (void) { + return >kui_tabstrip_dark_color; +} + +GdkColor * +gtkui_get_tabstrip_mid_color (void) { + return >kui_tabstrip_mid_color; } GdkColor * -gtkui_get_selection_color (void) { - return >kui_selection_color; +gtkui_get_tabstrip_light_color (void) { + return >kui_tabstrip_light_color; } GdkColor * -gtkui_get_dark_color (void) { - return >kui_dark_color; +gtkui_get_tabstrip_base_color (void) { + return >kui_tabstrip_base_color; } GdkColor * -gtkui_get_mid_color (void) { - return >kui_mid_color; +gtkui_get_listview_even_row_color (void) { + return >kui_listview_even_row_color; } GdkColor * -gtkui_get_light_color (void) { - return >kui_light_color; +gtkui_get_listview_odd_row_color (void) { + return >kui_listview_odd_row_color; } GdkColor * -gtkui_get_even_row_color (void) { - return >kui_even_row_color; +gtkui_get_listview_selection_color (void) { + return >kui_listview_selection_color; } GdkColor * -gtkui_get_odd_row_color (void) { - return >kui_odd_row_color; +gtkui_get_listview_text_color (void) { + return >kui_listview_text_color; } GdkColor * -gtkui_get_text_color (void) { - return >kui_text_color; +gtkui_get_listview_selected_text_color (void) { + return >kui_listview_selected_text_color; } GdkColor * -gtkui_get_selected_text_color (void) { - return >kui_selected_text_color; +gtkui_get_listview_cursor_color (void) { + return >kui_listview_cursor_color; } |