X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Finterface.c;h=02086d558caf76a1823ab6a2146e846e411a6b72;hb=00135851c96fd5e095b658e99bb72ad5c89b658c;hp=e8abeff8c9936a69936af1f94daa39170d881565;hpb=e13a6f150781976b37443c41c08bf38841e9e1f1;p=rugen diff --git a/src/interface.c b/src/interface.c index e8abeff..02086d5 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 - { - 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"); + int i; + GtkWidget *hbox; + gchar name[32]; + const static struct + { + int type; + gchar* tooltip; + gchar* filename; + } buttons[] = + { + { + 2, + "Beginning of playlist", + "begin-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 2, + "Start of clip", + "prev-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 2, + "Rewind", + "rew-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 2, + "Previous frame", + "prev-frame-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 1, + "Play", + "player_play_64x32_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 1, + "Pause", + "player_pause_32x32_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 1, + "Stop", + "player_stop_32x32_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 2, + "Next frame", + "next-frame-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 2, + "Fast forward", + "fwd-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 2, + "Next clip", + "next-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 2, + "End of playlist", + "end-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 2, + "Loop On", + "loop_on_16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 2, + "Loop Off", + "loop_off_16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */ + }, + { + 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) +{ + 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 (""); + 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 (""); + 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,11 +206,9 @@ create_gdv1394d (void) GtkWidget *notebook1; GtkWidget *empty_notebook_page; GtkWidget *label40; - GtkWidget *hbox20; - GtkWidget *label46; - GtkWidget *label47; GtkWidget *vbox_trim; GtkWidget *statusbar; + GtkWidget *button_open_playlist, *button_save_playlist; gdv1394d = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (gdv1394d), _("Melted Client")); @@ -235,6 +286,32 @@ create_gdv1394d (void) gtk_toolbar_append_space (GTK_TOOLBAR (toolbar1)); + tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-open", + gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); + button_open_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), + GTK_TOOLBAR_CHILD_BUTTON, + NULL, + "Open Playlist", + _("Open playlist"), NULL, + tmp_toolbar_icon, NULL, NULL); + gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE); + gtk_widget_show (button_open_playlist); + GLADE_HOOKUP_OBJECT (gdv1394d, button_open_playlist, "button_open_playlist"); + + tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-save-as", + gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1))); + button_save_playlist = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1), + GTK_TOOLBAR_CHILD_BUTTON, + NULL, + "Save Playlist", + _("Save playlist"), NULL, + tmp_toolbar_icon, NULL, NULL); + gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE); + gtk_widget_show (button_save_playlist); + GLADE_HOOKUP_OBJECT (gdv1394d, button_save_playlist, "button_save_playlist"); + + gtk_toolbar_append_space (GTK_TOOLBAR (toolbar1)); + // vseparator1 = gtk_vseparator_new (); // gtk_widget_show (vseparator1); // gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), vseparator1, NULL, NULL); @@ -276,26 +353,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 +397,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"); @@ -695,11 +761,11 @@ create_pane_filedir( GtkWidget* top ) GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); /* pane them */ - gtk_widget_set_size_request (vpaned, 400 , -1); gtk_paned_pack1 (GTK_PANED (vpaned), scrolledwindow[0], FALSE, FALSE); - gtk_widget_set_size_request (scrolledwindow[0], 150, -1); + gtk_widget_set_size_request (scrolledwindow[0], 250, -1); gtk_paned_pack2 (GTK_PANED (vpaned), scrolledwindow[1], TRUE, FALSE); - gtk_widget_set_size_request (scrolledwindow[1], 250, -1); + gtk_widget_set_size_request (scrolledwindow[1], 450, -1); + gtk_paned_set_position(GTK_PANED (vpaned), 250); /* list_dirs */ list[0] = gtk_tree_view_new ();