1 /*
2  * DO NOT EDIT THIS FILE - it is generated by Glade.
3  */
4 
5 #ifdef HAVE_CONFIG_H
6 #  include <config.h>
7 #endif
8 
9 #include <sys/types.h>
10 #include <sys/stat.h>
11 #include <unistd.h>
12 #include <string.h>
13 #include <stdio.h>
14 
15 #include <gdk/gdkkeysyms.h>
16 #include <gtk/gtk.h>
17 
18 #include "callbacks.h"
19 #include "interface.h"
20 #include "support.h"
21 
22 #define GLADE_HOOKUP_OBJECT(component,widget,name) \
23   g_object_set_data_full (G_OBJECT (component), name, \
24     g_object_ref(G_OBJECT(widget)), (GDestroyNotify) g_object_unref)
25 
26 #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
27   g_object_set_data (G_OBJECT (component), name, widget)
28 
29 GtkWidget*
create_shellexec_conf_dialog(void)30 create_shellexec_conf_dialog (void)
31 {
32   GtkWidget *shellexec_conf_dialog;
33   GtkWidget *dialog_vbox;
34   GtkWidget *vbox1;
35   GtkWidget *hbox1;
36   GtkWidget *add_button;
37   GtkWidget *remove_button;
38   GtkWidget *edit_button;
39   GtkWidget *scrolledwindow;
40   GtkWidget *command_treeview;
41   GtkWidget *dialog_action_area;
42   GtkWidget *save_button;
43 
44   shellexec_conf_dialog = gtk_dialog_new ();
45   gtk_container_set_border_width (GTK_CONTAINER (shellexec_conf_dialog), 12);
46   gtk_window_set_title (GTK_WINDOW (shellexec_conf_dialog), _("Custom Shell Commands"));
47   gtk_window_set_destroy_with_parent (GTK_WINDOW (shellexec_conf_dialog), TRUE);
48   gtk_window_set_type_hint (GTK_WINDOW (shellexec_conf_dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
49   gtk_dialog_set_has_separator (GTK_DIALOG (shellexec_conf_dialog), FALSE);
50 
51   dialog_vbox = gtk_dialog_get_content_area (GTK_DIALOG (shellexec_conf_dialog));
52   gtk_widget_show (dialog_vbox);
53 
54   vbox1 = gtk_vbox_new (FALSE, 8);
55   gtk_widget_show (vbox1);
56   gtk_box_pack_start (GTK_BOX (dialog_vbox), vbox1, TRUE, TRUE, 0);
57 
58   hbox1 = gtk_hbox_new (FALSE, 8);
59   gtk_widget_show (hbox1);
60   gtk_box_pack_start (GTK_BOX (vbox1), hbox1, FALSE, TRUE, 0);
61 
62   add_button = gtk_button_new_with_mnemonic (_("Add"));
63   gtk_widget_show (add_button);
64   gtk_box_pack_start (GTK_BOX (hbox1), add_button, TRUE, TRUE, 0);
65 
66   remove_button = gtk_button_new_with_mnemonic (_("Remove"));
67   gtk_widget_show (remove_button);
68   gtk_box_pack_start (GTK_BOX (hbox1), remove_button, TRUE, TRUE, 0);
69 
70   edit_button = gtk_button_new_with_mnemonic (_("Edit"));
71   gtk_widget_show (edit_button);
72   gtk_box_pack_start (GTK_BOX (hbox1), edit_button, TRUE, TRUE, 0);
73 
74   scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
75   gtk_widget_show (scrolledwindow);
76   gtk_box_pack_start (GTK_BOX (vbox1), scrolledwindow, TRUE, TRUE, 0);
77   gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
78   gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_SHADOW_IN);
79 
80   command_treeview = gtk_tree_view_new ();
81   gtk_widget_show (command_treeview);
82   gtk_container_add (GTK_CONTAINER (scrolledwindow), command_treeview);
83 
84   dialog_action_area = gtk_dialog_get_action_area (GTK_DIALOG (shellexec_conf_dialog));
85   gtk_widget_show (dialog_action_area);
86   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area), GTK_BUTTONBOX_END);
87 
88   save_button = gtk_button_new_with_mnemonic (_("Close"));
89   gtk_widget_show (save_button);
90   gtk_dialog_add_action_widget (GTK_DIALOG (shellexec_conf_dialog), save_button, 0);
91   gtk_widget_set_can_default(save_button, TRUE);
92 
93   g_signal_connect ((gpointer) shellexec_conf_dialog, "destroy",
94                     G_CALLBACK (on_shellexec_conf_dialog_destroy),
95                     NULL);
96   g_signal_connect ((gpointer) add_button, "clicked",
97                     G_CALLBACK (on_add_button_clicked),
98                     NULL);
99   g_signal_connect ((gpointer) remove_button, "clicked",
100                     G_CALLBACK (on_remove_button_clicked),
101                     NULL);
102   g_signal_connect ((gpointer) edit_button, "clicked",
103                     G_CALLBACK (on_edit_button_clicked),
104                     NULL);
105   g_signal_connect ((gpointer) save_button, "clicked",
106                     G_CALLBACK (on_save_button_clicked),
107                     NULL);
108 
109   /* Store pointers to all widgets, for use by lookup_widget(). */
110   GLADE_HOOKUP_OBJECT_NO_REF (shellexec_conf_dialog, shellexec_conf_dialog, "shellexec_conf_dialog");
111   GLADE_HOOKUP_OBJECT_NO_REF (shellexec_conf_dialog, dialog_vbox, "dialog_vbox");
112   GLADE_HOOKUP_OBJECT (shellexec_conf_dialog, vbox1, "vbox1");
113   GLADE_HOOKUP_OBJECT (shellexec_conf_dialog, hbox1, "hbox1");
114   GLADE_HOOKUP_OBJECT (shellexec_conf_dialog, add_button, "add_button");
115   GLADE_HOOKUP_OBJECT (shellexec_conf_dialog, remove_button, "remove_button");
116   GLADE_HOOKUP_OBJECT (shellexec_conf_dialog, edit_button, "edit_button");
117   GLADE_HOOKUP_OBJECT (shellexec_conf_dialog, scrolledwindow, "scrolledwindow");
118   GLADE_HOOKUP_OBJECT (shellexec_conf_dialog, command_treeview, "command_treeview");
119   GLADE_HOOKUP_OBJECT_NO_REF (shellexec_conf_dialog, dialog_action_area, "dialog_action_area");
120   GLADE_HOOKUP_OBJECT (shellexec_conf_dialog, save_button, "save_button");
121 
122   return shellexec_conf_dialog;
123 }
124 
125 GtkWidget*
create_shellexec_conf_edit_dialog(void)126 create_shellexec_conf_edit_dialog (void)
127 {
128   GtkWidget *shellexec_conf_edit_dialog;
129   GtkWidget *dialog_vbox1;
130   GtkWidget *table1;
131   GtkWidget *title_label;
132   GtkWidget *cmd_label;
133   GtkWidget *cmd_entry;
134   GtkWidget *name_label;
135   GtkWidget *title_entry;
136   GtkWidget *name_entry;
137   GtkWidget *single_check;
138   GtkWidget *multiple_check;
139   GtkWidget *local_check;
140   GtkWidget *remote_check;
141   GtkWidget *common_check;
142   GtkWidget *label1;
143   GtkWidget *dialog_action_area1;
144   GtkWidget *edit_cancel_button;
145   GtkWidget *edit_ok_button;
146 
147   shellexec_conf_edit_dialog = gtk_dialog_new ();
148   gtk_container_set_border_width (GTK_CONTAINER (shellexec_conf_edit_dialog), 12);
149   gtk_window_set_title (GTK_WINDOW (shellexec_conf_edit_dialog), _("Edit Command"));
150   gtk_window_set_modal (GTK_WINDOW (shellexec_conf_edit_dialog), TRUE);
151   gtk_window_set_type_hint (GTK_WINDOW (shellexec_conf_edit_dialog), GDK_WINDOW_TYPE_HINT_DIALOG);
152   gtk_dialog_set_has_separator (GTK_DIALOG (shellexec_conf_edit_dialog), FALSE);
153 
154   dialog_vbox1 = gtk_dialog_get_content_area (GTK_DIALOG (shellexec_conf_edit_dialog));
155   gtk_widget_show (dialog_vbox1);
156 
157   table1 = gtk_table_new (3, 2, FALSE);
158   gtk_widget_show (table1);
159   gtk_box_pack_start (GTK_BOX (dialog_vbox1), table1, FALSE, TRUE, 0);
160   gtk_table_set_row_spacings (GTK_TABLE (table1), 8);
161   gtk_table_set_col_spacings (GTK_TABLE (table1), 8);
162 
163   title_label = gtk_label_new (_("Title:"));
164   gtk_widget_show (title_label);
165   gtk_table_attach (GTK_TABLE (table1), title_label, 0, 1, 1, 2,
166                     (GtkAttachOptions) (GTK_FILL),
167                     (GtkAttachOptions) (0), 0, 0);
168   gtk_misc_set_alignment (GTK_MISC (title_label), 0, 0.5);
169 
170   cmd_label = gtk_label_new (_("Command:"));
171   gtk_widget_show (cmd_label);
172   gtk_table_attach (GTK_TABLE (table1), cmd_label, 0, 1, 2, 3,
173                     (GtkAttachOptions) (GTK_FILL),
174                     (GtkAttachOptions) (0), 0, 0);
175   gtk_misc_set_alignment (GTK_MISC (cmd_label), 0, 0.5);
176 
177   cmd_entry = gtk_entry_new ();
178   gtk_widget_show (cmd_entry);
179   gtk_table_attach (GTK_TABLE (table1), cmd_entry, 1, 2, 2, 3,
180                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
181                     (GtkAttachOptions) (0), 0, 0);
182   gtk_widget_set_tooltip_text (cmd_entry, _("Arbitrary shell command. Will be executed in the shell context which the main application was started from. Title formatting can be used. Example: xdg-open %D"));
183   gtk_entry_set_invisible_char (GTK_ENTRY (cmd_entry), 8226);
184 
185   name_label = gtk_label_new (_("ID:"));
186   gtk_widget_show (name_label);
187   gtk_table_attach (GTK_TABLE (table1), name_label, 0, 1, 0, 1,
188                     (GtkAttachOptions) (GTK_FILL),
189                     (GtkAttachOptions) (0), 0, 0);
190   gtk_misc_set_alignment (GTK_MISC (name_label), 0, 0.5);
191 
192   title_entry = gtk_entry_new ();
193   gtk_widget_show (title_entry);
194   gtk_table_attach (GTK_TABLE (table1), title_entry, 1, 2, 1, 2,
195                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
196                     (GtkAttachOptions) (0), 0, 0);
197   gtk_widget_set_tooltip_text (title_entry, _("Free-form name, for example \"My Shell Command\""));
198   gtk_entry_set_invisible_char (GTK_ENTRY (title_entry), 8226);
199 
200   name_entry = gtk_entry_new ();
201   gtk_widget_show (name_entry);
202   gtk_table_attach (GTK_TABLE (table1), name_entry, 1, 2, 0, 1,
203                     (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
204                     (GtkAttachOptions) (0), 0, 0);
205   gtk_widget_set_tooltip_text (name_entry, _("Command ID, normally it should be something short, for example \"youtube_open\". It must be unique."));
206   gtk_entry_set_invisible_char (GTK_ENTRY (name_entry), 8226);
207 
208   single_check = gtk_check_button_new_with_mnemonic (_("Single Tracks"));
209   gtk_widget_show (single_check);
210   gtk_box_pack_start (GTK_BOX (dialog_vbox1), single_check, FALSE, FALSE, 0);
211   gtk_widget_set_tooltip_text (single_check, _("Works on single track."));
212 
213   multiple_check = gtk_check_button_new_with_mnemonic (_("Multiple Tracks"));
214   gtk_widget_show (multiple_check);
215   gtk_box_pack_start (GTK_BOX (dialog_vbox1), multiple_check, FALSE, FALSE, 0);
216   gtk_widget_set_tooltip_text (multiple_check, _("Works on multiple tracks."));
217 
218   local_check = gtk_check_button_new_with_mnemonic (_("Local"));
219   gtk_widget_show (local_check);
220   gtk_box_pack_start (GTK_BOX (dialog_vbox1), local_check, FALSE, FALSE, 0);
221   gtk_widget_set_tooltip_text (local_check, _("Works on local files."));
222 
223   remote_check = gtk_check_button_new_with_mnemonic (_("Remote"));
224   gtk_widget_show (remote_check);
225   gtk_box_pack_start (GTK_BOX (dialog_vbox1), remote_check, FALSE, FALSE, 0);
226   gtk_widget_set_tooltip_text (remote_check, _("Works on remote files (e.g. http:// streams)"));
227 
228   common_check = gtk_check_button_new_with_mnemonic (_("Generic (Main Menu)"));
229   gtk_widget_show (common_check);
230   gtk_box_pack_start (GTK_BOX (dialog_vbox1), common_check, FALSE, FALSE, 0);
231   gtk_widget_set_tooltip_text (common_check, _("Item should appear in the main menu"));
232 
233   label1 = gtk_label_new (_("<small>If you want to add the command to main menu, make sure that title contains the menu path like this: \"File/My Command\", where File is the menu name in the English version.</small>"));
234   gtk_widget_show (label1);
235   gtk_box_pack_start (GTK_BOX (dialog_vbox1), label1, FALSE, FALSE, 0);
236   gtk_label_set_use_markup (GTK_LABEL (label1), TRUE);
237   gtk_label_set_line_wrap (GTK_LABEL (label1), TRUE);
238   gtk_misc_set_alignment (GTK_MISC (label1), 0, 0.5);
239 
240   dialog_action_area1 = gtk_dialog_get_action_area (GTK_DIALOG (shellexec_conf_edit_dialog));
241   gtk_widget_show (dialog_action_area1);
242   gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
243 
244   edit_cancel_button = gtk_button_new_from_stock ("gtk-cancel");
245   gtk_widget_show (edit_cancel_button);
246   gtk_dialog_add_action_widget (GTK_DIALOG (shellexec_conf_edit_dialog), edit_cancel_button, GTK_RESPONSE_CANCEL);
247   gtk_widget_set_can_default(edit_cancel_button, TRUE);
248 
249   edit_ok_button = gtk_button_new_from_stock ("gtk-ok");
250   gtk_widget_show (edit_ok_button);
251   gtk_dialog_add_action_widget (GTK_DIALOG (shellexec_conf_edit_dialog), edit_ok_button, GTK_RESPONSE_OK);
252   gtk_widget_set_can_default(edit_ok_button, TRUE);
253 
254   g_signal_connect ((gpointer) edit_cancel_button, "clicked",
255                     G_CALLBACK (on_edit_cancel_button_clicked),
256                     NULL);
257   g_signal_connect ((gpointer) edit_ok_button, "clicked",
258                     G_CALLBACK (on_edit_ok_button_clicked),
259                     NULL);
260 
261   /* Store pointers to all widgets, for use by lookup_widget(). */
262   GLADE_HOOKUP_OBJECT_NO_REF (shellexec_conf_edit_dialog, shellexec_conf_edit_dialog, "shellexec_conf_edit_dialog");
263   GLADE_HOOKUP_OBJECT_NO_REF (shellexec_conf_edit_dialog, dialog_vbox1, "dialog_vbox1");
264   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, table1, "table1");
265   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, title_label, "title_label");
266   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, cmd_label, "cmd_label");
267   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, cmd_entry, "cmd_entry");
268   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, name_label, "name_label");
269   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, title_entry, "title_entry");
270   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, name_entry, "name_entry");
271   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, single_check, "single_check");
272   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, multiple_check, "multiple_check");
273   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, local_check, "local_check");
274   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, remote_check, "remote_check");
275   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, common_check, "common_check");
276   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, label1, "label1");
277   GLADE_HOOKUP_OBJECT_NO_REF (shellexec_conf_edit_dialog, dialog_action_area1, "dialog_action_area1");
278   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, edit_cancel_button, "edit_cancel_button");
279   GLADE_HOOKUP_OBJECT (shellexec_conf_edit_dialog, edit_ok_button, "edit_ok_button");
280 
281   return shellexec_conf_edit_dialog;
282 }
283 
284