From: Steve B. <sb...@us...> - 2002-06-20 19:37:06
|
CVS Root: /cvsroot/gstreamer Module: gst-player Changes by: sbaker3 Date: Thu Jun 20 2002 12:37:04 PDT Log message: a bit of refactoring Modified files: libs/gst/player : gstcontrol.c Links: http://cvs.sf.net/cgi-bin/viewcvs.cgi/gstreamer/gst-player/libs/gst/player/gstcontrol.c.diff?r1=1.20&r2=1.21 ====Begin Diffs==== Index: gstcontrol.c =================================================================== RCS file: /cvsroot/gstreamer/gst-player/libs/gst/player/gstcontrol.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -d -r1.20 -r1.21 --- gstcontrol.c 20 Jun 2002 16:57:18 -0000 1.20 +++ gstcontrol.c 20 Jun 2002 19:36:52 -0000 1.21 @@ -438,6 +438,16 @@ return GTK_WIDGET (control); } +static void +gst_control_swap_boxes(GtkBox *oldbox, GtkBox *newbox, GtkWidget *widget, gint newpos){ + g_object_ref(widget); + gtk_container_remove(GTK_CONTAINER(oldbox), widget); + gtk_box_pack_start (newbox, widget, FALSE, FALSE, 0); + g_object_unref(widget); + gtk_widget_show (widget); + gtk_box_reorder_child(newbox, widget, newpos); +} + void gst_control_set_display_mode (GstControl *control, GstMediaPlayMode display_mode) { @@ -446,42 +456,20 @@ priv = control->_priv; + if (priv->display_mode == display_mode) return; + if (display_mode == GST_MEDIA_PLAY_NORMAL){ gtk_widget_show (priv->hbox_bot); gtk_widget_show (priv->button_demaxi); gtk_widget_show (priv->button_maxi); gtk_widget_set_sensitive(priv->button_maxi, priv->allow_fullscreen); + gst_control_swap_boxes(GTK_BOX(priv->hbox_top), GTK_BOX(priv->hbox_bot), priv->button_play, 0); if (priv->display_mode == GST_MEDIA_PLAY_MINI){ - g_object_ref(priv->button_maxi); - gtk_container_remove(GTK_CONTAINER(priv->hbox_top), priv->button_maxi); - gtk_box_pack_start (GTK_BOX (priv->hbox_bot), priv->button_maxi, FALSE, FALSE, 0); - g_object_unref(priv->button_maxi); - gtk_widget_show (priv->button_maxi); - - g_object_ref(priv->button_play); - gtk_container_remove(GTK_CONTAINER(priv->hbox_top), priv->button_play); - gtk_box_pack_start (GTK_BOX (priv->hbox_bot), priv->button_play, FALSE, FALSE, 0); - g_object_unref(priv->button_play); - gtk_widget_show (priv->button_play); - - gtk_box_reorder_child(GTK_BOX (priv->hbox_bot), priv->button_play, 0); + gst_control_swap_boxes(GTK_BOX(priv->hbox_top), GTK_BOX(priv->hbox_bot), priv->button_maxi, 11); } if (priv->display_mode == GST_MEDIA_PLAY_FULLSCREEN){ - g_object_ref(priv->button_demaxi); - gtk_container_remove(GTK_CONTAINER(priv->hbox_top), priv->button_demaxi); - gtk_box_pack_start (GTK_BOX (priv->hbox_bot), priv->button_demaxi, FALSE, FALSE, 0); - g_object_unref(priv->button_demaxi); - gtk_widget_show (priv->button_demaxi); - - g_object_ref(priv->button_play); - gtk_container_remove(GTK_CONTAINER(priv->hbox_top), priv->button_play); - gtk_box_pack_start (GTK_BOX (priv->hbox_bot), priv->button_play, FALSE, FALSE, 0); - g_object_unref(priv->button_play); - gtk_widget_show (priv->button_play); - - gtk_box_reorder_child(GTK_BOX (priv->hbox_bot), priv->button_play, 0); - gtk_box_reorder_child(GTK_BOX (priv->hbox_bot), priv->button_demaxi, 10); + gst_control_swap_boxes(GTK_BOX(priv->hbox_top), GTK_BOX(priv->hbox_bot), priv->button_demaxi, 10); } priv->display_mode = display_mode; return; @@ -492,30 +480,24 @@ gtk_widget_show (priv->button_demaxi); gtk_widget_hide (priv->button_maxi); - g_object_ref(priv->button_demaxi); - gtk_container_remove(GTK_CONTAINER(priv->hbox_bot), priv->button_demaxi); - gtk_box_pack_end (GTK_BOX (priv->hbox_top), priv->button_demaxi, FALSE, FALSE, 0); - g_object_unref(priv->button_demaxi); - gtk_widget_show (priv->button_demaxi); + gst_control_swap_boxes(GTK_BOX(priv->hbox_bot), GTK_BOX(priv->hbox_top), priv->button_demaxi, 3); + + if (priv->display_mode == GST_MEDIA_PLAY_NORMAL){ + gst_control_swap_boxes(GTK_BOX(priv->hbox_bot), GTK_BOX(priv->hbox_top), priv->button_play, 0); + } + else { + gst_control_swap_boxes(GTK_BOX(priv->hbox_top), GTK_BOX(priv->hbox_bot), priv->button_maxi, 10); + } } else { gtk_widget_hide (priv->button_demaxi); gtk_widget_show (priv->button_maxi); - g_object_ref(priv->button_maxi); - gtk_container_remove(GTK_CONTAINER(priv->hbox_bot), priv->button_maxi); - gtk_box_pack_end (GTK_BOX (priv->hbox_top), priv->button_maxi, FALSE, FALSE, 0); - g_object_unref(priv->button_maxi); - gtk_widget_show (priv->button_maxi); gtk_widget_set_sensitive(priv->button_maxi, TRUE); + gst_control_swap_boxes(GTK_BOX(priv->hbox_bot), GTK_BOX(priv->hbox_top), priv->button_play, 0); + gst_control_swap_boxes(GTK_BOX(priv->hbox_bot), GTK_BOX(priv->hbox_top), priv->button_maxi, 3); } - g_object_ref(priv->button_play); - gtk_container_remove(GTK_CONTAINER(priv->hbox_bot), priv->button_play); - gtk_box_pack_start (GTK_BOX (priv->hbox_top), priv->button_play, FALSE, FALSE, 0); - g_object_unref(priv->button_play); - gtk_box_reorder_child(GTK_BOX (priv->hbox_top), priv->button_play, 0); - gtk_widget_show (priv->button_play); priv->display_mode = display_mode; } |