X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Finterface.c;h=65b98147dea5ff3816ec06b3ab23417494dccb5f;hb=ac32b19e6e2ef9a9548045894484d1634bf400eb;hp=e8abeff8c9936a69936af1f94daa39170d881565;hpb=e13a6f150781976b37443c41c08bf38841e9e1f1;p=rugen diff --git a/src/interface.c b/src/interface.c index e8abeff..65b9814 100644 --- a/src/interface.c +++ b/src/interface.c @@ -26,104 +26,157 @@ #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ g_object_set_data (G_OBJECT (component), name, widget) -static void create_buttons_transport(GtkWidget *top, GtkWidget *parent_box) +static +GtkWidget * +create_buttons_transport(GtkWidget *top, int type) +{ + int i; + GtkWidget *hbox; + gchar name[32]; + const static struct + { + int type; + gchar* tooltip; + gchar* filename; + } buttons[] = + { + { + 2, + "Beginning of playlist", + "stock_media-begin-16.png" + }, + { + 2, + "Start of clip", + "stock_media-prev-16.png" + }, + { + 2, + "Rewind", + "stock_media-rew-16.png" + }, + { + 2, + "Previous frame", + "stock_media-prev-frame-16.png" + }, + { + 1, + "Pause", + "player_pause_32x32.png" + }, + { + 1, + "Play", + "player_play_64x32.png" + }, + { + 1, + "Stop", + "player_stop_32x32.png" + }, + { + 2, + "Next frame", + "stock_media-next-frame-16.png" + }, + { + 2, + "Fast forward", + "stock_media-fwd-16.png" + }, + { + 2, + "Next clip", + "stock_media-next-16.png" + }, + { + 2, + "End of playlist", + "stock_media-end-16.png" + }, + { + 2, + "Loop On", + "eof-loop-16.png" + }, + { + 2, + "Loop Off", + "eof-pause-16.png" + }, + { + 0, + NULL, + NULL + } + }; + + hbox = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox); + + + for(i = 0; buttons[i].filename; i++) + { + GtkWidget *transport, *image; + + if ( type != buttons[i].type ) + continue; + + transport = gtk_button_new (); + gtk_widget_show (transport); + gtk_box_pack_start (GTK_BOX (hbox), transport, TRUE, FALSE, 0); + GTK_WIDGET_UNSET_FLAGS (transport, GTK_CAN_FOCUS); + gtk_button_set_relief (GTK_BUTTON (transport), GTK_RELIEF_NONE); + gtk_widget_set_tooltip_text (transport, buttons[i].tooltip); + + image = gtk_image_new_from_pixbuf(create_pixbuf(buttons[i].filename)); + gtk_widget_show (image); + gtk_container_add (GTK_CONTAINER (transport), image); + + snprintf(name, sizeof(name), "transport_%d", i); + GLADE_HOOKUP_OBJECT (top, transport, name); + + snprintf(name, sizeof(name), "transport_image_%d", i); + GLADE_HOOKUP_OBJECT (top, image, name); + }; + + snprintf(name, sizeof(name), "buttons_transport_hbox_%d", type); + GLADE_HOOKUP_OBJECT (top, hbox, name); + + return hbox; +}; + +static +GtkWidget * +create_block_buttons_transport(GtkWidget *top, int type) { - int i; - GtkWidget *hbox; - gchar name[32]; - const static struct - { - gchar* tooltip; - gchar* filename; - } buttons[] = - { - { - "Beginning of playlist", - "stock_media-begin-16.png" - }, - { - "Start of clip", - "stock_media-prev-16.png" - }, - { - "Rewind", - "stock_media-rew-16.png" - }, - { - "Previous frame", - "stock_media-prev-frame-16.png" - }, - { - "Pause", - "stock_media-pause-16.png" - }, - { - "Play", - "stock_media-play-16.png" - }, - { - "Stop", - "stock_media-stop-16.png" - }, - { - "Next frame", - "stock_media-next-frame-16.png" - }, - { - "Fast forward", - "stock_media-fwd-16.png" - }, - { - "Next clip", - "stock_media-next-16.png" - }, - { - "End of playlist", - "stock_media-end-16.png" - }, - { - "Loop On", - "eof-loop-16.png" - }, - { - "Loop Off", - "eof-pause-16.png" - }, - { - NULL, - NULL - } - }; - - hbox = gtk_hbox_new (FALSE, 0); - gtk_widget_show (hbox); - gtk_box_pack_start (GTK_BOX (parent_box), hbox, FALSE, TRUE, 0); - - - for(i = 0; buttons[i].filename; i++) - { - GtkWidget *transport, *image; - - transport = gtk_button_new (); - gtk_widget_show (transport); - gtk_box_pack_start (GTK_BOX (hbox), transport, TRUE, FALSE, 0); - gtk_widget_set_size_request (transport, 34, 25); - GTK_WIDGET_UNSET_FLAGS (transport, GTK_CAN_FOCUS); - gtk_button_set_relief (GTK_BUTTON (transport), GTK_RELIEF_NONE); - gtk_widget_set_tooltip_text (transport, buttons[i].tooltip); - - image = gtk_image_new_from_pixbuf(create_pixbuf(buttons[i].filename)); - gtk_widget_show (image); - gtk_container_add (GTK_CONTAINER (transport), image); - - snprintf(name, sizeof(name), "transport_%d", i); - GLADE_HOOKUP_OBJECT (top, transport, name); - - snprintf(name, sizeof(name), "transport_image_%d", i); - GLADE_HOOKUP_OBJECT (top, image, name); - }; - - GLADE_HOOKUP_OBJECT (top, hbox, "buttons_transport_hbox"); + gchar name[32]; + GtkWidget *hbox, *label[2]; + + hbox = gtk_hbox_new (FALSE, 0); + gtk_widget_show (hbox); + + snprintf(name, sizeof(name), "bbt_label_%da", type); + label[0] = gtk_label_new (name); + gtk_widget_show (label[0]); + gtk_box_pack_start (GTK_BOX (hbox), label[0], TRUE, TRUE, 0); + gtk_label_set_justify (GTK_LABEL (label[0]), GTK_JUSTIFY_LEFT); + GLADE_HOOKUP_OBJECT (top, label[0], name); + + + gtk_box_pack_start (GTK_BOX (hbox), + create_buttons_transport(top, type), + FALSE, TRUE, 0); + + snprintf(name, sizeof(name), "bbt_label_%db", type); + label[1] = gtk_label_new (name); + gtk_widget_show (label[1]); + gtk_box_pack_start (GTK_BOX (hbox), label[1], TRUE, TRUE, 0); + gtk_label_set_justify (GTK_LABEL (label[1]), GTK_JUSTIFY_LEFT); + GLADE_HOOKUP_OBJECT (top, label[0], name); + + return hbox; }; GtkWidget* @@ -153,9 +206,6 @@ create_gdv1394d (void) GtkWidget *notebook1; GtkWidget *empty_notebook_page; GtkWidget *label40; - GtkWidget *hbox20; - GtkWidget *label46; - GtkWidget *label47; GtkWidget *vbox_trim; GtkWidget *statusbar; @@ -276,26 +326,18 @@ create_gdv1394d (void) gtk_widget_show (empty_notebook_page); gtk_container_add (GTK_CONTAINER (notebook1), empty_notebook_page); - label40 = gtk_label_new (""); + label40 = gtk_label_new ("label40"); gtk_widget_show (label40); gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label40); gtk_label_set_justify (GTK_LABEL (label40), GTK_JUSTIFY_LEFT); - hbox20 = gtk_hbox_new (FALSE, 0); - gtk_widget_show (hbox20); - gtk_box_pack_start (GTK_BOX (vbox6), hbox20, FALSE, TRUE, 0); - - label46 = gtk_label_new (""); - gtk_widget_show (label46); - gtk_box_pack_start (GTK_BOX (hbox20), label46, TRUE, TRUE, 0); - gtk_label_set_justify (GTK_LABEL (label46), GTK_JUSTIFY_LEFT); - - create_buttons_transport(gdv1394d, hbox20); + gtk_box_pack_start (GTK_BOX (vbox6), + create_block_buttons_transport(gdv1394d, 1), + FALSE, TRUE, 0); - label47 = gtk_label_new (""); - gtk_widget_show (label47); - gtk_box_pack_start (GTK_BOX (hbox20), label47, TRUE, TRUE, 0); - gtk_label_set_justify (GTK_LABEL (label47), GTK_JUSTIFY_LEFT); + gtk_box_pack_start (GTK_BOX (vbox6), + create_block_buttons_transport(gdv1394d, 2), + FALSE, TRUE, 0); vbox_trim = gtk_vbox_new (FALSE, 0); gtk_widget_show (vbox_trim); @@ -328,9 +370,6 @@ create_gdv1394d (void) GLADE_HOOKUP_OBJECT (gdv1394d, vbox6, "vbox6"); GLADE_HOOKUP_OBJECT (gdv1394d, notebook1, "notebook1"); GLADE_HOOKUP_OBJECT (gdv1394d, label40, "label40"); - GLADE_HOOKUP_OBJECT (gdv1394d, hbox20, "hbox20"); - GLADE_HOOKUP_OBJECT (gdv1394d, label46, "label46"); - GLADE_HOOKUP_OBJECT (gdv1394d, label47, "label47"); GLADE_HOOKUP_OBJECT (gdv1394d, vbox_trim, "vbox_trim"); GLADE_HOOKUP_OBJECT (gdv1394d, statusbar, "statusbar");