From a8df0c97cff85597d130de44b039ca1a7f10b9e1 Mon Sep 17 00:00:00 2001 From: Maksym Veremeyenko Date: Tue, 14 Jun 2011 15:33:04 +0300 Subject: [PATCH] factorize playlist's button creation --- src/interface.c | 260 +++++++++++++++++++++++-------------------------------- 1 files changed, 107 insertions(+), 153 deletions(-) diff --git a/src/interface.c b/src/interface.c index adc7b86..384f20d 100644 --- a/src/interface.c +++ b/src/interface.c @@ -553,6 +553,112 @@ static GtkWidget* create_pane_status (GtkWidget* parent, GtkWidget* top) return scrolledwindow; } +static +GtkWidget* +create_playlist_buttons( GtkWidget* parent, GtkWidget* top ) +{ + int i; + const static struct + { + gchar* tooltip; + gchar* stock; + gchar* label; + gchar* hookup; + } buttons[] = + { + { + "Refresh", + "gtk-refresh", + "", + "button_clips_refresh", + }, + { + "Load root folder", + "gtk-home", + "", + "button_clips_home" + }, + { + "Move clip up", + "gtk-go-up", + "", + "button_up" + }, + { + "Move clip down", + "gtk-go-down", + "", + "button_down" + }, + { + "Remove clip", + "gtk-delete", + "", + "button_remove" + }, + { + "Remove all but current clip", + "gtk-clear", + "", + "button_clean" + }, + { + NULL, NULL, NULL, NULL + } + }; + + GtkWidget *label44, *label45, *hbuttonbox5; + + label44 = gtk_label_new (_(" ")); + gtk_widget_show (label44); + gtk_box_pack_start (GTK_BOX (parent), label44, TRUE, TRUE, 0); + gtk_label_set_justify (GTK_LABEL (label44), GTK_JUSTIFY_LEFT); + + for(i = 0; buttons[i].stock; i++) + { + GtkWidget *button, *alignment, *hbox, *image, *label; + + button = gtk_button_new (); + gtk_widget_show (button); + gtk_box_pack_start (GTK_BOX (parent), button, FALSE, FALSE, 0); + GTK_WIDGET_UNSET_FLAGS (button, GTK_CAN_FOCUS); + GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT); + gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE); + gtk_widget_set_tooltip_text (button, buttons[i].tooltip); + + alignment = gtk_alignment_new (0, 0.5, 0, 0); + gtk_widget_show (alignment); + gtk_container_add (GTK_CONTAINER (button), alignment); + + hbox = gtk_hbox_new (FALSE, 2); + gtk_widget_show (hbox); + gtk_container_add (GTK_CONTAINER (alignment), hbox); + + image = gtk_image_new_from_stock (buttons[i].stock, GTK_ICON_SIZE_MENU); + gtk_widget_show (image); + gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0); + + label = gtk_label_new_with_mnemonic (buttons[i].label); + gtk_widget_show (label); + gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); + gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT); + + GLADE_HOOKUP_OBJECT (top, button, buttons[i].hookup); + }; + + hbuttonbox5 = gtk_hbutton_box_new (); + gtk_widget_show (hbuttonbox5); + gtk_box_pack_start (GTK_BOX (parent), hbuttonbox5, FALSE, FALSE, 0); + + label45 = gtk_label_new (_(" ")); + gtk_widget_show (label45); + gtk_box_pack_start (GTK_BOX (parent), label45, TRUE, TRUE, 0); + gtk_label_set_justify (GTK_LABEL (label45), GTK_JUSTIFY_LEFT); + + return parent; +} + + GtkWidget* create_page_operate (void) { @@ -579,27 +685,6 @@ create_page_operate (void) GtkWidget *treeview1; GtkWidget *alignment12; GtkWidget *hbox19; - GtkWidget *label44; - GtkWidget *button_clips_refresh; - GtkWidget *alignment5; - GtkWidget *hbox12; - GtkWidget *image5; - GtkWidget *label36; - GtkWidget *button_clips_home; - GtkWidget *alignment6; - GtkWidget *hbox13; - GtkWidget *image6; - GtkWidget *label37; - GtkWidget *button_up; - GtkWidget *image21; - GtkWidget *button_down; - GtkWidget *image22; - GtkWidget *button_remove; - GtkWidget *image23; - GtkWidget *button_clean; - GtkWidget *image24; - GtkWidget *hbuttonbox5; - GtkWidget *label45; GtkWidget *hpaned0; GtkWidget *frame1, *frame2; @@ -734,117 +819,7 @@ create_page_operate (void) gtk_widget_show (hbox19); gtk_container_add (GTK_CONTAINER (alignment12), hbox19); - label44 = gtk_label_new (_(" ")); - gtk_widget_show (label44); - gtk_box_pack_start (GTK_BOX (hbox19), label44, TRUE, TRUE, 0); - gtk_label_set_justify (GTK_LABEL (label44), GTK_JUSTIFY_LEFT); - - button_clips_refresh = gtk_button_new (); - gtk_widget_show (button_clips_refresh); - gtk_box_pack_start (GTK_BOX (hbox19), button_clips_refresh, FALSE, FALSE, 0); - GTK_WIDGET_UNSET_FLAGS (button_clips_refresh, GTK_CAN_FOCUS); - GTK_WIDGET_SET_FLAGS (button_clips_refresh, GTK_CAN_DEFAULT); - gtk_button_set_relief (GTK_BUTTON (button_clips_refresh), GTK_RELIEF_NONE); - gtk_widget_set_tooltip_text (button_clips_refresh, _("Refresh")); - - alignment5 = gtk_alignment_new (0, 0.5, 0, 0); - gtk_widget_show (alignment5); - gtk_container_add (GTK_CONTAINER (button_clips_refresh), alignment5); - - hbox12 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox12); - gtk_container_add (GTK_CONTAINER (alignment5), hbox12); - - image5 = gtk_image_new_from_stock ("gtk-refresh", GTK_ICON_SIZE_MENU); - gtk_widget_show (image5); - gtk_box_pack_start (GTK_BOX (hbox12), image5, FALSE, FALSE, 0); - - label36 = gtk_label_new_with_mnemonic (""); - gtk_widget_show (label36); - gtk_box_pack_start (GTK_BOX (hbox12), label36, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label36), GTK_JUSTIFY_LEFT); - - button_clips_home = gtk_button_new (); - gtk_widget_show (button_clips_home); - gtk_box_pack_start (GTK_BOX (hbox19), button_clips_home, FALSE, FALSE, 0); - GTK_WIDGET_UNSET_FLAGS (button_clips_home, GTK_CAN_FOCUS); - GTK_WIDGET_SET_FLAGS (button_clips_home, GTK_CAN_DEFAULT); - gtk_button_set_relief (GTK_BUTTON (button_clips_home), GTK_RELIEF_NONE); - gtk_widget_set_tooltip_text (button_clips_home, _("Load root folder")); - - alignment6 = gtk_alignment_new (0, 0.5, 0, 0); - gtk_widget_show (alignment6); - gtk_container_add (GTK_CONTAINER (button_clips_home), alignment6); - - hbox13 = gtk_hbox_new (FALSE, 2); - gtk_widget_show (hbox13); - gtk_container_add (GTK_CONTAINER (alignment6), hbox13); - - image6 = gtk_image_new_from_stock ("gtk-home", GTK_ICON_SIZE_MENU); - gtk_widget_show (image6); - gtk_box_pack_start (GTK_BOX (hbox13), image6, FALSE, FALSE, 0); - - label37 = gtk_label_new_with_mnemonic (""); - gtk_widget_show (label37); - gtk_box_pack_start (GTK_BOX (hbox13), label37, FALSE, FALSE, 0); - gtk_label_set_justify (GTK_LABEL (label37), GTK_JUSTIFY_LEFT); - - button_up = gtk_button_new (); - gtk_widget_show (button_up); - gtk_box_pack_start (GTK_BOX (hbox19), button_up, FALSE, FALSE, 0); - GTK_WIDGET_UNSET_FLAGS (button_up, GTK_CAN_FOCUS); - GTK_WIDGET_SET_FLAGS (button_up, GTK_CAN_DEFAULT); - gtk_button_set_relief (GTK_BUTTON (button_up), GTK_RELIEF_NONE); - gtk_widget_set_tooltip_text (button_up, _("Move clip up")); - - image21 = gtk_image_new_from_stock ("gtk-go-up", GTK_ICON_SIZE_MENU); - gtk_widget_show (image21); - gtk_container_add (GTK_CONTAINER (button_up), image21); - - button_down = gtk_button_new (); - gtk_widget_show (button_down); - gtk_box_pack_start (GTK_BOX (hbox19), button_down, FALSE, FALSE, 0); - GTK_WIDGET_UNSET_FLAGS (button_down, GTK_CAN_FOCUS); - GTK_WIDGET_SET_FLAGS (button_down, GTK_CAN_DEFAULT); - gtk_button_set_relief (GTK_BUTTON (button_down), GTK_RELIEF_NONE); - gtk_widget_set_tooltip_text (button_down, _("Move clip down")); - - image22 = gtk_image_new_from_stock ("gtk-go-down", GTK_ICON_SIZE_MENU); - gtk_widget_show (image22); - gtk_container_add (GTK_CONTAINER (button_down), image22); - - button_remove = gtk_button_new (); - gtk_widget_show (button_remove); - gtk_box_pack_start (GTK_BOX (hbox19), button_remove, FALSE, FALSE, 0); - GTK_WIDGET_UNSET_FLAGS (button_remove, GTK_CAN_FOCUS); - GTK_WIDGET_SET_FLAGS (button_remove, GTK_CAN_DEFAULT); - gtk_button_set_relief (GTK_BUTTON (button_remove), GTK_RELIEF_NONE); - gtk_widget_set_tooltip_text (button_remove, _("Remove clip")); - - image23 = gtk_image_new_from_stock ("gtk-delete", GTK_ICON_SIZE_MENU); - gtk_widget_show (image23); - gtk_container_add (GTK_CONTAINER (button_remove), image23); - - button_clean = gtk_button_new (); - gtk_widget_show (button_clean); - gtk_box_pack_start (GTK_BOX (hbox19), button_clean, FALSE, FALSE, 0); - GTK_WIDGET_UNSET_FLAGS (button_clean, GTK_CAN_FOCUS); - GTK_WIDGET_SET_FLAGS (button_clean, GTK_CAN_DEFAULT); - gtk_button_set_relief (GTK_BUTTON (button_clean), GTK_RELIEF_NONE); - gtk_widget_set_tooltip_text (button_clean, _("Remove all but current clip")); - - image24 = gtk_image_new_from_stock ("gtk-clear", GTK_ICON_SIZE_MENU); - gtk_widget_show (image24); - gtk_container_add (GTK_CONTAINER (button_clean), image24); - - hbuttonbox5 = gtk_hbutton_box_new (); - gtk_widget_show (hbuttonbox5); - gtk_box_pack_start (GTK_BOX (hbox19), hbuttonbox5, FALSE, FALSE, 0); - - label45 = gtk_label_new (_(" ")); - gtk_widget_show (label45); - gtk_box_pack_start (GTK_BOX (hbox19), label45, TRUE, TRUE, 0); - gtk_label_set_justify (GTK_LABEL (label45), GTK_JUSTIFY_LEFT); + create_playlist_buttons(hbox19, page_clips); /* Store pointers to all widgets, for use by lookup_widget(). */ GLADE_HOOKUP_OBJECT (page_clips, vbox8, "vbox8"); @@ -869,27 +844,6 @@ create_page_operate (void) GLADE_HOOKUP_OBJECT (page_clips, treeview1, "treeview1"); GLADE_HOOKUP_OBJECT (page_clips, alignment12, "alignment12"); GLADE_HOOKUP_OBJECT (page_clips, hbox19, "hbox19"); - GLADE_HOOKUP_OBJECT (page_clips, label44, "label44"); - GLADE_HOOKUP_OBJECT (page_clips, button_clips_refresh, "button_clips_refresh"); - GLADE_HOOKUP_OBJECT (page_clips, alignment5, "alignment5"); - GLADE_HOOKUP_OBJECT (page_clips, hbox12, "hbox12"); - GLADE_HOOKUP_OBJECT (page_clips, image5, "image5"); - GLADE_HOOKUP_OBJECT (page_clips, label36, "label36"); - GLADE_HOOKUP_OBJECT (page_clips, button_clips_home, "button_clips_home"); - GLADE_HOOKUP_OBJECT (page_clips, alignment6, "alignment6"); - GLADE_HOOKUP_OBJECT (page_clips, hbox13, "hbox13"); - GLADE_HOOKUP_OBJECT (page_clips, image6, "image6"); - GLADE_HOOKUP_OBJECT (page_clips, label37, "label37"); - GLADE_HOOKUP_OBJECT (page_clips, button_up, "button_up"); - GLADE_HOOKUP_OBJECT (page_clips, image21, "image21"); - GLADE_HOOKUP_OBJECT (page_clips, button_down, "button_down"); - GLADE_HOOKUP_OBJECT (page_clips, image22, "image22"); - GLADE_HOOKUP_OBJECT (page_clips, button_remove, "button_remove"); - GLADE_HOOKUP_OBJECT (page_clips, image23, "image23"); - GLADE_HOOKUP_OBJECT (page_clips, button_clean, "button_clean"); - GLADE_HOOKUP_OBJECT (page_clips, image24, "image24"); - GLADE_HOOKUP_OBJECT (page_clips, hbuttonbox5, "hbuttonbox5"); - GLADE_HOOKUP_OBJECT (page_clips, label45, "label45"); gtk_widget_grab_focus (list_dir); return page_clips; -- 1.7.4.4