diff options
author | Anders Broman <anders.broman@ericsson.com> | 2011-08-23 14:17:30 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2011-08-23 14:17:30 +0000 |
commit | a192182e1cf4f63327f05fc00eab07c20cc44690 (patch) | |
tree | 22e27e4794b20b3f9fa6f9143cab09cdeb9d8376 /gtk | |
parent | 97548261dfb846ad72e35faa72d2ba5981f21d2f (diff) |
Make colors work on GTK3 take 2
Revert tcp_graph commit by mistake, typo etc
svn path=/trunk/; revision=38689
Diffstat (limited to 'gtk')
-rw-r--r-- | gtk/iax2_analysis.c | 45 | ||||
-rw-r--r-- | gtk/tcp_graph.c | 25 |
2 files changed, 55 insertions, 15 deletions
diff --git a/gtk/iax2_analysis.c b/gtk/iax2_analysis.c index f9ea1b8f05..75446ed115 100644 --- a/gtk/iax2_analysis.c +++ b/gtk/iax2_analysis.c @@ -134,6 +134,9 @@ typedef struct _dialog_graph_graph_t { gboolean display; GtkWidget *display_button; int hf_index; +#if GTK_CHECK_VERSION(3,0,0) + GdkRGBA rgba_color; +#endif GdkColor color; gchar title[100]; } dialog_graph_graph_t; @@ -1403,6 +1406,21 @@ static void draw_area_destroy_cb(GtkWidget *widget _U_, gpointer data) } /****************************************************************************/ +#if GTK_CHECK_VERSION(3,0,0) +static gboolean draw_area_draw(GtkWidget *widget, cairo_t *cr, gpointer data) +{ + user_data_t *user_data = data; + GtkAllocation allocation; + + gtk_widget_get_allocation (widget, &allocation); + + cairo_set_source_surface (cr, user_data->dlg.dialog_graph.surface, 0, 0); + cairo_rectangle (cr, 0, 0, allocation.width, allocation.height); + cairo_fill (cr); + + return FALSE; +} +#else static gboolean draw_area_expose_event(GtkWidget *widget, GdkEventExpose *event, gpointer data) { user_data_t *user_data = data; @@ -1420,7 +1438,7 @@ static gboolean draw_area_expose_event(GtkWidget *widget, GdkEventExpose *event, return FALSE; } - +#endif /****************************************************************************/ static gboolean draw_area_configure_event(GtkWidget *widget, GdkEventConfigure *event _U_, gpointer data) { @@ -1497,7 +1515,11 @@ static void create_draw_area(user_data_t* user_data, GtkWidget *box) gtk_widget_set_size_request(user_data->dlg.dialog_graph.draw_area, user_data->dlg.dialog_graph.surface_width, user_data->dlg.dialog_graph.surface_height); /* signals needed to handle backing pixmap */ +#if GTK_CHECK_VERSION(3,0,0) + g_signal_connect(user_data->dlg.dialog_graph.draw_area, "draw", G_CALLBACK(draw_area_draw), user_data); +#else g_signal_connect(user_data->dlg.dialog_graph.draw_area, "expose_event", G_CALLBACK(draw_area_expose_event), user_data); +#endif g_signal_connect(user_data->dlg.dialog_graph.draw_area, "configure_event", G_CALLBACK(draw_area_configure_event), user_data); gtk_widget_show(user_data->dlg.dialog_graph.draw_area); @@ -1563,7 +1585,11 @@ static void create_filter_box(dialog_graph_graph_t *dgg, GtkWidget *box, int num gtk_widget_show(label); gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); #if GTK_CHECK_VERSION(3,0,0) - /* Fix me: Add the GTK 3.0 equivalents */ + gtk_widget_override_color(label, GTK_STATE_NORMAL, &dgg->rgba_color); + gtk_widget_override_color(label, GTK_STATE_ACTIVE, &dgg->rgba_color); + gtk_widget_override_color(label, GTK_STATE_PRELIGHT, &dgg->rgba_color); + gtk_widget_override_color(label, GTK_STATE_SELECTED, &dgg->rgba_color); + gtk_widget_override_color(label, GTK_STATE_INSENSITIVE, &dgg->rgba_color); #else gtk_widget_modify_fg(label, GTK_STATE_NORMAL, &dgg->color); gtk_widget_modify_fg(label, GTK_STATE_ACTIVE, &dgg->color); @@ -3479,6 +3505,15 @@ void iax2_analysis( {0, 0x0000, 0xffff, 0x0000}, {0, 0x0000, 0x0000, 0xffff} }; +#if GTK_CHECK_VERSION(3,0,0) + static GdkRGBA rgba_col[MAX_GRAPHS] = { + {0.0, 0.0, 0.0, 1.0}, /* Black */ + {1.0, 0.0, 0.1, 1.0}, /* Red */ + {0.0, 1.0, 0.0, 1.0}, /* Green */ + {0.0, 0.0, 1.0, 1.0}, /* Blue */ + }; +#endif + char *tempname; /* init */ @@ -3536,6 +3571,12 @@ void iax2_analysis( user_data->dlg.dialog_graph.graph[i].color.red=col[i].red; user_data->dlg.dialog_graph.graph[i].color.green=col[i].green; user_data->dlg.dialog_graph.graph[i].color.blue=col[i].blue; +#if GTK_CHECK_VERSION(3,0,0) + user_data->dlg.dialog_graph.graph[i].rgba_color.red=rgba_col[i].red; + user_data->dlg.dialog_graph.graph[i].rgba_color.green=rgba_col[i].green; + user_data->dlg.dialog_graph.graph[i].rgba_color.blue=rgba_col[i].blue; + user_data->dlg.dialog_graph.graph[i].rgba_color.alpha=rgba_col[i].alpha; +#endif user_data->dlg.dialog_graph.graph[i].display=TRUE; user_data->dlg.dialog_graph.graph[i].display_button=NULL; user_data->dlg.dialog_graph.graph[i].ud=user_data; diff --git a/gtk/tcp_graph.c b/gtk/tcp_graph.c index 16718e2db5..1b86cfbded 100644 --- a/gtk/tcp_graph.c +++ b/gtk/tcp_graph.c @@ -58,7 +58,6 @@ #include "gtk/gui_utils.h" #include "gtk/dlg_utils.h" #include "gtk/gui_stat_menu.h" -#include "gtk/color_utils.h" #include "gtk/old-gtk-compat.h" @@ -2928,8 +2927,8 @@ static int ellipse_detect_collision (struct element *e, int x, int y) static void cross_xor (struct graph *g, int x, int y) { -//#if GTK_CHECK_VERSION(3,0,0) - //GdkColor color_gray15 = {0x0, 0x2626, 0x2626, 0x2626}; +#if GTK_CHECK_VERSION(3,0,0) + GdkColor color_gray15 = {0x0, 0x2626, 0x2626, 0x2626}; cairo_t *cr; /* XXX Fix me: lines do not disapere */ @@ -2955,16 +2954,16 @@ static void cross_xor (struct graph *g, int x, int y) cairo_destroy(cr); } -//#else -// -// if (x > g->wp.x && x < g->wp.x+g->wp.width && -// y >= g->wp.y && y < g->wp.y+g->wp.height) { -// gdk_draw_line (gtk_widget_get_window(g->drawing_area), xor_gc, g->wp.x, -// y, g->wp.x + g->wp.width, y); -// gdk_draw_line (gtk_widget_get_window(g->drawing_area), xor_gc, x, -// g->wp.y, x, g->wp.y + g->wp.height); -// } -//#endif +#else + + if (x > g->wp.x && x < g->wp.x+g->wp.width && + y >= g->wp.y && y < g->wp.y+g->wp.height) { + gdk_draw_line (gtk_widget_get_window(g->drawing_area), xor_gc, g->wp.x, + y, g->wp.x + g->wp.width, y); + gdk_draw_line (gtk_widget_get_window(g->drawing_area), xor_gc, x, + g->wp.y, x, g->wp.y + g->wp.height); + } +#endif } static void cross_draw (struct graph *g, int x, int y) |