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