233b17838ec1768737ad481d9aa21340e8aaf7a3
[rugen] / src / interface.c
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 gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
25
26 #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \
27 g_object_set_data (G_OBJECT (component), name, widget)
28
29 static
30 GtkWidget *
31 create_buttons_transport(GtkWidget *top, int type)
32 {
33 int i;
34 GtkWidget *hbox;
35 gchar name[32];
36 const static struct
37 {
38 int type;
39 gchar* tooltip;
40 gchar* filename;
41 } buttons[] =
42 {
43 {
44 2,
45 "Beginning of playlist",
46 "stock_media-begin-16.png"
47 },
48 {
49 2,
50 "Start of clip",
51 "stock_media-prev-16.png"
52 },
53 {
54 2,
55 "Rewind",
56 "stock_media-rew-16.png"
57 },
58 {
59 2,
60 "Previous frame",
61 "stock_media-prev-frame-16.png"
62 },
63 {
64 1,
65 "Pause",
66 "stock_media-pause-16.png"
67 },
68 {
69 1,
70 "Play",
71 "stock_media-play-16.png"
72 },
73 {
74 1,
75 "Stop",
76 "stock_media-stop-16.png"
77 },
78 {
79 2,
80 "Next frame",
81 "stock_media-next-frame-16.png"
82 },
83 {
84 2,
85 "Fast forward",
86 "stock_media-fwd-16.png"
87 },
88 {
89 2,
90 "Next clip",
91 "stock_media-next-16.png"
92 },
93 {
94 2,
95 "End of playlist",
96 "stock_media-end-16.png"
97 },
98 {
99 2,
100 "Loop On",
101 "eof-loop-16.png"
102 },
103 {
104 2,
105 "Loop Off",
106 "eof-pause-16.png"
107 },
108 {
109 0,
110 NULL,
111 NULL
112 }
113 };
114
115 hbox = gtk_hbox_new (FALSE, 0);
116 gtk_widget_show (hbox);
117
118
119 for(i = 0; buttons[i].filename; i++)
120 {
121 GtkWidget *transport, *image;
122
123 if ( type != buttons[i].type )
124 continue;
125
126 transport = gtk_button_new ();
127 gtk_widget_show (transport);
128 gtk_box_pack_start (GTK_BOX (hbox), transport, TRUE, FALSE, 0);
129 gtk_widget_set_size_request (transport, 34, 25);
130 GTK_WIDGET_UNSET_FLAGS (transport, GTK_CAN_FOCUS);
131 gtk_button_set_relief (GTK_BUTTON (transport), GTK_RELIEF_NONE);
132 gtk_widget_set_tooltip_text (transport, buttons[i].tooltip);
133
134 image = gtk_image_new_from_pixbuf(create_pixbuf(buttons[i].filename));
135 gtk_widget_show (image);
136 gtk_container_add (GTK_CONTAINER (transport), image);
137
138 snprintf(name, sizeof(name), "transport_%d", i);
139 GLADE_HOOKUP_OBJECT (top, transport, name);
140
141 snprintf(name, sizeof(name), "transport_image_%d", i);
142 GLADE_HOOKUP_OBJECT (top, image, name);
143 };
144
145 snprintf(name, sizeof(name), "buttons_transport_hbox_%d", type);
146 GLADE_HOOKUP_OBJECT (top, hbox, name);
147
148 return hbox;
149 };
150
151 static
152 GtkWidget *
153 create_block_buttons_transport(GtkWidget *top, int type)
154 {
155 gchar name[32];
156 GtkWidget *hbox, *label[2];
157
158 hbox = gtk_hbox_new (FALSE, 0);
159 gtk_widget_show (hbox);
160
161 snprintf(name, sizeof(name), "bbt_label_%da", type);
162 label[0] = gtk_label_new (name);
163 gtk_widget_show (label[0]);
164 gtk_box_pack_start (GTK_BOX (hbox), label[0], TRUE, TRUE, 0);
165 gtk_label_set_justify (GTK_LABEL (label[0]), GTK_JUSTIFY_LEFT);
166 GLADE_HOOKUP_OBJECT (top, label[0], name);
167
168
169 gtk_box_pack_start (GTK_BOX (hbox),
170 create_buttons_transport(top, type),
171 FALSE, TRUE, 0);
172
173 snprintf(name, sizeof(name), "bbt_label_%db", type);
174 label[1] = gtk_label_new (name);
175 gtk_widget_show (label[1]);
176 gtk_box_pack_start (GTK_BOX (hbox), label[1], TRUE, TRUE, 0);
177 gtk_label_set_justify (GTK_LABEL (label[1]), GTK_JUSTIFY_LEFT);
178 GLADE_HOOKUP_OBJECT (top, label[0], name);
179
180 return hbox;
181 };
182
183 GtkWidget*
184 create_gdv1394d (void)
185 {
186 GtkWidget *gdv1394d;
187 GtkWidget *vbox1;
188 // GtkWidget *handlebox2;
189 GtkWidget *hbox27;
190 GtkWidget *vbox9;
191 // GtkWidget *menubar;
192 // GtkWidget *menuitem1;
193 // GtkWidget *menuitem1_menu;
194 // GtkWidget *item_connect;
195 // GtkWidget *item_disconnect;
196 // GtkWidget *separatormenuitem1;
197 // GtkWidget *item_quit;
198 GtkWidget *toolbar1;
199 GtkWidget *tmp_toolbar_icon;
200 GtkWidget *button_connect;
201 GtkWidget *button_disconnect;
202 // GtkWidget *vseparator1;
203 // GtkWidget *button_quit;
204 GtkWidget *hbox;
205 // GtkWidget *toolbar2;
206 GtkWidget *vbox6;
207 GtkWidget *notebook1;
208 GtkWidget *empty_notebook_page;
209 GtkWidget *label40;
210 GtkWidget *vbox_trim;
211 GtkWidget *statusbar;
212
213 gdv1394d = gtk_window_new (GTK_WINDOW_TOPLEVEL);
214 gtk_window_set_title (GTK_WINDOW (gdv1394d), _("Melted Client"));
215 gtk_window_set_default_size (GTK_WINDOW (gdv1394d), 640, 480);
216
217 vbox1 = gtk_vbox_new (FALSE, 0);
218 gtk_widget_show (vbox1);
219 gtk_container_add (GTK_CONTAINER (gdv1394d), vbox1);
220
221 // handlebox2 = gtk_handle_box_new ();
222 // gtk_widget_show (handlebox2);
223 // gtk_box_pack_start (GTK_BOX (vbox1), handlebox2, FALSE, FALSE, 0);
224
225 hbox27 = gtk_hbox_new (FALSE, 0);
226 gtk_widget_show (hbox27);
227 // gtk_container_add (GTK_CONTAINER (handlebox2), hbox27);
228 gtk_box_pack_start (GTK_BOX (vbox1), hbox27, FALSE, FALSE, 0);
229
230 vbox9 = gtk_vbox_new (FALSE, 0);
231 gtk_widget_show (vbox9);
232 gtk_box_pack_start (GTK_BOX (hbox27), vbox9, TRUE, TRUE, 0);
233
234 // menubar = gtk_menu_bar_new ();
235 // gtk_widget_show (menubar);
236 // gtk_box_pack_start (GTK_BOX (vbox9), menubar, TRUE, TRUE, 0);
237
238 // menuitem1 = gtk_menu_item_new_with_mnemonic (_("_File"));
239 // gtk_widget_show (menuitem1);
240 // gtk_container_add (GTK_CONTAINER (menubar), menuitem1);
241
242 // menuitem1_menu = gtk_menu_new ();
243 // gtk_menu_item_set_submenu (GTK_MENU_ITEM (menuitem1), menuitem1_menu);
244
245 // item_connect = gtk_menu_item_new_with_mnemonic (_("_Connect"));
246 // gtk_widget_show (item_connect);
247 // gtk_container_add (GTK_CONTAINER (menuitem1_menu), item_connect);
248
249 // item_disconnect = gtk_menu_item_new_with_mnemonic (_("_Disconnect"));
250 // gtk_widget_show (item_disconnect);
251 // gtk_container_add (GTK_CONTAINER (menuitem1_menu), item_disconnect);
252
253 // separatormenuitem1 = gtk_menu_item_new ();
254 // gtk_widget_show (separatormenuitem1);
255 // gtk_container_add (GTK_CONTAINER (menuitem1_menu), separatormenuitem1);
256 // gtk_widget_set_sensitive (separatormenuitem1, FALSE);
257
258 // item_quit = gtk_menu_item_new_with_mnemonic (_("_Quit"));
259 // gtk_widget_show (item_quit);
260 // gtk_container_add (GTK_CONTAINER (menuitem1_menu), item_quit);
261
262 toolbar1 = gtk_toolbar_new ();
263 gtk_widget_show (toolbar1);
264 gtk_box_pack_start (GTK_BOX (hbox27), toolbar1, TRUE, TRUE, 0);
265 gtk_toolbar_set_style (GTK_TOOLBAR (toolbar1), GTK_TOOLBAR_BOTH_HORIZ);
266
267 tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-connect", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1)));
268 button_connect = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
269 GTK_TOOLBAR_CHILD_TOGGLEBUTTON,
270 NULL,
271 "Connect",
272 _("Connect to a server"), NULL,
273 tmp_toolbar_icon, NULL, NULL);
274 gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE);
275 gtk_widget_show (button_connect);
276
277 tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-disconnect", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1)));
278 button_disconnect = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
279 GTK_TOOLBAR_CHILD_TOGGLEBUTTON,
280 NULL,
281 "Disconnect",
282 _("Disconnect from server"), NULL,
283 tmp_toolbar_icon, NULL, NULL);
284 gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE);
285 gtk_widget_show (button_disconnect);
286
287 gtk_toolbar_append_space (GTK_TOOLBAR (toolbar1));
288
289 // vseparator1 = gtk_vseparator_new ();
290 // gtk_widget_show (vseparator1);
291 // gtk_toolbar_append_widget (GTK_TOOLBAR (toolbar1), vseparator1, NULL, NULL);
292
293 // tmp_toolbar_icon = gtk_image_new_from_stock ("gtk-quit", gtk_toolbar_get_icon_size (GTK_TOOLBAR (toolbar1)));
294 // button_quit = gtk_toolbar_append_element (GTK_TOOLBAR (toolbar1),
295 // GTK_TOOLBAR_CHILD_BUTTON,
296 // NULL,
297 // "",
298 // _("Exit"), NULL,
299 // tmp_toolbar_icon, NULL, NULL);
300 // gtk_label_set_use_underline (GTK_LABEL (((GtkToolbarChild*) (g_list_last (GTK_TOOLBAR (toolbar1)->children)->data))->label), TRUE);
301 // gtk_widget_show (button_quit);
302
303 hbox = gtk_hbox_new (FALSE, 0);
304 gtk_widget_show (hbox);
305 gtk_box_pack_start (GTK_BOX (vbox1), hbox, TRUE, TRUE, 0);
306
307 // toolbar2 = gtk_toolbar_new ();
308 // gtk_widget_show (toolbar2);
309 // gtk_box_pack_start (GTK_BOX (hbox), toolbar2, FALSE, TRUE, 0);
310 // gtk_toolbar_set_style (GTK_TOOLBAR (toolbar2), GTK_TOOLBAR_BOTH);
311 // gtk_toolbar_set_orientation (GTK_TOOLBAR (toolbar2), GTK_ORIENTATION_VERTICAL);
312
313 vbox6 = gtk_vbox_new (FALSE, 0);
314 gtk_widget_show (vbox6);
315 gtk_box_pack_start (GTK_BOX (hbox), vbox6, TRUE, TRUE, 0);
316
317 notebook1 = gtk_notebook_new ();
318 gtk_widget_show (notebook1);
319 gtk_box_pack_start (GTK_BOX (vbox6), notebook1, TRUE, TRUE, 0);
320 GTK_WIDGET_UNSET_FLAGS (notebook1, GTK_CAN_FOCUS);
321 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook1), FALSE);
322 gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook1), GTK_POS_RIGHT);
323 gtk_notebook_popup_enable (GTK_NOTEBOOK (notebook1));
324 gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook1), FALSE);
325
326 empty_notebook_page = gtk_vbox_new (FALSE, 0);
327 gtk_widget_show (empty_notebook_page);
328 gtk_container_add (GTK_CONTAINER (notebook1), empty_notebook_page);
329
330 label40 = gtk_label_new ("label40");
331 gtk_widget_show (label40);
332 gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label40);
333 gtk_label_set_justify (GTK_LABEL (label40), GTK_JUSTIFY_LEFT);
334
335 gtk_box_pack_start (GTK_BOX (vbox6),
336 create_block_buttons_transport(gdv1394d, 1),
337 FALSE, TRUE, 0);
338
339 gtk_box_pack_start (GTK_BOX (vbox6),
340 create_block_buttons_transport(gdv1394d, 2),
341 FALSE, TRUE, 0);
342
343 vbox_trim = gtk_vbox_new (FALSE, 0);
344 gtk_widget_show (vbox_trim);
345 gtk_box_pack_start (GTK_BOX (vbox6), vbox_trim, FALSE, TRUE, 0);
346
347 statusbar = gtk_statusbar_new ();
348 gtk_widget_show (statusbar);
349 gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0);
350
351 /* Store pointers to all widgets, for use by lookup_widget(). */
352 GLADE_HOOKUP_OBJECT_NO_REF (gdv1394d, gdv1394d, "gdv1394d");
353 GLADE_HOOKUP_OBJECT (gdv1394d, vbox1, "vbox1");
354 // GLADE_HOOKUP_OBJECT (gdv1394d, handlebox2, "handlebox2");
355 GLADE_HOOKUP_OBJECT (gdv1394d, hbox27, "hbox27");
356 GLADE_HOOKUP_OBJECT (gdv1394d, vbox9, "vbox9");
357 // GLADE_HOOKUP_OBJECT (gdv1394d, menubar, "menubar");
358 // GLADE_HOOKUP_OBJECT (gdv1394d, menuitem1, "menuitem1");
359 // GLADE_HOOKUP_OBJECT (gdv1394d, menuitem1_menu, "menuitem1_menu");
360 // GLADE_HOOKUP_OBJECT (gdv1394d, item_connect, "item_connect");
361 // GLADE_HOOKUP_OBJECT (gdv1394d, item_disconnect, "item_disconnect");
362 // GLADE_HOOKUP_OBJECT (gdv1394d, separatormenuitem1, "separatormenuitem1");
363 // GLADE_HOOKUP_OBJECT (gdv1394d, item_quit, "item_quit");
364 GLADE_HOOKUP_OBJECT (gdv1394d, toolbar1, "toolbar1");
365 GLADE_HOOKUP_OBJECT (gdv1394d, button_connect, "button_connect");
366 GLADE_HOOKUP_OBJECT (gdv1394d, button_disconnect, "button_disconnect");
367 // GLADE_HOOKUP_OBJECT (gdv1394d, vseparator1, "vseparator1");
368 // GLADE_HOOKUP_OBJECT (gdv1394d, button_quit, "button_quit");
369 GLADE_HOOKUP_OBJECT (gdv1394d, hbox, "hbox");
370 // GLADE_HOOKUP_OBJECT (gdv1394d, toolbar2, "toolbar2");
371 GLADE_HOOKUP_OBJECT (gdv1394d, vbox6, "vbox6");
372 GLADE_HOOKUP_OBJECT (gdv1394d, notebook1, "notebook1");
373 GLADE_HOOKUP_OBJECT (gdv1394d, label40, "label40");
374 GLADE_HOOKUP_OBJECT (gdv1394d, vbox_trim, "vbox_trim");
375 GLADE_HOOKUP_OBJECT (gdv1394d, statusbar, "statusbar");
376
377 return gdv1394d;
378 }
379
380 GtkWidget*
381 create_window_connection (void)
382 {
383 GtkWidget *window_connection;
384 GtkWidget *table2;
385 GtkWidget *label30;
386 GtkWidget *label31;
387 GtkWidget *entry_server;
388 GtkWidget *hbuttonbox4;
389 GtkWidget *button_connect;
390 GtkWidget *alignment2;
391 GtkWidget *hbox8;
392 GtkWidget *image2;
393 GtkWidget *label32;
394 GtkWidget *button_cancel;
395 GtkWidget *alignment3;
396 GtkWidget *hbox9;
397 GtkWidget *image3;
398 GtkWidget *label33;
399 GtkWidget *hbox10;
400 GtkWidget *entry_port;
401 GtkAccelGroup *accel_group;
402
403 accel_group = gtk_accel_group_new ();
404
405 window_connection = gtk_window_new (GTK_WINDOW_TOPLEVEL);
406 gtk_window_set_title (GTK_WINDOW (window_connection), _("Connection"));
407 gtk_window_set_position (GTK_WINDOW (window_connection), GTK_WIN_POS_MOUSE);
408 gtk_window_set_modal (GTK_WINDOW (window_connection), TRUE);
409 gtk_window_set_resizable (GTK_WINDOW (window_connection), FALSE);
410 gtk_container_set_border_width (GTK_CONTAINER (window_connection), 8);
411
412 table2 = gtk_table_new (3, 2, FALSE);
413 gtk_widget_show (table2);
414 gtk_container_add (GTK_CONTAINER (window_connection), table2);
415 gtk_table_set_row_spacings (GTK_TABLE (table2), 8);
416 gtk_table_set_col_spacings (GTK_TABLE (table2), 8);
417
418 label30 = gtk_label_new (_("Server "));
419 gtk_widget_show (label30);
420 gtk_table_attach (GTK_TABLE (table2), label30, 0, 1, 0, 1,
421 (GtkAttachOptions) (GTK_FILL),
422 (GtkAttachOptions) (0), 0, 0);
423 gtk_label_set_justify (GTK_LABEL (label30), GTK_JUSTIFY_LEFT);
424 gtk_misc_set_alignment (GTK_MISC (label30), 0, 0.5);
425
426 label31 = gtk_label_new (_("Port"));
427 gtk_widget_show (label31);
428 gtk_table_attach (GTK_TABLE (table2), label31, 0, 1, 1, 2,
429 (GtkAttachOptions) (GTK_FILL),
430 (GtkAttachOptions) (0), 0, 0);
431 gtk_label_set_justify (GTK_LABEL (label31), GTK_JUSTIFY_LEFT);
432 gtk_misc_set_alignment (GTK_MISC (label31), 0, 0.5);
433
434 entry_server = gtk_entry_new ();
435 gtk_widget_show (entry_server);
436 gtk_table_attach (GTK_TABLE (table2), entry_server, 1, 2, 0, 1,
437 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
438 (GtkAttachOptions) (0), 0, 0);
439 gtk_entry_set_text (GTK_ENTRY (entry_server), _("localhost"));
440
441 hbuttonbox4 = gtk_hbutton_box_new ();
442 gtk_widget_show (hbuttonbox4);
443 gtk_table_attach (GTK_TABLE (table2), hbuttonbox4, 1, 2, 2, 3,
444 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
445 (GtkAttachOptions) (0), 0, 0);
446 gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox4), GTK_BUTTONBOX_SPREAD);
447
448 button_cancel = gtk_button_new ();
449 gtk_widget_show (button_cancel);
450 gtk_container_add (GTK_CONTAINER (hbuttonbox4), button_cancel);
451 GTK_WIDGET_SET_FLAGS (button_cancel, GTK_CAN_DEFAULT);
452 gtk_button_set_relief (GTK_BUTTON (button_cancel), GTK_RELIEF_NONE);
453
454 alignment3 = gtk_alignment_new (0.5, 0.5, 0, 0);
455 gtk_widget_show (alignment3);
456 gtk_container_add (GTK_CONTAINER (button_cancel), alignment3);
457
458 hbox9 = gtk_hbox_new (FALSE, 2);
459 gtk_widget_show (hbox9);
460 gtk_container_add (GTK_CONTAINER (alignment3), hbox9);
461
462 image3 = gtk_image_new_from_stock ("gtk-cancel", GTK_ICON_SIZE_BUTTON);
463 gtk_widget_show (image3);
464 gtk_box_pack_start (GTK_BOX (hbox9), image3, FALSE, FALSE, 0);
465
466 label33 = gtk_label_new_with_mnemonic (_("Cancel"));
467 gtk_widget_show (label33);
468 gtk_box_pack_start (GTK_BOX (hbox9), label33, FALSE, FALSE, 0);
469 gtk_label_set_justify (GTK_LABEL (label33), GTK_JUSTIFY_LEFT);
470
471 button_connect = gtk_button_new ();
472 gtk_widget_show (button_connect);
473 gtk_container_add (GTK_CONTAINER (hbuttonbox4), button_connect);
474 GTK_WIDGET_SET_FLAGS (button_connect, GTK_CAN_DEFAULT);
475 gtk_widget_add_accelerator (button_connect, "clicked", accel_group,
476 GDK_Return, 0,
477 GTK_ACCEL_VISIBLE);
478 gtk_button_set_relief (GTK_BUTTON (button_connect), GTK_RELIEF_NONE);
479
480 alignment2 = gtk_alignment_new (0.5, 0.5, 0, 0);
481 gtk_widget_show (alignment2);
482 gtk_container_add (GTK_CONTAINER (button_connect), alignment2);
483
484 hbox8 = gtk_hbox_new (FALSE, 2);
485 gtk_widget_show (hbox8);
486 gtk_container_add (GTK_CONTAINER (alignment2), hbox8);
487
488 image2 = gtk_image_new_from_stock ("gtk-ok", GTK_ICON_SIZE_BUTTON);
489 gtk_widget_show (image2);
490 gtk_box_pack_start (GTK_BOX (hbox8), image2, FALSE, FALSE, 0);
491
492 label32 = gtk_label_new_with_mnemonic (_("Connect"));
493 gtk_widget_show (label32);
494 gtk_box_pack_start (GTK_BOX (hbox8), label32, FALSE, FALSE, 0);
495 gtk_label_set_justify (GTK_LABEL (label32), GTK_JUSTIFY_LEFT);
496
497 hbox10 = gtk_hbox_new (FALSE, 0);
498 gtk_widget_show (hbox10);
499 gtk_table_attach (GTK_TABLE (table2), hbox10, 1, 2, 1, 2,
500 (GtkAttachOptions) (GTK_FILL),
501 (GtkAttachOptions) (GTK_FILL), 0, 0);
502
503 entry_port = gtk_entry_new ();
504 gtk_widget_show (entry_port);
505 gtk_box_pack_start (GTK_BOX (hbox10), entry_port, FALSE, TRUE, 0);
506 gtk_entry_set_max_length (GTK_ENTRY (entry_port), 5);
507 gtk_entry_set_text (GTK_ENTRY (entry_port), _("5250"));
508 gtk_entry_set_width_chars (GTK_ENTRY (entry_port), 5);
509
510 /* Store pointers to all widgets, for use by lookup_widget(). */
511 GLADE_HOOKUP_OBJECT_NO_REF (window_connection, window_connection, "window_connection");
512 GLADE_HOOKUP_OBJECT (window_connection, table2, "table2");
513 GLADE_HOOKUP_OBJECT (window_connection, label30, "label30");
514 GLADE_HOOKUP_OBJECT (window_connection, label31, "label31");
515 GLADE_HOOKUP_OBJECT (window_connection, entry_server, "entry_server");
516 GLADE_HOOKUP_OBJECT (window_connection, hbuttonbox4, "hbuttonbox4");
517 GLADE_HOOKUP_OBJECT (window_connection, button_connect, "button_connect");
518 GLADE_HOOKUP_OBJECT (window_connection, alignment2, "alignment2");
519 GLADE_HOOKUP_OBJECT (window_connection, hbox8, "hbox8");
520 GLADE_HOOKUP_OBJECT (window_connection, image2, "image2");
521 GLADE_HOOKUP_OBJECT (window_connection, label32, "label32");
522 GLADE_HOOKUP_OBJECT (window_connection, button_cancel, "button_cancel");
523 GLADE_HOOKUP_OBJECT (window_connection, alignment3, "alignment3");
524 GLADE_HOOKUP_OBJECT (window_connection, hbox9, "hbox9");
525 GLADE_HOOKUP_OBJECT (window_connection, image3, "image3");
526 GLADE_HOOKUP_OBJECT (window_connection, label33, "label33");
527 GLADE_HOOKUP_OBJECT (window_connection, hbox10, "hbox10");
528 GLADE_HOOKUP_OBJECT (window_connection, entry_port, "entry_port");
529
530 gtk_widget_grab_default (button_connect);
531 gtk_window_add_accel_group (GTK_WINDOW (window_connection), accel_group);
532
533 return window_connection;
534 }
535
536 static GtkWidget* create_pane_status (GtkWidget* parent, GtkWidget* top)
537 {
538 int i;
539 char buf[32];
540
541 GtkWidget *scrolledwindow;
542 GtkWidget *viewport;
543 GtkWidget *table;
544 GSList *radiobutton_group = NULL;
545
546 // create a scrolled area
547 scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
548 gtk_widget_show (scrolledwindow);
549 if ( parent )
550 gtk_container_add (GTK_CONTAINER (parent), scrolledwindow);
551 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
552 GLADE_HOOKUP_OBJECT (top, scrolledwindow, "scrolledwindow4");
553
554 // create a viewport
555 viewport = gtk_viewport_new (NULL, NULL);
556 gtk_widget_show (viewport);
557 gtk_container_add (GTK_CONTAINER (scrolledwindow), viewport);
558 GLADE_HOOKUP_OBJECT (top, viewport, "viewport1");
559
560 // create a table for displaying radios
561 table = gtk_table_new (32, 1, FALSE);
562 gtk_widget_show (table);
563 gtk_container_add (GTK_CONTAINER (viewport), table);
564 GLADE_HOOKUP_OBJECT (top, table, "table3");
565
566 for (i = 0; i < 16; i++)
567 {
568 GtkWidget *label_unit;
569 GtkWidget *radiobutton;
570
571 // label unit
572 snprintf(buf, sizeof(buf), "%.2d", i);
573 label_unit = gtk_label_new (buf);
574 gtk_table_attach (GTK_TABLE (table), label_unit, 0, 1, i * 2 + 1, i * 2 + 2,
575 (GtkAttachOptions) (GTK_FILL),
576 (GtkAttachOptions) (0), 0, 0);
577 gtk_label_set_justify (GTK_LABEL (label_unit), GTK_JUSTIFY_LEFT);
578 gtk_misc_set_alignment (GTK_MISC (label_unit), 0, 0.5);
579 snprintf(buf, sizeof(buf), "label_unit_%d", i);
580 GLADE_HOOKUP_OBJECT (top, label_unit, buf);
581
582 // radio button
583 radiobutton = gtk_radio_button_new_with_mnemonic (NULL, _("<disconnected>"));
584 gtk_table_attach (GTK_TABLE (table), radiobutton, 0, 1, i * 2, i * 2 + 1,
585 (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
586 (GtkAttachOptions) (0), 0, 0);
587 gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton), radiobutton_group);
588 radiobutton_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton));
589 snprintf(buf, sizeof(buf), "radiobutton_%d", i);
590 GLADE_HOOKUP_OBJECT (top, radiobutton, buf);
591 }
592
593 return scrolledwindow;
594 }
595
596 static
597 GtkWidget*
598 create_playlist_buttons( GtkWidget* parent, GtkWidget* top )
599 {
600 int i;
601 const static struct
602 {
603 gchar* tooltip;
604 gchar* stock;
605 gchar* label;
606 gchar* hookup;
607 } buttons[] =
608 {
609 {
610 "Refresh",
611 "gtk-refresh",
612 "",
613 "button_clips_refresh",
614 },
615 {
616 "Load root folder",
617 "gtk-home",
618 "",
619 "button_clips_home"
620 },
621 {
622 "Move clip up",
623 "gtk-go-up",
624 "",
625 "button_up"
626 },
627 {
628 "Move clip down",
629 "gtk-go-down",
630 "",
631 "button_down"
632 },
633 {
634 "Remove clip",
635 "gtk-delete",
636 "",
637 "button_remove"
638 },
639 {
640 "Remove all but current clip",
641 "gtk-clear",
642 "",
643 "button_clean"
644 },
645 {
646 NULL, NULL, NULL, NULL
647 }
648 };
649
650 GtkWidget *label44, *label45, *hbuttonbox5;
651
652 label44 = gtk_label_new (_(" "));
653 gtk_widget_show (label44);
654 gtk_box_pack_start (GTK_BOX (parent), label44, TRUE, TRUE, 0);
655 gtk_label_set_justify (GTK_LABEL (label44), GTK_JUSTIFY_LEFT);
656
657 for(i = 0; buttons[i].stock; i++)
658 {
659 GtkWidget *button, *alignment, *hbox, *image, *label;
660
661 button = gtk_button_new ();
662 gtk_widget_show (button);
663 gtk_box_pack_start (GTK_BOX (parent), button, FALSE, FALSE, 0);
664 GTK_WIDGET_UNSET_FLAGS (button, GTK_CAN_FOCUS);
665 GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
666 gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
667 gtk_widget_set_tooltip_text (button, buttons[i].tooltip);
668
669 alignment = gtk_alignment_new (0, 0.5, 0, 0);
670 gtk_widget_show (alignment);
671 gtk_container_add (GTK_CONTAINER (button), alignment);
672
673 hbox = gtk_hbox_new (FALSE, 2);
674 gtk_widget_show (hbox);
675 gtk_container_add (GTK_CONTAINER (alignment), hbox);
676
677 image = gtk_image_new_from_stock (buttons[i].stock, GTK_ICON_SIZE_MENU);
678 gtk_widget_show (image);
679 gtk_box_pack_start (GTK_BOX (hbox), image, FALSE, FALSE, 0);
680
681 label = gtk_label_new_with_mnemonic (buttons[i].label);
682 gtk_widget_show (label);
683 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
684 gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
685
686 GLADE_HOOKUP_OBJECT (top, button, buttons[i].hookup);
687 };
688
689 hbuttonbox5 = gtk_hbutton_box_new ();
690 gtk_widget_show (hbuttonbox5);
691 gtk_box_pack_start (GTK_BOX (parent), hbuttonbox5, FALSE, FALSE, 0);
692
693 label45 = gtk_label_new (_(" "));
694 gtk_widget_show (label45);
695 gtk_box_pack_start (GTK_BOX (parent), label45, TRUE, TRUE, 0);
696 gtk_label_set_justify (GTK_LABEL (label45), GTK_JUSTIFY_LEFT);
697
698 return parent;
699 }
700
701 static
702 GtkWidget*
703 create_pane_filedir( GtkWidget* top )
704 {
705 GtkWidget* vpaned;
706 GtkWidget* scrolledwindow[2];
707 GtkWidget* list[2];
708 GtkWidget* label_directory;
709 GtkWidget* vbox;
710
711 /* create vbox for label pack */
712 vbox = gtk_vbox_new (FALSE, 0);
713 gtk_widget_show (vbox);
714
715 /* create a label for dir name */
716 label_directory = gtk_label_new (_("Disconnected"));
717 gtk_widget_show (label_directory);
718 gtk_box_pack_start (GTK_BOX (vbox), label_directory, FALSE, FALSE, 0);
719 gtk_misc_set_alignment (GTK_MISC (label_directory), 0, 0.5);
720 GLADE_HOOKUP_OBJECT (top, label_directory, "label_directory");
721
722 /* create a vertical pane for dirs list and clips list */
723 vpaned = gtk_vpaned_new ();
724 gtk_widget_show (vpaned);
725 gtk_box_pack_start (GTK_BOX (vbox), vpaned, TRUE, TRUE, 0);
726
727 /* create two scrolled window for lists areas */
728 scrolledwindow[0] = gtk_scrolled_window_new (NULL, NULL);
729 gtk_widget_show (scrolledwindow[0]);
730 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow[0]),
731 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
732 scrolledwindow[1] = gtk_scrolled_window_new (NULL, NULL);
733 gtk_widget_show (scrolledwindow[1]);
734 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow[1]),
735 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
736
737 /* pane them */
738 gtk_widget_set_size_request (vpaned, 400 , -1);
739 gtk_paned_pack1 (GTK_PANED (vpaned), scrolledwindow[0], FALSE, FALSE);
740 gtk_widget_set_size_request (scrolledwindow[0], 150, -1);
741 gtk_paned_pack2 (GTK_PANED (vpaned), scrolledwindow[1], TRUE, FALSE);
742 gtk_widget_set_size_request (scrolledwindow[1], 250, -1);
743
744 /* list_dirs */
745 list[0] = gtk_tree_view_new ();
746 gtk_widget_show (list[0]);
747 gtk_container_add (GTK_CONTAINER (scrolledwindow[0]), list[0]);
748 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (list[0]), FALSE);
749 GLADE_HOOKUP_OBJECT (top, list[0], "list_dir");
750
751 /* list_clips */
752 list[1] = gtk_tree_view_new ();
753 gtk_widget_show (list[1]);
754 gtk_container_add (GTK_CONTAINER (scrolledwindow[1]), list[1]);
755 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (list[1]), FALSE);
756 gtk_tree_view_set_enable_search (GTK_TREE_VIEW (list[1]), FALSE);
757 GLADE_HOOKUP_OBJECT (top, list[1], "list_clips");
758
759 gtk_widget_grab_focus (list[0]);
760
761 return vbox;
762 };
763
764 static
765 GtkWidget*
766 create_pane_playlist( GtkWidget* top )
767 {
768 GtkWidget *table;
769 GtkWidget *scrolledwindow;
770 GtkWidget *treeview;
771 GtkWidget *alignment;
772 GtkWidget *hbox;
773
774 table = gtk_table_new (2, 1, FALSE);
775
776 scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
777 gtk_widget_show (scrolledwindow);
778 gtk_table_attach (GTK_TABLE (table), scrolledwindow, 0, 1, 1, 2,
779 (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL),
780 (GtkAttachOptions) (GTK_EXPAND | GTK_SHRINK | GTK_FILL), 0, 0);
781 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow),
782 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
783
784 treeview = gtk_tree_view_new ();
785 gtk_widget_show (treeview);
786 gtk_container_add (GTK_CONTAINER (scrolledwindow), treeview);
787
788 alignment = gtk_alignment_new (0.5, 0.5, 1, 1);
789 gtk_widget_show (alignment);
790 gtk_table_attach (GTK_TABLE (table), alignment, 0, 1, 0, 1,
791 (GtkAttachOptions) (GTK_FILL),
792 (GtkAttachOptions) (GTK_FILL), 0, 0);
793
794 hbox = gtk_hbox_new (FALSE, 0);
795 gtk_widget_show (hbox);
796 gtk_container_add (GTK_CONTAINER (alignment), hbox);
797
798 create_playlist_buttons(hbox, top);
799
800 GLADE_HOOKUP_OBJECT (top, table, "table4");
801 GLADE_HOOKUP_OBJECT (top, scrolledwindow, "scrolledwindow5");
802 GLADE_HOOKUP_OBJECT (top, treeview, "treeview1");
803 GLADE_HOOKUP_OBJECT (top, alignment, "alignment12");
804 GLADE_HOOKUP_OBJECT (top, hbox, "hbox19");
805
806 return table;
807 };
808
809 GtkWidget*
810 create_page_operate (void)
811 {
812 GtkWidget *page_clips;
813 GtkWidget *hpaned1;
814 GtkWidget *hpaned0;
815 GtkWidget *frame1, *frame2;
816
817 page_clips = gtk_window_new (GTK_WINDOW_TOPLEVEL);
818 gtk_window_set_title (GTK_WINDOW (page_clips), _("page_operate"));
819 GLADE_HOOKUP_OBJECT_NO_REF (page_clips, page_clips, "page_operate");
820
821 hpaned0 = gtk_hpaned_new ();
822 gtk_widget_show (hpaned0);
823 gtk_container_add (GTK_CONTAINER (page_clips), hpaned0);
824 GLADE_HOOKUP_OBJECT (page_clips, hpaned0, "hpaned0");
825
826 frame1 = gtk_frame_new ("Playlist");
827 frame2 = gtk_frame_new ("Units");
828 gtk_frame_set_shadow_type (GTK_FRAME (frame1), GTK_SHADOW_IN);
829 gtk_frame_set_shadow_type (GTK_FRAME (frame2), GTK_SHADOW_IN);
830 gtk_widget_show(frame1);
831 GLADE_HOOKUP_OBJECT (page_clips, frame1, "page_clips");
832 gtk_widget_show(frame2);
833 GLADE_HOOKUP_OBJECT (page_clips, frame2, "page_status");
834
835 gtk_widget_set_size_request (hpaned0, 200 , -1);
836 gtk_paned_pack1 (GTK_PANED (hpaned0), frame1, TRUE, FALSE);
837 gtk_widget_set_size_request (frame1, 50, -1);
838 gtk_paned_pack2 (GTK_PANED (hpaned0), frame2, FALSE, FALSE);
839 gtk_widget_set_size_request (frame2, 250, -1);
840
841 create_pane_status (frame2, page_clips);
842
843 hpaned1 = gtk_hpaned_new ();
844 gtk_widget_show (hpaned1);
845 gtk_container_add (GTK_CONTAINER (frame1), hpaned1);
846 gtk_paned_set_position (GTK_PANED (hpaned1), 120);
847
848 gtk_paned_pack1 (GTK_PANED (hpaned1),
849 create_pane_filedir(page_clips),
850 FALSE, TRUE);
851
852 gtk_paned_pack2 (GTK_PANED (hpaned1),
853 create_pane_playlist(page_clips),
854 FALSE, TRUE);
855
856
857
858 /* Store pointers to all widgets, for use by lookup_widget(). */
859 GLADE_HOOKUP_OBJECT (page_clips, hpaned1, "hpaned1");
860
861 return page_clips;
862 }
863
864 GtkWidget*
865 create_page_shell (void)
866 {
867 GtkWidget *page_shell;
868 GtkWidget *vbox4;
869 GtkWidget *hbox6;
870 GtkWidget *label10;
871 GtkWidget *entry_command;
872 GtkWidget *button_command;
873 GtkWidget *alignment7;
874 GtkWidget *hbox14;
875 GtkWidget *image7;
876 GtkWidget *label38;
877 GtkWidget *button_command_clear;
878 GtkWidget *alignment8;
879 GtkWidget *hbox15;
880 GtkWidget *image8;
881 GtkWidget *label39;
882 GtkWidget *scrolledwindow3;
883 GtkWidget *textview_command;
884 GtkWidget *hbuttonbox3;
885
886 page_shell = gtk_window_new (GTK_WINDOW_TOPLEVEL);
887 gtk_window_set_title (GTK_WINDOW (page_shell), _("page_shell"));
888
889 vbox4 = gtk_vbox_new (FALSE, 0);
890 gtk_widget_show (vbox4);
891 gtk_container_add (GTK_CONTAINER (page_shell), vbox4);
892
893 hbox6 = gtk_hbox_new (FALSE, 0);
894 gtk_widget_show (hbox6);
895 gtk_box_pack_start (GTK_BOX (vbox4), hbox6, FALSE, TRUE, 0);
896
897 label10 = gtk_label_new (_("Command "));
898 gtk_widget_show (label10);
899 gtk_box_pack_start (GTK_BOX (hbox6), label10, FALSE, FALSE, 0);
900 gtk_label_set_justify (GTK_LABEL (label10), GTK_JUSTIFY_LEFT);
901
902 entry_command = gtk_entry_new ();
903 gtk_widget_show (entry_command);
904 gtk_box_pack_start (GTK_BOX (hbox6), entry_command, TRUE, TRUE, 0);
905
906 button_command = gtk_button_new ();
907 gtk_widget_show (button_command);
908 gtk_box_pack_start (GTK_BOX (hbox6), button_command, FALSE, FALSE, 0);
909 GTK_WIDGET_SET_FLAGS (button_command, GTK_CAN_DEFAULT);
910 gtk_button_set_relief (GTK_BUTTON (button_command), GTK_RELIEF_NONE);
911
912 alignment7 = gtk_alignment_new (0.5, 0.5, 0, 0);
913 gtk_widget_show (alignment7);
914 gtk_container_add (GTK_CONTAINER (button_command), alignment7);
915
916 hbox14 = gtk_hbox_new (FALSE, 2);
917 gtk_widget_show (hbox14);
918 gtk_container_add (GTK_CONTAINER (alignment7), hbox14);
919
920 image7 = gtk_image_new_from_stock ("gtk-ok", GTK_ICON_SIZE_BUTTON);
921 gtk_widget_show (image7);
922 gtk_box_pack_start (GTK_BOX (hbox14), image7, FALSE, FALSE, 0);
923
924 label38 = gtk_label_new_with_mnemonic (_("_OK"));
925 gtk_widget_show (label38);
926 gtk_box_pack_start (GTK_BOX (hbox14), label38, FALSE, FALSE, 0);
927 gtk_label_set_justify (GTK_LABEL (label38), GTK_JUSTIFY_LEFT);
928
929 button_command_clear = gtk_button_new ();
930 gtk_widget_show (button_command_clear);
931 gtk_box_pack_start (GTK_BOX (hbox6), button_command_clear, FALSE, FALSE, 0);
932 GTK_WIDGET_SET_FLAGS (button_command_clear, GTK_CAN_DEFAULT);
933 gtk_button_set_relief (GTK_BUTTON (button_command_clear), GTK_RELIEF_NONE);
934
935 alignment8 = gtk_alignment_new (0.5, 0.5, 0, 0);
936 gtk_widget_show (alignment8);
937 gtk_container_add (GTK_CONTAINER (button_command_clear), alignment8);
938
939 hbox15 = gtk_hbox_new (FALSE, 2);
940 gtk_widget_show (hbox15);
941 gtk_container_add (GTK_CONTAINER (alignment8), hbox15);
942
943 image8 = gtk_image_new_from_stock ("gtk-delete", GTK_ICON_SIZE_BUTTON);
944 gtk_widget_show (image8);
945 gtk_box_pack_start (GTK_BOX (hbox15), image8, FALSE, FALSE, 0);
946
947 label39 = gtk_label_new_with_mnemonic (_("Clear"));
948 gtk_widget_show (label39);
949 gtk_box_pack_start (GTK_BOX (hbox15), label39, FALSE, FALSE, 0);
950 gtk_label_set_justify (GTK_LABEL (label39), GTK_JUSTIFY_LEFT);
951
952 scrolledwindow3 = gtk_scrolled_window_new (NULL, NULL);
953 gtk_widget_show (scrolledwindow3);
954 gtk_box_pack_start (GTK_BOX (vbox4), scrolledwindow3, TRUE, TRUE, 0);
955 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolledwindow3), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
956
957 textview_command = gtk_text_view_new ();
958 gtk_widget_show (textview_command);
959 gtk_container_add (GTK_CONTAINER (scrolledwindow3), textview_command);
960 GTK_WIDGET_UNSET_FLAGS (textview_command, GTK_CAN_FOCUS);
961 gtk_text_view_set_editable (GTK_TEXT_VIEW (textview_command), FALSE);
962 gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (textview_command), GTK_WRAP_WORD);
963 gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (textview_command), FALSE);
964
965 hbuttonbox3 = gtk_hbutton_box_new ();
966 gtk_widget_show (hbuttonbox3);
967 gtk_box_pack_start (GTK_BOX (vbox4), hbuttonbox3, FALSE, TRUE, 0);
968 gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox3), GTK_BUTTONBOX_SPREAD);
969
970 /* Store pointers to all widgets, for use by lookup_widget(). */
971 GLADE_HOOKUP_OBJECT_NO_REF (page_shell, page_shell, "page_shell");
972 GLADE_HOOKUP_OBJECT (page_shell, vbox4, "vbox4");
973 GLADE_HOOKUP_OBJECT (page_shell, hbox6, "hbox6");
974 GLADE_HOOKUP_OBJECT (page_shell, label10, "label10");
975 GLADE_HOOKUP_OBJECT (page_shell, entry_command, "entry_command");
976 GLADE_HOOKUP_OBJECT (page_shell, button_command, "button_command");
977 GLADE_HOOKUP_OBJECT (page_shell, alignment7, "alignment7");
978 GLADE_HOOKUP_OBJECT (page_shell, hbox14, "hbox14");
979 GLADE_HOOKUP_OBJECT (page_shell, image7, "image7");
980 GLADE_HOOKUP_OBJECT (page_shell, label38, "label38");
981 GLADE_HOOKUP_OBJECT (page_shell, button_command_clear, "button_command_clear");
982 GLADE_HOOKUP_OBJECT (page_shell, alignment8, "alignment8");
983 GLADE_HOOKUP_OBJECT (page_shell, hbox15, "hbox15");
984 GLADE_HOOKUP_OBJECT (page_shell, image8, "image8");
985 GLADE_HOOKUP_OBJECT (page_shell, label39, "label39");
986 GLADE_HOOKUP_OBJECT (page_shell, scrolledwindow3, "scrolledwindow3");
987 GLADE_HOOKUP_OBJECT (page_shell, textview_command, "textview_command");
988 GLADE_HOOKUP_OBJECT (page_shell, hbuttonbox3, "hbuttonbox3");
989
990 gtk_widget_grab_default (button_command);
991 return page_shell;
992 }
993