summaryrefslogtreecommitdiff
path: root/plugins/gtkui/gdkdrawing.c
diff options
context:
space:
mode:
authorGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-04-03 20:21:57 +0200
committerGravatar Alexey Yakovenko <wakeroid@gmail.com>2010-04-03 20:21:57 +0200
commitb59bfddfa661a67b621b7bc24ae9aefa89fc2abf (patch)
treea1a954fbeb358c506df66409353f7576bd7a35b1 /plugins/gtkui/gdkdrawing.c
parentac5ec9950ba2ba88f858edb683a534e204637d4c (diff)
custom widget color settings
Diffstat (limited to 'plugins/gtkui/gdkdrawing.c')
-rw-r--r--plugins/gtkui/gdkdrawing.c177
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 (&gtkui_selection_color, &style->base[GTK_STATE_SELECTED], sizeof (GdkColor));
- memcpy (&gtkui_back_color, &style->fg[GTK_STATE_NORMAL], sizeof (GdkColor));
- memcpy (&gtkui_dark_color, &style->dark[GTK_STATE_NORMAL], sizeof (GdkColor));
- memcpy (&gtkui_mid_color, &style->mid[GTK_STATE_NORMAL], sizeof (GdkColor));
- memcpy (&gtkui_light_color, &style->light[GTK_STATE_NORMAL], sizeof (GdkColor));
- memcpy (&gtkui_even_row_color, &style->light[GTK_STATE_NORMAL], sizeof (GdkColor));
- memcpy (&gtkui_odd_row_color, &style->mid[GTK_STATE_NORMAL], sizeof (GdkColor));
- memcpy (&gtkui_text_color, &style->fg[GTK_STATE_NORMAL], sizeof (GdkColor));
- memcpy (&gtkui_selected_text_color, &style->fg[GTK_STATE_SELECTED], sizeof (GdkColor));
+ if (!override_bar_colors) {
+ memcpy (&gtkui_bar_foreground_color, &style->base[GTK_STATE_SELECTED], sizeof (GdkColor));
+ memcpy (&gtkui_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", &gtkui_selection_color.red, &gtkui_selection_color.green, &gtkui_selection_color.blue);
+ clr = deadbeef->conf_get_str ("gtkui.color.bar_foreground", color_text);
+ sscanf (clr, "%d %d %d", &gtkui_bar_foreground_color.red, &gtkui_bar_foreground_color.green, &gtkui_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", &gtkui_back_color.red, &gtkui_back_color.green, &gtkui_back_color.blue);
+ clr = deadbeef->conf_get_str ("gtkui.color.bar_background", color_text);
+ sscanf (clr, "%d %d %d", &gtkui_bar_background_color.red, &gtkui_bar_background_color.green, &gtkui_bar_background_color.blue);
+
+ }
+ if (!override_tabstrip_colors) {
+ memcpy (&gtkui_tabstrip_dark_color, &style->dark[GTK_STATE_NORMAL], sizeof (GdkColor));
+ memcpy (&gtkui_tabstrip_mid_color, &style->mid[GTK_STATE_NORMAL], sizeof (GdkColor));
+ memcpy (&gtkui_tabstrip_light_color, &style->light[GTK_STATE_NORMAL], sizeof (GdkColor));
+ memcpy (&gtkui_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", &gtkui_dark_color.red, &gtkui_dark_color.green, &gtkui_dark_color.blue);
+ clr = deadbeef->conf_get_str ("gtkui.color.tabstrip_dark", color_text);
+ sscanf (clr, "%d %d %d", &gtkui_tabstrip_dark_color.red, &gtkui_tabstrip_dark_color.green, &gtkui_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", &gtkui_mid_color.red, &gtkui_mid_color.green, &gtkui_mid_color.blue);
+ clr = deadbeef->conf_get_str ("gtkui.color.tabstrip_mid", color_text);
+ sscanf (clr, "%d %d %d", &gtkui_tabstrip_mid_color.red, &gtkui_tabstrip_mid_color.green, &gtkui_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", &gtkui_light_color.red, &gtkui_light_color.green, &gtkui_light_color.blue);
+ clr = deadbeef->conf_get_str ("gtkui.color.tabstrip_light", color_text);
+ sscanf (clr, "%d %d %d", &gtkui_tabstrip_light_color.red, &gtkui_tabstrip_light_color.green, &gtkui_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", &gtkui_tabstrip_base_color.red, &gtkui_tabstrip_base_color.green, &gtkui_tabstrip_base_color.blue);
+ }
+ if (!override_listview_colors) {
+ memcpy (&gtkui_listview_even_row_color, &style->light[GTK_STATE_NORMAL], sizeof (GdkColor));
+ memcpy (&gtkui_listview_odd_row_color, &style->mid[GTK_STATE_NORMAL], sizeof (GdkColor));
+ memcpy (&gtkui_listview_selection_color, &style->bg[GTK_STATE_SELECTED], sizeof (GdkColor));
+ memcpy (&gtkui_listview_text_color, &style->fg[GTK_STATE_NORMAL], sizeof (GdkColor));
+ memcpy (&gtkui_listview_selected_text_color, &style->fg[GTK_STATE_SELECTED], sizeof (GdkColor));
+ memcpy (&gtkui_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", &gtkui_even_row_color.red, &gtkui_even_row_color.green, &gtkui_even_row_color.blue);
+ clr = deadbeef->conf_get_str ("gtkui.color.listview_even_row", color_text);
+ sscanf (clr, "%d %d %d", &gtkui_listview_even_row_color.red, &gtkui_listview_even_row_color.green, &gtkui_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", &gtkui_odd_row_color.red, &gtkui_odd_row_color.green, &gtkui_odd_row_color.blue);
+ clr = deadbeef->conf_get_str ("gtkui.color.listview_odd_row", color_text);
+ sscanf (clr, "%d %d %d", &gtkui_listview_odd_row_color.red, &gtkui_listview_odd_row_color.green, &gtkui_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", &gtkui_listview_selection_color.red, &gtkui_listview_selection_color.green, &gtkui_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", &gtkui_text_color.red, &gtkui_text_color.green, &gtkui_text_color.blue);
+ clr = deadbeef->conf_get_str ("gtkui.color.listview_text", color_text);
+ sscanf (clr, "%d %d %d", &gtkui_listview_text_color.red, &gtkui_listview_text_color.green, &gtkui_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", &gtkui_listview_selected_text_color.red, &gtkui_listview_selected_text_color.green, &gtkui_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", &gtkui_selected_text_color.red, &gtkui_selected_text_color.green, &gtkui_selected_text_color.blue);
+ clr = deadbeef->conf_get_str ("gtkui.color.listview_cursor", color_text);
+ sscanf (clr, "%d %d %d", &gtkui_listview_cursor_color.red, &gtkui_listview_cursor_color.green, &gtkui_listview_cursor_color.blue);
}
}
GdkColor *
-gtkui_get_back_color (void) {
- return &gtkui_back_color;
+gtkui_get_bar_foreground_color (void) {
+ return &gtkui_bar_foreground_color;
+}
+
+GdkColor *
+gtkui_get_bar_background_color (void) {
+ return &gtkui_bar_background_color;
+}
+
+GdkColor *
+gtkui_get_tabstrip_dark_color (void) {
+ return &gtkui_tabstrip_dark_color;
+}
+
+GdkColor *
+gtkui_get_tabstrip_mid_color (void) {
+ return &gtkui_tabstrip_mid_color;
}
GdkColor *
-gtkui_get_selection_color (void) {
- return &gtkui_selection_color;
+gtkui_get_tabstrip_light_color (void) {
+ return &gtkui_tabstrip_light_color;
}
GdkColor *
-gtkui_get_dark_color (void) {
- return &gtkui_dark_color;
+gtkui_get_tabstrip_base_color (void) {
+ return &gtkui_tabstrip_base_color;
}
GdkColor *
-gtkui_get_mid_color (void) {
- return &gtkui_mid_color;
+gtkui_get_listview_even_row_color (void) {
+ return &gtkui_listview_even_row_color;
}
GdkColor *
-gtkui_get_light_color (void) {
- return &gtkui_light_color;
+gtkui_get_listview_odd_row_color (void) {
+ return &gtkui_listview_odd_row_color;
}
GdkColor *
-gtkui_get_even_row_color (void) {
- return &gtkui_even_row_color;
+gtkui_get_listview_selection_color (void) {
+ return &gtkui_listview_selection_color;
}
GdkColor *
-gtkui_get_odd_row_color (void) {
- return &gtkui_odd_row_color;
+gtkui_get_listview_text_color (void) {
+ return &gtkui_listview_text_color;
}
GdkColor *
-gtkui_get_text_color (void) {
- return &gtkui_text_color;
+gtkui_get_listview_selected_text_color (void) {
+ return &gtkui_listview_selected_text_color;
}
GdkColor *
-gtkui_get_selected_text_color (void) {
- return &gtkui_selected_text_color;
+gtkui_get_listview_cursor_color (void) {
+ return &gtkui_listview_cursor_color;
}