source: roaraudio/plugins/xmms/gui.c @ 1707:12b960672988

Last change on this file since 1707:12b960672988 was 1121:476f1bd5f496, checked in by phi, 15 years ago

added a small usleep() of 100ms in error case, this improves the stability

File size: 13.3 KB
Line 
1//gui.c:
2
3/*
4 *      Copyright (C) Philipp 'ph3-der-loewe' Schafft - 2008
5 *
6 *  This file is part of the XMMS RoarAudio output plugin a part of RoarAudio,
7 *  a cross-platform sound system for both, home and professional use.
8 *  See README for details.
9 *
10 *  This file is free software; you can redistribute it and/or modify
11 *  it under the terms of the GNU General Public License version 3
12 *  as published by the Free Software Foundation.
13 *
14 *  RoarAudio is distributed in the hope that it will be useful,
15 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
16 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 *  GNU General Public License for more details.
18 *
19 *  You should have received a copy of the GNU General Public License
20 *  along with this software; see the file COPYING.  If not, write to
21 *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
22 *
23 */
24
25#include "all.h"
26
27// ABOUT:
28
29void roar_about(void) {
30 static GtkWidget *dialog;
31
32 if (dialog != NULL)
33  return;
34
35 dialog = xmms_show_message(
36                _("About RoarAudio Plugin"),
37                _("RoarAudio XMMS Plugin..."
38                 ), _("OK"), FALSE, NULL, NULL);
39 gtk_signal_connect(GTK_OBJECT(dialog), "destroy",
40                    GTK_SIGNAL_FUNC(gtk_widget_destroyed),
41                    &dialog);
42}
43
44// CONFIG:
45
46void on_button_ok_enter(GtkButton * button, gpointer user_data) {
47}
48
49void roar_configure(void) {
50  GtkWidget *config_win;
51  GtkWidget *vbox_main;
52  GtkWidget *tabs_main;
53  GtkWidget *frame_server;
54  GtkWidget *alignment_server;
55  GtkWidget *table1;
56  GtkWidget *label_server_type;
57  GtkWidget *label_server_host;
58  GtkWidget *label_server_port;
59  GtkObject *input_server_port_adj;
60  GtkWidget *input_server_port;
61  GtkWidget *input_server_host;
62  GtkWidget *input_server_type;
63  GtkWidget *label_host;
64  GtkWidget *label_server;
65  GtkWidget *frame_proxy;
66  GtkWidget *alignment_proxy;
67  GtkWidget *table2;
68  GtkWidget *label_proxy_type;
69  GtkWidget *label_proxy_addr;
70  GtkWidget *input_proxy_host;
71  GtkWidget *input_proxy_type;
72  GtkWidget *label_frame_proxy;
73  GtkWidget *label_proxy;
74  GtkWidget *vbox_meta;
75  GtkWidget *frame_meta_player;
76  GtkWidget *alignment1;
77  GtkWidget *hbox_meta_player;
78  GtkWidget *label_player_name;
79  GtkWidget *input_meta_player_name;
80  GtkWidget *label_player;
81  GtkWidget *frame_meta_title;
82  GtkWidget *alignment2;
83  GtkWidget *hbox_meta_title;
84  GtkWidget *input_meta_send_title;
85  GtkWidget *input_meta_send_filename;
86  GtkWidget *label_meta_title;
87  GtkWidget *label_meta;
88  GtkWidget *hbox_buttons;
89  GtkWidget *button_ok;
90  GtkWidget *button_cancel;
91
92  config_win = gtk_window_new(GTK_WINDOW_DIALOG);
93  gtk_window_set_title(GTK_WINDOW(config_win), _("RoarAudio Plugin - Configuration"));
94//  gtk_window_set_destroy_with_parent(GTK_WINDOW(config_win), TRUE);
95//  gtk_window_set_icon_name(GTK_WINDOW(config_win), "gtk-preferences");
96
97  gtk_widget_show (config_win);
98
99  vbox_main = gtk_vbox_new (FALSE, 0);
100  gtk_widget_show (vbox_main);
101  gtk_container_add (GTK_CONTAINER (config_win), vbox_main);
102
103  tabs_main = gtk_notebook_new ();
104  gtk_widget_show (tabs_main);
105  gtk_box_pack_start (GTK_BOX (vbox_main), tabs_main, TRUE, TRUE, 0);
106
107  frame_server = gtk_frame_new (NULL);
108  gtk_widget_show (frame_server);
109  gtk_container_add (GTK_CONTAINER (tabs_main), frame_server);
110  gtk_frame_set_shadow_type (GTK_FRAME (frame_server), GTK_SHADOW_NONE);
111
112  alignment_server = gtk_alignment_new (0.5, 0.5, 1, 1);
113  gtk_widget_show (alignment_server);
114  gtk_container_add (GTK_CONTAINER (frame_server), alignment_server);
115//  gtk_alignment_set_padding (GTK_ALIGNMENT (alignment_server), 0, 0, 12, 0);
116
117  table1 = gtk_table_new (3, 2, FALSE);
118  gtk_widget_show (table1);
119  gtk_container_add (GTK_CONTAINER (alignment_server), table1);
120
121  label_server_type = gtk_label_new (_("Server Type:"));
122  gtk_widget_show (label_server_type);
123  gtk_table_attach (GTK_TABLE (table1), label_server_type, 0, 1, 0, 1,
124                    (GtkAttachOptions) (GTK_FILL),
125                    (GtkAttachOptions) (0), 0, 0);
126  gtk_misc_set_alignment (GTK_MISC (label_server_type), 0, 0.5);
127
128  label_server_host = gtk_label_new (_("Host or Path:"));
129  gtk_widget_show (label_server_host);
130  gtk_table_attach (GTK_TABLE (table1), label_server_host, 0, 1, 1, 2,
131                    (GtkAttachOptions) (GTK_FILL),
132                    (GtkAttachOptions) (0), 0, 0);
133  gtk_misc_set_alignment (GTK_MISC (label_server_host), 0, 0.5);
134
135  label_server_port = gtk_label_new (_("Port:"));
136  gtk_widget_show (label_server_port);
137  gtk_table_attach (GTK_TABLE (table1), label_server_port, 0, 1, 2, 3,
138                    (GtkAttachOptions) (GTK_FILL),
139                    (GtkAttachOptions) (0), 0, 0);
140  gtk_misc_set_alignment (GTK_MISC (label_server_port), 0, 0.5);
141
142  input_server_port_adj = gtk_adjustment_new (16002, 0, 65535, 1, 10, 10);
143  input_server_port = gtk_spin_button_new (GTK_ADJUSTMENT (input_server_port_adj), 1, 0);
144  gtk_widget_show (input_server_port);
145  gtk_table_attach (GTK_TABLE (table1), input_server_port, 1, 2, 2, 3,
146                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
147                    (GtkAttachOptions) (0), 0, 0);
148
149  input_server_host = gtk_entry_new ();
150  gtk_widget_show (input_server_host);
151  gtk_table_attach (GTK_TABLE (table1), input_server_host, 1, 2, 1, 2,
152                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
153                    (GtkAttachOptions) (0), 0, 0);
154
155/*
156  input_server_type = gtk_combo_box_entry_new_text ();
157  gtk_widget_show (input_server_type);
158  gtk_table_attach (GTK_TABLE (table1), input_server_type, 1, 2, 0, 1,
159                    (GtkAttachOptions) (GTK_FILL),
160                    (GtkAttachOptions) (GTK_FILL), 0, 0);
161  gtk_combo_box_append_text (GTK_COMBO_BOX (input_server_type), _("Local"));
162  gtk_combo_box_append_text (GTK_COMBO_BOX (input_server_type), _("TCP/IP"));
163  gtk_combo_box_append_text (GTK_COMBO_BOX (input_server_type), _("DECnet"));
164  gtk_combo_box_append_text (GTK_COMBO_BOX (input_server_type), _("Fork"));
165*/
166  label_host = gtk_label_new (_("<b>Host:</b>"));
167  gtk_widget_show (label_host);
168//  gtk_frame_set_label_widget (GTK_FRAME (frame_server), label_host);
169//  gtk_label_set_use_markup (GTK_LABEL (label_host), TRUE);
170
171  label_server = gtk_label_new (_("Server & Network"));
172  gtk_widget_show (label_server);
173  gtk_notebook_set_tab_label (GTK_NOTEBOOK (tabs_main), gtk_notebook_get_nth_page (GTK_NOTEBOOK (tabs_main), 0), label_server);
174
175  frame_proxy = gtk_frame_new (NULL);
176  gtk_widget_show (frame_proxy);
177  gtk_container_add (GTK_CONTAINER (tabs_main), frame_proxy);
178  gtk_frame_set_shadow_type (GTK_FRAME (frame_proxy), GTK_SHADOW_NONE);
179
180  alignment_proxy = gtk_alignment_new (0.5, 0.5, 1, 1);
181  gtk_widget_show (alignment_proxy);
182  gtk_container_add (GTK_CONTAINER (frame_proxy), alignment_proxy);
183//  gtk_alignment_set_padding (GTK_ALIGNMENT (alignment_proxy), 0, 0, 12, 0);
184
185  table2 = gtk_table_new (2, 2, FALSE);
186  gtk_widget_show (table2);
187  gtk_container_add (GTK_CONTAINER (alignment_proxy), table2);
188
189  label_proxy_type = gtk_label_new (_("Type:"));
190  gtk_widget_show (label_proxy_type);
191  gtk_table_attach (GTK_TABLE (table2), label_proxy_type, 0, 1, 0, 1,
192                    (GtkAttachOptions) (GTK_FILL),
193                    (GtkAttachOptions) (0), 0, 0);
194  gtk_misc_set_alignment (GTK_MISC (label_proxy_type), 0, 0.5);
195
196  label_proxy_addr = gtk_label_new (_("Proxy Address"));
197  gtk_widget_show (label_proxy_addr);
198  gtk_table_attach (GTK_TABLE (table2), label_proxy_addr, 0, 1, 1, 2,
199                    (GtkAttachOptions) (GTK_FILL),
200                    (GtkAttachOptions) (0), 0, 0);
201  gtk_misc_set_alignment (GTK_MISC (label_proxy_addr), 0, 0.5);
202
203  input_proxy_host = gtk_entry_new ();
204  gtk_widget_show (input_proxy_host);
205  gtk_table_attach (GTK_TABLE (table2), input_proxy_host, 1, 2, 1, 2,
206                    (GtkAttachOptions) (GTK_EXPAND | GTK_FILL),
207                    (GtkAttachOptions) (0), 0, 0);
208
209/*
210  input_proxy_type = gtk_combo_box_entry_new_text ();
211  gtk_widget_show (input_proxy_type);
212  gtk_table_attach (GTK_TABLE (table2), input_proxy_type, 1, 2, 0, 1,
213                    (GtkAttachOptions) (GTK_FILL),
214                    (GtkAttachOptions) (GTK_FILL), 0, 0);
215  gtk_combo_box_append_text (GTK_COMBO_BOX (input_proxy_type), _("None"));
216  gtk_combo_box_append_text (GTK_COMBO_BOX (input_proxy_type), _("SOCKS4"));
217  gtk_combo_box_append_text (GTK_COMBO_BOX (input_proxy_type), _("SOCKS4a"));
218  gtk_combo_box_append_text (GTK_COMBO_BOX (input_proxy_type), _("SOCKS4d"));
219  gtk_combo_box_append_text (GTK_COMBO_BOX (input_proxy_type), _("HTTP Connect"));
220  gtk_combo_box_append_text (GTK_COMBO_BOX (input_proxy_type), _("SSH"));
221*/
222
223  label_frame_proxy = gtk_label_new (_("<b>Proxy</b>"));
224  gtk_widget_show (label_frame_proxy);
225/*
226  gtk_frame_set_label_widget (GTK_FRAME (frame_proxy), label_frame_proxy);
227  gtk_label_set_use_markup (GTK_LABEL (label_frame_proxy), TRUE);
228*/
229
230  label_proxy = gtk_label_new (_("Proxy"));
231  gtk_widget_show (label_proxy);
232  gtk_notebook_set_tab_label (GTK_NOTEBOOK (tabs_main), gtk_notebook_get_nth_page (GTK_NOTEBOOK (tabs_main), 1), label_proxy);
233
234  vbox_meta = gtk_vbox_new (FALSE, 0);
235  gtk_widget_show (vbox_meta);
236  gtk_container_add (GTK_CONTAINER (tabs_main), vbox_meta);
237
238  frame_meta_player = gtk_frame_new (NULL);
239  gtk_widget_show (frame_meta_player);
240  gtk_box_pack_start (GTK_BOX (vbox_meta), frame_meta_player, TRUE, TRUE, 0);
241  gtk_frame_set_shadow_type (GTK_FRAME (frame_meta_player), GTK_SHADOW_NONE);
242
243  alignment1 = gtk_alignment_new (0.5, 0.5, 1, 1);
244  gtk_widget_show (alignment1);
245  gtk_container_add (GTK_CONTAINER (frame_meta_player), alignment1);
246//  gtk_alignment_set_padding (GTK_ALIGNMENT (alignment1), 0, 0, 12, 0);
247
248  hbox_meta_player = gtk_hbox_new (FALSE, 0);
249  gtk_widget_show (hbox_meta_player);
250  gtk_container_add (GTK_CONTAINER (alignment1), hbox_meta_player);
251
252  label_player_name = gtk_label_new (_("Player Name:"));
253  gtk_widget_show (label_player_name);
254  gtk_box_pack_start (GTK_BOX (hbox_meta_player), label_player_name, FALSE, FALSE, 0);
255
256  input_meta_player_name = gtk_entry_new ();
257  gtk_widget_show (input_meta_player_name);
258  gtk_box_pack_start (GTK_BOX (hbox_meta_player), input_meta_player_name, TRUE, TRUE, 0);
259  gtk_entry_set_text (GTK_ENTRY (input_meta_player_name), _("XMMS"));
260
261  label_player = gtk_label_new (_("<b>Player</b>"));
262  gtk_widget_show (label_player);
263/*
264  gtk_frame_set_label_widget (GTK_FRAME (frame_meta_player), label_player);
265  gtk_label_set_use_markup (GTK_LABEL (label_player), TRUE);
266*/
267
268  frame_meta_title = gtk_frame_new (NULL);
269  gtk_widget_show (frame_meta_title);
270  gtk_box_pack_start (GTK_BOX (vbox_meta), frame_meta_title, TRUE, TRUE, 0);
271  gtk_frame_set_shadow_type (GTK_FRAME (frame_meta_title), GTK_SHADOW_NONE);
272
273  alignment2 = gtk_alignment_new (0.5, 0.5, 1, 1);
274  gtk_widget_show (alignment2);
275  gtk_container_add (GTK_CONTAINER (frame_meta_title), alignment2);
276//  gtk_alignment_set_padding (GTK_ALIGNMENT (alignment2), 0, 0, 12, 0);
277
278  hbox_meta_title = gtk_hbox_new (FALSE, 0);
279  gtk_widget_show (hbox_meta_title);
280  gtk_container_add (GTK_CONTAINER (alignment2), hbox_meta_title);
281
282/*
283  input_meta_send_title = gtk_check_button_new_with_mnemonic (_("Send song title to server"));
284  gtk_widget_show (input_meta_send_title);
285  gtk_box_pack_start (GTK_BOX (hbox_meta_title), input_meta_send_title, FALSE, FALSE, 0);
286  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (input_meta_send_title), TRUE);
287
288  input_meta_send_filename = gtk_check_button_new_with_mnemonic (_("Send song filename to server"));
289  gtk_widget_show (input_meta_send_filename);
290  gtk_box_pack_start (GTK_BOX (hbox_meta_title), input_meta_send_filename, FALSE, FALSE, 0);
291  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (input_meta_send_filename), TRUE);
292*/
293
294  label_meta_title = gtk_label_new (_("<b>Current Song</b>"));
295  gtk_widget_show (label_meta_title);
296/*
297  gtk_frame_set_label_widget (GTK_FRAME (frame_meta_title), label_meta_title);
298  gtk_label_set_use_markup (GTK_LABEL (label_meta_title), TRUE);
299*/
300
301  label_meta = gtk_label_new (_("Meta Data"));
302  gtk_widget_show (label_meta);
303  gtk_notebook_set_tab_label (GTK_NOTEBOOK (tabs_main), gtk_notebook_get_nth_page (GTK_NOTEBOOK (tabs_main), 2), label_meta);
304
305  hbox_buttons = gtk_hbox_new (FALSE, 0);
306  gtk_widget_show (hbox_buttons);
307  gtk_box_pack_start (GTK_BOX (vbox_main), hbox_buttons, TRUE, TRUE, 0);
308
309
310  button_ok = gtk_button_new_with_label(_("OK"));
311  gtk_box_pack_start (GTK_BOX (hbox_buttons), button_ok, FALSE, FALSE, 0);
312
313  button_cancel = gtk_button_new_with_label(_("Cancel"));
314  gtk_signal_connect_object(GTK_OBJECT(button_cancel), "clicked",
315                            GTK_SIGNAL_FUNC(gtk_widget_destroy),
316                            GTK_OBJECT(config_win));
317  gtk_box_pack_start (GTK_BOX (hbox_buttons), button_cancel, FALSE, FALSE, 0);
318
319/*
320  button_ok = gtk_button_new_from_stock ("gtk-ok");
321  gtk_widget_show (button_ok);
322  gtk_box_pack_start (GTK_BOX (hbox_buttons), button_ok, FALSE, FALSE, 0);
323
324  button_cancel = gtk_button_new_from_stock ("gtk-cancel");
325  gtk_widget_show (button_cancel);
326  gtk_box_pack_start (GTK_BOX (hbox_buttons), button_cancel, FALSE, FALSE, 0);
327
328  g_signal_connect_swapped ((gpointer) button_ok, "clicked",
329                            G_CALLBACK (on_button_ok_enter),
330                            GTK_OBJECT (config_win));
331  g_signal_connect_swapped ((gpointer) button_cancel, "clicked",
332                            G_CALLBACK (gtk_widget_destroy),
333                            GTK_OBJECT (config_win));
334*/
335}
336
337//ll
Note: See TracBrowser for help on using the repository browser.