#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 idx;
+ int type;
+ gchar* tooltip;
+ gchar* filename;
+ } buttons[] =
+ {
+ {
+ 0,
+ 2,
+ "Beginning of playlist",
+ "begin-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 1,
+ 2,
+ "Start of clip",
+ "prev-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 2,
+ 2,
+ "Rewind",
+ "rew-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 3,
+ 2,
+ "Previous frame",
+ "prev-frame-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 5,
+ 1,
+ "Play",
+ "player_play_64x32_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 4,
+ 1,
+ "Pause",
+ "player_pause_32x32_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 6,
+ 1,
+ "Stop",
+ "player_stop_32x32_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 7,
+ 2,
+ "Next frame",
+ "next-frame-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 8,
+ 2,
+ "Fast forward",
+ "fwd-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 9,
+ 2,
+ "Next clip",
+ "next-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 10,
+ 2,
+ "End of playlist",
+ "end-16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 11,
+ 2,
+ "Loop On",
+ "loop_on_16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 12,
+ 2,
+ "Loop Off",
+ "loop_off_16x16_(Axialis_Team).png" /* Free Icons by Axialis Software http://www.axialis.com */
+ },
+ {
+ 0,
+ 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", buttons[i].idx);
+ GLADE_HOOKUP_OBJECT (top, transport, name);
+
+ snprintf(name, sizeof(name), "transport_image_%d", buttons[i].idx);
+ 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 ("");
+ 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[1], name);
+
+ return hbox;
};
GtkWidget*
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"));
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);
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);
+ gtk_box_pack_start (GTK_BOX (vbox6),
+ create_block_buttons_transport(gdv1394d, 1),
+ FALSE, TRUE, 0);
- create_buttons_transport(gdv1394d, hbox20);
-
- 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);
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");
GtkWidget* vpaned;
GtkWidget* scrolledwindow[2];
GtkWidget* list[2];
+ GtkWidget* label_directory;
+ GtkWidget* vbox;
+
+ /* create vbox for label pack */
+ vbox = gtk_vbox_new (FALSE, 0);
+ gtk_widget_show (vbox);
+
+ /* create a label for dir name */
+ label_directory = gtk_label_new (_("Disconnected"));
+ gtk_widget_show (label_directory);
+ gtk_box_pack_start (GTK_BOX (vbox), label_directory, FALSE, FALSE, 0);
+ gtk_misc_set_alignment (GTK_MISC (label_directory), 0, 0.5);
+ GLADE_HOOKUP_OBJECT (top, label_directory, "label_directory");
/* create a vertical pane for dirs list and clips list */
vpaned = gtk_vpaned_new ();
gtk_widget_show (vpaned);
+ gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0);
/* create two scrolled window for lists areas */
scrolledwindow[0] = gtk_scrolled_window_new (NULL, NULL);
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 ();
gtk_widget_grab_focus (list[0]);
- return vpaned;
+ return vbox;
};
static
create_page_operate (void)
{
GtkWidget *page_clips;
- GtkWidget *vbox8;
- GtkWidget *hbox26;
- GtkWidget *label_directory;
GtkWidget *hpaned1;
GtkWidget *hpaned0;
GtkWidget *frame1, *frame2;
create_pane_status (frame2, page_clips);
- vbox8 = gtk_vbox_new (FALSE, 0);
- gtk_widget_show (vbox8);
- gtk_container_add (GTK_CONTAINER (frame1), vbox8);
-
- hbox26 = gtk_hbox_new (FALSE, 0);
- gtk_widget_show (hbox26);
- gtk_box_pack_start (GTK_BOX (vbox8), hbox26, FALSE, FALSE, 0);
-
- label_directory = gtk_label_new (_("Disconnected"));
- gtk_widget_show (label_directory);
- gtk_box_pack_start (GTK_BOX (hbox26), label_directory, TRUE, TRUE, 0);
- gtk_misc_set_alignment (GTK_MISC (label_directory), 0, 0.5);
-
- hpaned1 = gtk_hpaned_new ();
- gtk_widget_show (hpaned1);
- gtk_box_pack_start (GTK_BOX (vbox8), hpaned1, TRUE, TRUE, 0);
- gtk_paned_set_position (GTK_PANED (hpaned1), 120);
+ hpaned1 = gtk_hpaned_new ();
+ gtk_widget_show (hpaned1);
+ gtk_container_add (GTK_CONTAINER (frame1), hpaned1);
+ gtk_paned_set_position (GTK_PANED (hpaned1), 120);
gtk_paned_pack1 (GTK_PANED (hpaned1),
create_pane_filedir(page_clips),
/* Store pointers to all widgets, for use by lookup_widget(). */
- GLADE_HOOKUP_OBJECT (page_clips, vbox8, "vbox8");
- GLADE_HOOKUP_OBJECT (page_clips, hbox26, "hbox26");
- GLADE_HOOKUP_OBJECT (page_clips, label_directory, "label_directory");
GLADE_HOOKUP_OBJECT (page_clips, hpaned1, "hpaned1");
return page_clips;