diff options
author | Anders Broman <anders.broman@ericsson.com> | 2011-08-12 13:30:10 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2011-08-12 13:30:10 +0000 |
commit | 91861a302e8e67412ebf1d810bd00aa8701e6f52 (patch) | |
tree | 7c4a91cccc764f788df168256909e89895bf5918 /gtk/rtp_analysis.c | |
parent | bfc2da178bf61580fda3f2911a08dc8db1cf247a (diff) |
- Use cairo_surface_t
- rename variables refering to the surface.
svn path=/trunk/; revision=38497
Diffstat (limited to 'gtk/rtp_analysis.c')
-rw-r--r-- | gtk/rtp_analysis.c | 150 |
1 files changed, 117 insertions, 33 deletions
diff --git a/gtk/rtp_analysis.c b/gtk/rtp_analysis.c index 78ab4cc4e8..2e43896fb0 100644 --- a/gtk/rtp_analysis.c +++ b/gtk/rtp_analysis.c @@ -160,11 +160,15 @@ typedef struct _dialog_graph_t { struct _dialog_graph_graph_t graph[MAX_GRAPHS]; GtkWidget *window; GtkWidget *draw_area; +#if GTK_CHECK_VERSION(2,22,0) + cairo_surface_t *surface; +#else GdkPixmap *pixmap; +#endif GtkAdjustment *scrollbar_adjustment; GtkWidget *scrollbar; - int pixmap_width; - int pixmap_height; + int surface_width; + int surface_height; int pixels_per_tick_index; /* index into pixels_per_tick array */ int pixels_per_tick; int max_y_units_index; /* index into yscale_max array */ @@ -989,7 +993,11 @@ static void dialog_graph_draw(user_data_t* user_data) /* * Clear out old plot */ +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_set_source_rgb (cr, 1, 1, 1); gtk_widget_get_allocation(user_data->dlg.dialog_graph.draw_area, &widget_alloc); cairo_rectangle (cr, @@ -1040,18 +1048,22 @@ static void dialog_graph_draw(user_data_t* user_data) /* * Calculate the size of the drawing area for the actual plot */ - draw_width=user_data->dlg.dialog_graph.pixmap_width-right_x_border-left_x_border; - draw_height=user_data->dlg.dialog_graph.pixmap_height-top_y_border-bottom_y_border; + draw_width=user_data->dlg.dialog_graph.surface_width-right_x_border-left_x_border; + draw_height=user_data->dlg.dialog_graph.surface_height-top_y_border-bottom_y_border; /* * Draw the y axis and labels * (we always draw the y scale with 11 ticks along the axis) */ +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_set_line_width (cr, 1.0); - cairo_move_to(cr, user_data->dlg.dialog_graph.pixmap_width-right_x_border+1.5, top_y_border+0.5); - cairo_line_to(cr, user_data->dlg.dialog_graph.pixmap_width-right_x_border+1.5, user_data->dlg.dialog_graph.pixmap_height-bottom_y_border+0.5); + cairo_move_to(cr, user_data->dlg.dialog_graph.surface_width-right_x_border+1.5, top_y_border+0.5); + cairo_line_to(cr, user_data->dlg.dialog_graph.surface_width-right_x_border+1.5, user_data->dlg.dialog_graph.surface_height-bottom_y_border+0.5); cairo_stroke(cr); cairo_destroy(cr); @@ -1064,15 +1076,19 @@ static void dialog_graph_draw(user_data_t* user_data) xwidth=10; } /* draw the tick */ +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_set_line_width (cr, 1.0); cairo_move_to(cr, - user_data->dlg.dialog_graph.pixmap_width-right_x_border+1.5, - user_data->dlg.dialog_graph.pixmap_height-bottom_y_border-draw_height*i/10+0.5); + user_data->dlg.dialog_graph.surface_width-right_x_border+1.5, + user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10+0.5); cairo_line_to(cr, - user_data->dlg.dialog_graph.pixmap_width-right_x_border+1.5+xwidth, - user_data->dlg.dialog_graph.pixmap_height-bottom_y_border-draw_height*i/10+0.5); + user_data->dlg.dialog_graph.surface_width-right_x_border+1.5+xwidth, + user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10+0.5); cairo_stroke(cr); cairo_destroy(cr); /* draw the labels */ @@ -1080,10 +1096,14 @@ static void dialog_graph_draw(user_data_t* user_data) print_time_scale_string(label_string, sizeof(label_string), (max_y*i/10)); pango_layout_set_text(layout, label_string, -1); pango_layout_get_pixel_size(layout, &lwidth, NULL); +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_move_to (cr, - user_data->dlg.dialog_graph.pixmap_width-right_x_border+15+label_width-lwidth, - user_data->dlg.dialog_graph.pixmap_height-bottom_y_border-draw_height*i/10-label_height/2); + user_data->dlg.dialog_graph.surface_width-right_x_border+15+label_width-lwidth, + user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10-label_height/2); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); cr = NULL; @@ -1092,10 +1112,14 @@ static void dialog_graph_draw(user_data_t* user_data) print_time_scale_string(label_string, sizeof(label_string), (max_y*i/10)); pango_layout_set_text(layout, label_string, -1); pango_layout_get_pixel_size(layout, &lwidth, NULL); +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_move_to (cr, - user_data->dlg.dialog_graph.pixmap_width-right_x_border+15+label_width-lwidth, - user_data->dlg.dialog_graph.pixmap_height-bottom_y_border-draw_height*i/10-label_height/2); + user_data->dlg.dialog_graph.surface_width-right_x_border+15+label_width-lwidth, + user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10-label_height/2); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); cr = NULL; @@ -1104,10 +1128,14 @@ static void dialog_graph_draw(user_data_t* user_data) print_time_scale_string(label_string, sizeof(label_string), (max_y*i/10)); pango_layout_set_text(layout, label_string, -1); pango_layout_get_pixel_size(layout, &lwidth, NULL); +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_move_to (cr, - user_data->dlg.dialog_graph.pixmap_width-right_x_border+15+label_width-lwidth, - user_data->dlg.dialog_graph.pixmap_height-bottom_y_border-draw_height*i/10-label_height/2); + user_data->dlg.dialog_graph.surface_width-right_x_border+15+label_width-lwidth, + user_data->dlg.dialog_graph.surface_height-bottom_y_border-draw_height*i/10-label_height/2); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); cr = NULL; @@ -1132,10 +1160,14 @@ static void dialog_graph_draw(user_data_t* user_data) /*XXX*/ /* plot the x-scale */ +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_set_line_width (cr, 1.0); - cairo_move_to(cr, left_x_border+0.5, user_data->dlg.dialog_graph.pixmap_height-bottom_y_border+1.5); - cairo_line_to(cr, user_data->dlg.dialog_graph.pixmap_width-right_x_border+1.5,user_data->dlg.dialog_graph.pixmap_height-bottom_y_border+1.5); + cairo_move_to(cr, left_x_border+0.5, user_data->dlg.dialog_graph.surface_height-bottom_y_border+1.5); + cairo_line_to(cr, user_data->dlg.dialog_graph.surface_width-right_x_border+1.5,user_data->dlg.dialog_graph.surface_height-bottom_y_border+1.5); cairo_stroke(cr); cairo_destroy(cr); @@ -1172,10 +1204,14 @@ static void dialog_graph_draw(user_data_t* user_data) } x=draw_width+left_x_border-((last_interval-current_interval)/user_data->dlg.dialog_graph.interval)*user_data->dlg.dialog_graph.pixels_per_tick; +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_set_line_width (cr, 1.0); - cairo_move_to(cr, x-1-user_data->dlg.dialog_graph.pixels_per_tick/2+0.5, user_data->dlg.dialog_graph.pixmap_height-bottom_y_border+1.5); - cairo_line_to(cr, x-1-user_data->dlg.dialog_graph.pixels_per_tick/2+0.5, user_data->dlg.dialog_graph.pixmap_height-bottom_y_border+xlen+1.5); + cairo_move_to(cr, x-1-user_data->dlg.dialog_graph.pixels_per_tick/2+0.5, user_data->dlg.dialog_graph.surface_height-bottom_y_border+1.5); + cairo_line_to(cr, x-1-user_data->dlg.dialog_graph.pixels_per_tick/2+0.5, user_data->dlg.dialog_graph.surface_height-bottom_y_border+xlen+1.5); cairo_stroke(cr); cairo_destroy(cr); @@ -1191,10 +1227,14 @@ static void dialog_graph_draw(user_data_t* user_data) } pango_layout_set_text(layout, label_string, -1); pango_layout_get_pixel_size(layout, &lwidth, NULL); +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_move_to (cr, x-1-user_data->dlg.dialog_graph.pixels_per_tick/2-lwidth/2, - user_data->dlg.dialog_graph.pixmap_height-bottom_y_border+20); + user_data->dlg.dialog_graph.surface_height-bottom_y_border+20); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); cr = NULL; @@ -1214,10 +1254,14 @@ static void dialog_graph_draw(user_data_t* user_data) g_strlcpy(label_string, UTF8_LEFTWARDS_ARROW "Fwd",sizeof(label_string)); pango_layout_set_text(layout, label_string, -1); pango_layout_get_pixel_size(layout, &lwidth, NULL); +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_move_to (cr, - user_data->dlg.dialog_graph.pixmap_width-right_x_border+33-lwidth, - user_data->dlg.dialog_graph.pixmap_height-bottom_y_border+3); + user_data->dlg.dialog_graph.surface_width-right_x_border+33-lwidth, + user_data->dlg.dialog_graph.surface_height-bottom_y_border+3); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); cr = NULL; @@ -1225,10 +1269,14 @@ static void dialog_graph_draw(user_data_t* user_data) g_strlcpy(label_string, UTF8_LEFTWARDS_ARROW "Rev",sizeof(label_string)); pango_layout_set_text(layout, label_string, -1); pango_layout_get_pixel_size(layout, &lwidth, NULL); +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_move_to (cr, - user_data->dlg.dialog_graph.pixmap_width-right_x_border+33-lwidth, - user_data->dlg.dialog_graph.pixmap_height-bottom_y_border+3+9); + user_data->dlg.dialog_graph.surface_width-right_x_border+33-lwidth, + user_data->dlg.dialog_graph.surface_height-bottom_y_border+3+9); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); cr = NULL; @@ -1257,10 +1305,14 @@ static void dialog_graph_draw(user_data_t* user_data) pango_layout_set_text(layout, label_string, -1); pango_layout_get_pixel_size(layout, &lwidth, NULL); +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_move_to (cr, x_pos-1-lwidth/2, - user_data->dlg.dialog_graph.pixmap_height-bottom_y_border+3+7*(i/2)); + user_data->dlg.dialog_graph.surface_height-bottom_y_border+3+7*(i/2)); pango_cairo_show_layout (cr, layout); cairo_destroy (cr); cr = NULL; @@ -1306,7 +1358,11 @@ static void dialog_graph_draw(user_data_t* user_data) } if(val){ +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif gdk_cairo_set_source_color (cr, &user_data->dlg.dialog_graph.graph[i].color); cairo_set_line_width (cr, 1.0); cairo_move_to(cr, x_pos+0.5, draw_height-1+top_y_border+0.5); @@ -1322,8 +1378,12 @@ static void dialog_graph_draw(user_data_t* user_data) cr = gdk_cairo_create (gtk_widget_get_window(user_data->dlg.dialog_graph.draw_area)); +#if GTK_CHECK_VERSION(2,22,0) + cairo_set_source_surface (cr, user_data->dlg.dialog_graph.surface, 0, 0); +#else gdk_cairo_set_source_pixmap (cr, user_data->dlg.dialog_graph.pixmap, 0, 0); - cairo_rectangle (cr, 0, 0, user_data->dlg.dialog_graph.pixmap_width, user_data->dlg.dialog_graph.pixmap_height); +#endif + cairo_rectangle (cr, 0, 0, user_data->dlg.dialog_graph.surface_width, user_data->dlg.dialog_graph.surface_height); cairo_fill (cr); cairo_destroy (cr); @@ -1367,7 +1427,11 @@ static gint expose_event(GtkWidget *widget, GdkEventExpose *event) exit(10); } +#if GTK_CHECK_VERSION(2,22,0) + cairo_set_source_surface (cr, user_data->dlg.dialog_graph.surface, 0, 0); +#else gdk_cairo_set_source_pixmap (cr, user_data->dlg.dialog_graph.pixmap, 0, 0); +#endif cairo_rectangle (cr, event->area.x, event->area.y, event->area.width, event->area.height); cairo_fill (cr); @@ -1390,6 +1454,17 @@ static gint configure_event(GtkWidget *widget, GdkEventConfigure *event _U_) exit(10); } +#if GTK_CHECK_VERSION(2,22,0) + if(user_data->dlg.dialog_graph.surface){ + g_object_unref(user_data->dlg.dialog_graph.surface); + user_data->dlg.dialog_graph.surface=NULL; + } + gtk_widget_get_allocation(widget, &widget_alloc); + user_data->dlg.dialog_graph.surface = gdk_window_create_similar_surface (gtk_widget_get_window(widget), + CAIRO_CONTENT_COLOR, + widget_alloc.width, + widget_alloc.height); +#else if(user_data->dlg.dialog_graph.pixmap){ g_object_unref(user_data->dlg.dialog_graph.pixmap); user_data->dlg.dialog_graph.pixmap=NULL; @@ -1400,14 +1475,19 @@ static gint configure_event(GtkWidget *widget, GdkEventConfigure *event _U_) widget_alloc.width, widget_alloc.height, -1); - user_data->dlg.dialog_graph.pixmap_width=widget_alloc.width; - user_data->dlg.dialog_graph.pixmap_height=widget_alloc.height; +#endif + user_data->dlg.dialog_graph.surface_width=widget_alloc.width; + user_data->dlg.dialog_graph.surface_height=widget_alloc.height; bt_save = g_object_get_data(G_OBJECT(user_data->dlg.dialog_graph.window), "bt_save"); - g_object_set_data(G_OBJECT(bt_save), "pixmap", user_data->dlg.dialog_graph.pixmap); + /*g_object_set_data(G_OBJECT(bt_save), "pixmap", user_data->dlg.dialog_graph.pixmap); Not used ?*/ gtk_widget_set_sensitive(bt_save, TRUE); +#if GTK_CHECK_VERSION(2,22,0) + cr = cairo_create (user_data->dlg.dialog_graph.surface); +#else cr = gdk_cairo_create (user_data->dlg.dialog_graph.pixmap); +#endif cairo_rectangle (cr, 0, 0, widget_alloc.width, widget_alloc.height); cairo_set_source_rgb (cr, 1, 1, 1); cairo_fill (cr); @@ -1445,7 +1525,7 @@ static void create_draw_area(user_data_t* user_data, GtkWidget *box) g_signal_connect(user_data->dlg.dialog_graph.draw_area, "destroy", G_CALLBACK(quit), user_data); g_object_set_data(G_OBJECT(user_data->dlg.dialog_graph.draw_area), "user_data_t", user_data); - gtk_widget_set_size_request(user_data->dlg.dialog_graph.draw_area, user_data->dlg.dialog_graph.pixmap_width, user_data->dlg.dialog_graph.pixmap_height); + 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 */ g_signal_connect(user_data->dlg.dialog_graph.draw_area, "expose_event", G_CALLBACK(expose_event), NULL); @@ -3592,11 +3672,15 @@ void rtp_analysis( user_data->dlg.dialog_graph.interval_index=DEFAULT_TICK_INTERVAL_VALUES_INDEX; user_data->dlg.dialog_graph.interval=tick_interval_values[DEFAULT_TICK_INTERVAL_VALUES_INDEX]; user_data->dlg.dialog_graph.draw_area=NULL; +#if GTK_CHECK_VERSION(2,22,0) + user_data->dlg.dialog_graph.surface=NULL; +#else user_data->dlg.dialog_graph.pixmap=NULL; +#endif user_data->dlg.dialog_graph.scrollbar=NULL; user_data->dlg.dialog_graph.scrollbar_adjustment=NULL; - user_data->dlg.dialog_graph.pixmap_width=500; - user_data->dlg.dialog_graph.pixmap_height=200; + user_data->dlg.dialog_graph.surface_width=500; + user_data->dlg.dialog_graph.surface_height=200; user_data->dlg.dialog_graph.pixels_per_tick_index=DEFAULT_PIXELS_PER_TICK_INDEX; user_data->dlg.dialog_graph.pixels_per_tick=pixels_per_tick[DEFAULT_PIXELS_PER_TICK_INDEX]; user_data->dlg.dialog_graph.max_y_units_index=AUTO_MAX_YSCALE_INDEX; |