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