/pidgin/main: e498a88e7c00: Factor out video widget creation int...

Jakub Adam jakub.adam at ktknet.cz
Sat Mar 19 14:06:03 EDT 2016


Changeset: e498a88e7c00a77067570e92dd7ac59587fbfeef
Author:	 Jakub Adam <jakub.adam at ktknet.cz>
Date:	 2016-03-17 17:52 +0100
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/e498a88e7c00

Description:

Factor out video widget creation into pidgin_create_video_widget()

diffstat:

 pidgin/gtkmedia.c |   8 ++------
 pidgin/gtkprefs.c |   6 ++----
 pidgin/gtkutils.c |  12 ++++++++++++
 pidgin/gtkutils.h |   7 +++++++
 4 files changed, 23 insertions(+), 10 deletions(-)

diffs (95 lines):

diff --git a/pidgin/gtkmedia.c b/pidgin/gtkmedia.c
--- a/pidgin/gtkmedia.c
+++ b/pidgin/gtkmedia.c
@@ -922,7 +922,6 @@ pidgin_media_ready_cb(PurpleMedia *media
 		PidginMediaRealizeData *data;
 		GtkWidget *aspect;
 		GtkWidget *remote_video;
-		GdkRGBA color = {0.0, 0.0, 0.0, 1.0};
 
 		aspect = gtk_aspect_frame_new(NULL, 0, 0, 4.0/3.0, FALSE);
 		gtk_frame_set_shadow_type(GTK_FRAME(aspect), GTK_SHADOW_IN);
@@ -933,8 +932,7 @@ pidgin_media_ready_cb(PurpleMedia *media
 		data->session_id = g_strdup(sid);
 		data->participant = g_strdup(gtkmedia->priv->screenname);
 
-		remote_video = gtk_drawing_area_new();
-		gtk_widget_override_background_color(remote_video, GTK_STATE_FLAG_NORMAL, &color);
+		remote_video = pidgin_create_video_widget();
 		g_signal_connect(G_OBJECT(remote_video), "realize",
 				G_CALLBACK(realize_cb), data);
 		gtk_container_add(GTK_CONTAINER(aspect), remote_video);
@@ -953,7 +951,6 @@ pidgin_media_ready_cb(PurpleMedia *media
 		PidginMediaRealizeData *data;
 		GtkWidget *aspect;
 		GtkWidget *local_video;
-		GdkRGBA color = {0.0, 0.0, 0.0, 1.0};
 
 		aspect = gtk_aspect_frame_new(NULL, 0, 0, 4.0/3.0, TRUE);
 		gtk_frame_set_shadow_type(GTK_FRAME(aspect), GTK_SHADOW_IN);
@@ -964,8 +961,7 @@ pidgin_media_ready_cb(PurpleMedia *media
 		data->session_id = g_strdup(sid);
 		data->participant = NULL;
 
-		local_video = gtk_drawing_area_new();
-		gtk_widget_override_background_color(local_video, GTK_STATE_FLAG_NORMAL, &color);
+		local_video = pidgin_create_video_widget();
 		g_signal_connect(G_OBJECT(local_video), "realize",
 				G_CALLBACK(realize_cb), data);
 		gtk_container_add(GTK_CONTAINER(aspect), local_video);
diff --git a/pidgin/gtkprefs.c b/pidgin/gtkprefs.c
--- a/pidgin/gtkprefs.c
+++ b/pidgin/gtkprefs.c
@@ -3809,11 +3809,9 @@ make_video_test(GtkWidget *vbox)
 {
 	GtkWidget *test;
 	GtkWidget *video;
-	GdkRGBA color = {0.0, 0.0, 0.0, 1.0};
-
-	video_drawing_area = video = gtk_drawing_area_new();
+
+	video_drawing_area = video = pidgin_create_video_widget();
 	gtk_box_pack_start(GTK_BOX(vbox), video, TRUE, TRUE, 0);
-	gtk_widget_override_background_color(video, GTK_STATE_FLAG_NORMAL, &color);
 	gtk_widget_set_size_request(GTK_WIDGET(video), 240, 180);
 
 	test = gtk_toggle_button_new_with_label(_("Test Video"));
diff --git a/pidgin/gtkutils.c b/pidgin/gtkutils.c
--- a/pidgin/gtkutils.c
+++ b/pidgin/gtkutils.c
@@ -228,6 +228,18 @@ pidgin_create_dialog(const char *title, 
 }
 
 GtkWidget *
+pidgin_create_video_widget(void)
+{
+	GtkWidget *video = NULL;
+	GdkRGBA color = {0.0, 0.0, 0.0, 1.0};
+
+	video = gtk_drawing_area_new();
+	gtk_widget_override_background_color(video, GTK_STATE_FLAG_NORMAL, &color);
+
+	return video;
+}
+
+GtkWidget *
 pidgin_dialog_get_vbox_with_properties(GtkDialog *dialog, gboolean homogeneous, gint spacing)
 {
 	GtkBox *vbox = GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog)));
diff --git a/pidgin/gtkutils.h b/pidgin/gtkutils.h
--- a/pidgin/gtkutils.h
+++ b/pidgin/gtkutils.h
@@ -141,6 +141,13 @@ GtkWidget *pidgin_create_window(const ch
 GtkWidget *pidgin_create_dialog(const char *title, guint border_width, const char *role, gboolean resizable);
 
 /**
+ * pidgin_create_video_widget:
+ *
+ * Creates a new drawing area suitable for displaying a video
+ */
+GtkWidget *pidgin_create_video_widget(void);
+
+/**
  * pidgin_dialog_get_vbox_with_properties:
  * @dialog:       The dialog window
  * @homogeneous:  TRUE if all children are to be given equal space allotments.



More information about the Commits mailing list