Pretty colors everywhere!
[terminatorX.git] / src / tX_ui_interface.cc
1 /*
2  * This file is no longer being generated by Glade and contains hand 
3  * crafted code.
4  */
5
6
7 #ifdef HAVE_CONFIG_H
8 #  include <config.h>
9 #endif
10
11 #include <sys/types.h>
12 #include <sys/stat.h>
13 #include <unistd.h>
14 #include <string.h>
15 #include <stdio.h>
16
17 #include <gtk/gtk.h>
18
19 #include "tX_ui_callbacks.h"
20 #include "tX_ui_interface.h"
21 #include "tX_ui_support.h"
22
23 #define TX_UI_HOOKUP_OBJECT(component,widget,name) \
24   g_object_set_data_full (G_OBJECT (component), name, \
25     g_object_ref (widget), (GDestroyNotify) g_object_unref)
26
27 #define TX_UI_HOOKUP_OBJECT_NO_REF(component,widget,name) \
28   g_object_set_data (G_OBJECT (component), name, widget)
29
30 GtkWidget*
31 create_tx_adjust (void)
32 {
33   GtkWidget *tx_adjust;
34   GtkWidget *dialog_vbox2;
35   GtkWidget *vbox1;
36   GtkWidget *label34;
37   GtkWidget *grid7;
38   GtkAdjustment *master_cycles_adj;
39   GtkWidget *master_cycles;
40   GtkWidget *label36;
41   GtkWidget *label35;
42   GtkAdjustment *cycles_adj;
43   GtkWidget *cycles;
44   GtkWidget *create_event;
45   GtkWidget *cancel;
46   GtkWidget *ok;
47   
48   tx_adjust = gtk_dialog_new ();
49   gtk_window_set_title (GTK_WINDOW (tx_adjust), "Compute Pitch");
50
51   dialog_vbox2 = gtk_dialog_get_content_area(GTK_DIALOG (tx_adjust));
52   gtk_widget_show (dialog_vbox2);
53
54   vbox1 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 4);
55   gtk_widget_show (vbox1);
56   gtk_box_pack_start (GTK_BOX (dialog_vbox2), vbox1, TRUE, TRUE, 0);
57   gtk_container_set_border_width (GTK_CONTAINER (vbox1), 4);
58
59   label34 = gtk_label_new ("In order to compute the optimum pitch value, please specify how many loops of this turntable should play as fast as how many loops of the masterturntable:");
60   gtk_widget_show (label34);
61   gtk_box_pack_start (GTK_BOX (vbox1), label34, FALSE, FALSE, 0);
62   gtk_label_set_line_wrap (GTK_LABEL (label34), TRUE);
63
64   grid7 = gtk_grid_new ();
65   gtk_widget_show (grid7);
66   gtk_box_pack_start (GTK_BOX (vbox1), grid7, TRUE, TRUE, 0);
67   gtk_grid_set_column_spacing (GTK_GRID (grid7), 3);
68
69   master_cycles_adj = gtk_adjustment_new (1, 1, 100, 1, 10, 0);
70   master_cycles = gtk_spin_button_new (GTK_ADJUSTMENT (master_cycles_adj), 1, 0);
71   gtk_widget_set_hexpand(master_cycles, TRUE);
72   gtk_widget_show (master_cycles);
73   gtk_grid_attach (GTK_GRID (grid7), master_cycles, 1, 1, 1, 1);
74   gtk_widget_set_tooltip_text(master_cycles, "Specify the number of loops for the master turntable.");
75
76   label36 = gtk_label_new ("Loops of the master turntable:");
77   gtk_widget_show (label36);
78   gtk_grid_attach (GTK_GRID (grid7), label36, 0, 1, 1, 1);
79
80   label35 = gtk_label_new ("Loops of this turntable turntable:");
81   gtk_widget_show (label35);
82   gtk_grid_attach (GTK_GRID (grid7), label35, 0, 0, 1, 1);
83
84   cycles_adj = gtk_adjustment_new (1, 1, 100, 1, 10, 0);
85   cycles = gtk_spin_button_new (GTK_ADJUSTMENT (cycles_adj), 1, 0);
86   gtk_widget_set_hexpand(cycles, TRUE);
87   gtk_widget_show (cycles);
88   gtk_grid_attach (GTK_GRID (grid7), cycles, 1, 0, 1, 1);
89   gtk_widget_set_tooltip_text(cycles, "Specify the number of loops of _this_ turntable.");
90
91   create_event = gtk_check_button_new_with_mnemonic ("Record a sequencer event");
92   gtk_widget_show (create_event);
93   gtk_box_pack_start (GTK_BOX (vbox1), create_event, FALSE, FALSE, 0);
94   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (create_event), TRUE);
95
96
97   cancel = gtk_button_new_with_mnemonic("_Cancel");
98   gtk_widget_show (cancel);
99   gtk_dialog_add_action_widget (GTK_DIALOG (tx_adjust), cancel, GTK_RESPONSE_CANCEL);
100   gtk_widget_set_can_default(cancel, TRUE);
101
102   ok = gtk_button_new_with_mnemonic("_OK");
103   gtk_widget_show (ok);
104   gtk_dialog_add_action_widget (GTK_DIALOG (tx_adjust), ok, GTK_RESPONSE_OK);
105   gtk_widget_set_can_default(ok, TRUE);
106
107   /* Store pointers to all widgets, for use by lookup_widget(). */
108   TX_UI_HOOKUP_OBJECT_NO_REF (tx_adjust, tx_adjust, "tx_adjust");
109   TX_UI_HOOKUP_OBJECT_NO_REF (tx_adjust, dialog_vbox2, "dialog_vbox2");
110   TX_UI_HOOKUP_OBJECT (tx_adjust, vbox1, "vbox1");
111   TX_UI_HOOKUP_OBJECT (tx_adjust, label34, "label34");
112   TX_UI_HOOKUP_OBJECT (tx_adjust, grid7, "grid7");
113   TX_UI_HOOKUP_OBJECT (tx_adjust, master_cycles, "master_cycles");
114   TX_UI_HOOKUP_OBJECT (tx_adjust, label36, "label36");
115   TX_UI_HOOKUP_OBJECT (tx_adjust, label35, "label35");
116   TX_UI_HOOKUP_OBJECT (tx_adjust, cycles, "cycles");
117   TX_UI_HOOKUP_OBJECT (tx_adjust, create_event, "create_event");
118   TX_UI_HOOKUP_OBJECT (tx_adjust, cancel, "cancel");
119   TX_UI_HOOKUP_OBJECT (tx_adjust, ok, "ok");
120
121   return tx_adjust;
122 }
123
124 GtkWidget*
125 create_tx_options (GtkWindow* parent)
126 {
127   GtkWidget *tx_options;
128   GtkWidget *dialog_vbox3;
129   GtkWidget *notebook1;
130   GtkWidget *grid4;
131   GtkWidget *label18;
132   GtkWidget *hbox2;
133   GtkWidget *oss_driver;
134   GSList *oss_driver_group = NULL;
135   GtkWidget *alsa_driver;
136   GtkWidget *jack_driver;
137   GtkWidget *pulse_driver;
138   GtkWidget *use_realtime_label;
139   GtkWidget *use_realtime;
140   GtkWidget *label1;
141   GtkWidget *label21;
142   GtkWidget *label22;
143   GtkWidget *label23;
144   GtkWidget *label24;
145   GtkWidget *oss_audio_device;
146   GtkAdjustment *oss_buffers_adj;
147   GtkWidget *oss_buffers;
148   GtkWidget *oss_buffersize;
149   GtkWidget *oss_samplerate;
150   GtkWidget *label27;
151   GtkWidget *label29;
152   GtkWidget *label30;
153   GtkWidget *alsa_audio_device;
154   GtkWidget *alsa_samplerate;
155   GtkWidget *alsa_period_time;
156   GtkWidget *label32;
157   GtkWidget *alsa_buffer_time;
158   GtkWidget *label39;
159   GtkWidget *alsa_free_hwstats;
160   GtkWidget *pulse_buffer_size;
161   GtkWidget *grid1;
162   GtkWidget *label6;
163   GtkWidget *label7;
164   GtkWidget *mouse_speed;
165   GtkWidget *stop_sense_cycles;
166   GtkWidget *label37;
167   GtkWidget *vtt_inertia;
168   GtkWidget *label4;
169   GtkWidget *grid2;
170   GtkWidget *label8;
171   GtkWidget *label9;
172   GtkWidget *label10;
173   GtkWidget *label11;
174   GtkWidget *mainwin_tooltips;
175   GtkWidget *update_idle;
176   GtkWidget *update_delay;
177   GtkWidget *vumeter_decay;
178
179   GtkWidget *label_override;
180   GtkWidget *label_knob_size;
181   GtkWidget *knob_size;
182   GtkWidget *override_knob_size;
183
184   GtkWidget *label14;
185   GtkWidget *startup_nagbox;
186   GtkWidget *label12;
187   GtkWidget *hbox1;
188   GtkWidget *buttons_text_and_icon;
189   GSList *buttons_text_and_icon_group = NULL;
190   GtkWidget *buttons_icon_only;
191   GtkWidget *buttons_text_only;
192   GtkWidget *label38;
193   GtkAdjustment *filename_length_adj;
194   GtkWidget *filename_length;
195   GtkWidget *label2;
196   GtkWidget *grid8;
197   GtkWidget *label42;
198   GtkWidget *label43;
199   GtkWidget *label44;
200   GtkWidget *label45;
201   GtkWidget *label46;
202   GtkWidget *label47;
203   GtkWidget *wav_display_history;
204   GtkWidget *wav_use_vtt_color;
205   GtkWidget *title_bar_alpha;
206   GtkWidget *wav_display_bg_focus;
207   GtkWidget *wav_display_bg_no_focus;
208   GtkWidget *wav_display_fg_focus;
209   GtkWidget *wav_display_fg_no_focus;
210   GtkWidget *wav_display_cursor;
211   GtkWidget *wav_display_cursor_mute;
212   GtkWidget *label41;
213   GtkWidget *grid9;
214   GtkWidget *label53;
215   GtkWidget *label54;
216   GtkWidget *label55;
217   GtkWidget *label56;
218   GtkWidget *vu_meter_border_intensity;
219   GtkWidget *vu_meter_bg;
220   GtkWidget *vu_meter_normal;
221   GtkWidget *vu_meter_loud;
222   GtkWidget *label52;
223   GtkWidget *grid3;
224   GtkWidget *label13;
225   GtkWidget *soundfile_editor;
226   GtkWidget *label26;
227   GtkWidget *prelisten_enabled;
228   GtkWidget *label31;
229   GtkWidget *ladspa_rdf_path;
230   GtkWidget *label33;
231   GtkWidget *compress_set_files;
232   GtkWidget *label40;
233   GtkWidget *reconnect_enabled;
234   GtkWidget *label57;
235   GtkWidget *quit_confirm;
236   GtkWidget *label58;
237   GtkWidget *label59;
238   GtkWidget *verbose_plugin_loading;
239   GtkWidget *force_nonrt_plugins;
240   GtkWidget *label3;
241   GtkWidget *pref_reset;
242   GtkWidget *pref_cancel;
243   GtkWidget *pref_apply;
244   GtkWidget *pref_ok;
245   
246   tx_options = gtk_dialog_new ();
247   gtk_window_set_transient_for (GTK_WINDOW (tx_options), parent);
248   gtk_window_set_title (GTK_WINDOW (tx_options), "terminatorX Preferences");
249
250   dialog_vbox3 = gtk_dialog_get_content_area(GTK_DIALOG(tx_options));
251   gtk_widget_show (dialog_vbox3);
252
253   notebook1 = gtk_notebook_new ();
254   gtk_widget_show (notebook1);
255   gtk_box_pack_start (GTK_BOX (dialog_vbox3), notebook1, TRUE, TRUE, 0);
256
257   grid4 = gtk_grid_new ();
258   gtk_widget_show (grid4);
259   gtk_container_add (GTK_CONTAINER (notebook1), grid4);
260   gtk_container_set_border_width (GTK_CONTAINER (grid4), 4);
261   gtk_grid_set_row_spacing (GTK_GRID (grid4), 2);
262   gtk_grid_set_column_spacing (GTK_GRID (grid4), 2);
263
264   label18 = gtk_label_new ("Driver:");
265   gtk_widget_show (label18);
266   gtk_grid_attach (GTK_GRID (grid4), label18, 0, 0, 1, 1);
267   gtk_widget_set_halign(label18, GTK_ALIGN_START);
268
269   hbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
270   gtk_widget_show (hbox2);
271   gtk_grid_attach (GTK_GRID (grid4), hbox2, 1, 0, 1, 1);
272   gtk_widget_set_hexpand(hbox2, TRUE);
273   
274   oss_driver = gtk_radio_button_new_with_mnemonic (NULL, "OSS");
275   gtk_widget_show (oss_driver);
276   gtk_box_pack_start (GTK_BOX (hbox2), oss_driver, FALSE, FALSE, 0);
277   gtk_widget_set_tooltip_text(oss_driver, "Use the OSS (Open Sound System) driver for audio output.");
278   gtk_radio_button_set_group (GTK_RADIO_BUTTON (oss_driver), oss_driver_group);
279   oss_driver_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (oss_driver));
280
281   alsa_driver = gtk_radio_button_new_with_mnemonic (NULL, "ALSA");
282   gtk_widget_show (alsa_driver);
283   gtk_box_pack_start (GTK_BOX (hbox2), alsa_driver, FALSE, FALSE, 0);
284   gtk_widget_set_tooltip_text(alsa_driver, "Use the ALSA (Advanced Linux Sound System) driver for audio output.");
285   gtk_radio_button_set_group (GTK_RADIO_BUTTON (alsa_driver), oss_driver_group);
286   oss_driver_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (alsa_driver));
287
288   jack_driver = gtk_radio_button_new_with_mnemonic (NULL, "JACK");
289   gtk_widget_show (jack_driver);
290   gtk_box_pack_start (GTK_BOX (hbox2), jack_driver, FALSE, FALSE, 0);
291   gtk_widget_set_tooltip_text(jack_driver, "Use the JACK (JACK Audio Connection Kit) driver for audio output.");
292   gtk_radio_button_set_group (GTK_RADIO_BUTTON (jack_driver), oss_driver_group);
293   oss_driver_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (jack_driver));
294  
295   pulse_driver = gtk_radio_button_new_with_mnemonic (NULL, "PulseAudio");
296   gtk_widget_show (pulse_driver);
297   gtk_box_pack_start (GTK_BOX (hbox2), pulse_driver, FALSE, FALSE, 0);
298   gtk_widget_set_tooltip_text(pulse_driver, "Use the PULSE (PulseAudio) driver for audio output.");
299   gtk_radio_button_set_group (GTK_RADIO_BUTTON (pulse_driver), oss_driver_group);
300   oss_driver_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (pulse_driver));
301
302   use_realtime_label = gtk_label_new ("Scheduling:");
303   gtk_widget_show (use_realtime_label);
304   gtk_grid_attach (GTK_GRID (grid4), use_realtime_label, 0, 1, 1, 1);
305   gtk_widget_set_halign(use_realtime_label, GTK_ALIGN_START);
306
307   use_realtime = gtk_check_button_new_with_mnemonic ("Use realtime scheduling where available");
308   gtk_widget_show (use_realtime);
309   gtk_grid_attach (GTK_GRID (grid4), use_realtime, 1, 1, 1, 1);
310
311   label1 = gtk_label_new ("Audio");
312   gtk_widget_show (label1);
313   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 0), label1);
314
315   label21 = gtk_label_new ("OSS Audio device:");
316   gtk_widget_show (label21);
317   gtk_grid_attach (GTK_GRID (grid4), label21, 0, 2, 1, 1);
318   gtk_widget_set_halign(label21, GTK_ALIGN_START);
319
320   label22 = gtk_label_new ("OSS No. of buffers:");
321   gtk_widget_show (label22);
322   gtk_grid_attach (GTK_GRID (grid4), label22, 0, 3, 1, 1);
323   gtk_widget_set_halign(label22, GTK_ALIGN_START);
324
325   label23 = gtk_label_new ("OSS Buffersize (2^x):");
326   gtk_widget_show (label23);
327   gtk_grid_attach (GTK_GRID (grid4), label23, 0, 4, 1, 1);
328   gtk_widget_set_halign(label23, GTK_ALIGN_START);
329
330   label24 = gtk_label_new ("OSS Samplerate (Hz):");
331   gtk_widget_show (label24);
332   gtk_grid_attach (GTK_GRID (grid4), label24, 0, 5, 1, 1);
333   gtk_widget_set_halign(label24, GTK_ALIGN_START);
334
335   oss_audio_device = gtk_combo_box_text_new ();
336   gtk_widget_show (oss_audio_device);
337   gtk_grid_attach (GTK_GRID (grid4), oss_audio_device, 1, 2, 1, 1);
338
339   gtk_widget_set_tooltip_text(oss_audio_device, "Select the audiodevice you want terminatorX to send its output to.");
340
341   oss_buffers_adj = gtk_adjustment_new (2, 2, 5, 1, 10, 0);
342   oss_buffers = gtk_spin_button_new (GTK_ADJUSTMENT (oss_buffers_adj), 1, 0);
343   gtk_widget_set_hexpand(oss_buffers, TRUE);
344   gtk_widget_show (oss_buffers);
345   gtk_grid_attach (GTK_GRID (grid4), oss_buffers, 1, 3, 1, 1);
346   gtk_widget_set_tooltip_text(oss_buffers, "Sets the number of kernel level audio buffers. Actually most systems should run just fine with two.");
347
348   oss_buffersize = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (9, 8, 16, 1, 1, 1)));
349   gtk_widget_show (oss_buffersize);
350   gtk_grid_attach (GTK_GRID (grid4), oss_buffersize, 1, 4, 1, 1);
351   gtk_scale_set_value_pos (GTK_SCALE (oss_buffersize), GTK_POS_LEFT);
352   gtk_scale_set_digits (GTK_SCALE (oss_buffersize), 0);
353
354   oss_samplerate = gtk_combo_box_text_new ();
355   gtk_widget_set_hexpand(oss_samplerate, TRUE);
356   gtk_widget_show (oss_samplerate);
357   gtk_grid_attach (GTK_GRID (grid4), oss_samplerate, 1, 5, 1, 1);
358
359   gtk_widget_set_tooltip_text(oss_samplerate, "Select the sampling to use for this audio device - the higher the better quality. Note that not all sampling rates are supported by all audio devices.");
360
361   label27 = gtk_label_new ("ALSA Audio Device:");
362   gtk_widget_show (label27);
363   gtk_grid_attach (GTK_GRID (grid4), label27, 0, 6, 1, 1);
364   gtk_widget_set_halign(label27, GTK_ALIGN_START);
365
366   label29 = gtk_label_new ("ALSA Period Time (ms):");
367   gtk_widget_show (label29);
368   gtk_grid_attach (GTK_GRID (grid4), label29, 0, 8, 1, 1);
369   gtk_widget_set_halign(label29, GTK_ALIGN_START);
370
371   label30 = gtk_label_new ("ALSA Samplerate (Hz):");
372   gtk_widget_show (label30);
373   gtk_grid_attach (GTK_GRID (grid4), label30, 0, 9, 1, 1);
374   gtk_widget_set_halign(label30, GTK_ALIGN_START);
375
376   alsa_audio_device = gtk_combo_box_text_new ();
377   gtk_widget_set_hexpand(alsa_audio_device, TRUE);
378   gtk_widget_show (alsa_audio_device);
379   gtk_grid_attach (GTK_GRID (grid4), alsa_audio_device, 1, 6, 1, 1);
380
381   alsa_samplerate = gtk_combo_box_text_new ();
382   gtk_widget_set_hexpand(alsa_samplerate, TRUE);
383   gtk_widget_show (alsa_samplerate);
384   gtk_grid_attach (GTK_GRID (grid4), alsa_samplerate, 1, 9, 1, 1);
385
386   alsa_period_time = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (29, 10, 500, 1, 10, 10)));
387   gtk_widget_show (alsa_period_time);
388   gtk_grid_attach (GTK_GRID (grid4), alsa_period_time, 1, 8, 1, 1);
389   gtk_scale_set_value_pos (GTK_SCALE (alsa_period_time), GTK_POS_LEFT);
390   gtk_scale_set_digits (GTK_SCALE (alsa_period_time), 0);
391
392   label32 = gtk_label_new ("ALSA Buffer Time (ms):");
393   gtk_widget_show (label32);
394   gtk_grid_attach (GTK_GRID (grid4), label32, 0, 7, 1, 1);
395   gtk_widget_set_halign(label32, GTK_ALIGN_START);
396
397   alsa_buffer_time = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (69, 10, 500, 1, 10, 10)));
398   gtk_widget_show (alsa_buffer_time);
399   gtk_grid_attach (GTK_GRID (grid4), alsa_buffer_time, 1, 7, 1, 1);
400   gtk_scale_set_value_pos (GTK_SCALE (alsa_buffer_time), GTK_POS_LEFT);
401   gtk_scale_set_digits (GTK_SCALE (alsa_buffer_time), 0);
402
403   label39 = gtk_label_new ("ALSA Free HWstats:");
404   gtk_widget_show (label39);
405   gtk_grid_attach (GTK_GRID (grid4), label39, 0, 10, 1, 1);
406   gtk_widget_set_halign(label39, GTK_ALIGN_START);
407
408   alsa_free_hwstats = gtk_check_button_new_with_mnemonic ("Enabled");
409   gtk_widget_show (alsa_free_hwstats);
410   gtk_grid_attach (GTK_GRID (grid4), alsa_free_hwstats, 1, 10, 1, 1);
411   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (alsa_free_hwstats), TRUE);
412
413   GtkWidget *pulselabel = gtk_label_new ("PulseAudio Buffer:");
414   gtk_widget_show(pulselabel);
415   gtk_grid_attach (GTK_GRID (grid4), pulselabel, 0, 11, 1, 1);
416   gtk_widget_set_halign(pulselabel, GTK_ALIGN_START);
417
418   pulse_buffer_size = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (64, 16, 4096, 1, 10, 10)));
419   gtk_widget_show(pulse_buffer_size);
420   gtk_grid_attach (GTK_GRID (grid4), pulse_buffer_size, 1, 11, 1, 1);
421   gtk_scale_set_value_pos (GTK_SCALE (pulse_buffer_size), GTK_POS_LEFT);
422   gtk_scale_set_digits (GTK_SCALE (pulse_buffer_size), 0);
423             
424   grid1 = gtk_grid_new ();
425   gtk_widget_show (grid1);
426   gtk_container_add (GTK_CONTAINER (notebook1), grid1);
427   gtk_container_set_border_width (GTK_CONTAINER (grid1), 4);
428   gtk_grid_set_row_spacing (GTK_GRID (grid1), 2);
429   gtk_grid_set_column_spacing (GTK_GRID (grid1), 2);
430
431   label6 = gtk_label_new ("Mouse speed:");
432   gtk_widget_show (label6);
433   gtk_grid_attach (GTK_GRID (grid1), label6, 0, 1, 1, 1);
434   gtk_widget_set_halign(label6, GTK_ALIGN_START);
435
436   label7 = gtk_label_new ("Stop-sense-cycles:");
437   gtk_widget_show (label7);
438   gtk_grid_attach (GTK_GRID (grid1), label7, 0, 2, 1, 1);
439   gtk_widget_set_halign(label7, GTK_ALIGN_START);
440
441   mouse_speed = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (0, -10, 10, 0.5, 0.1, 0.1)));
442   gtk_widget_show (mouse_speed);
443   gtk_widget_set_hexpand(mouse_speed, TRUE);
444   gtk_grid_attach (GTK_GRID (grid1), mouse_speed, 1, 1, 1, 1);
445   gtk_scale_set_value_pos (GTK_SCALE (mouse_speed), GTK_POS_LEFT);
446
447   stop_sense_cycles = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (80, 30, 250, 5, 1, 1)));
448   gtk_widget_show (stop_sense_cycles);
449   gtk_widget_set_hexpand(stop_sense_cycles, TRUE);
450   gtk_grid_attach (GTK_GRID (grid1), stop_sense_cycles, 1, 2, 1, 1);
451   gtk_scale_set_value_pos (GTK_SCALE (stop_sense_cycles), GTK_POS_LEFT);
452
453   label37 = gtk_label_new ("Turntable inertia:");
454   gtk_widget_show (label37);
455   gtk_grid_attach (GTK_GRID (grid1), label37, 0, 3, 1, 1);
456   gtk_widget_set_halign(label37, GTK_ALIGN_START);
457
458   vtt_inertia = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (11, 1, 310, 0.01, 1, 10)));
459   gtk_widget_show (vtt_inertia);
460   gtk_widget_set_hexpand(vtt_inertia, TRUE);
461   gtk_grid_attach (GTK_GRID (grid1), vtt_inertia, 1, 3, 1, 1);
462   gtk_scale_set_value_pos (GTK_SCALE (vtt_inertia), GTK_POS_LEFT);
463
464   label4 = gtk_label_new ("Input");
465   gtk_widget_show (label4);
466   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 1), label4);
467
468   grid2 = gtk_grid_new ();
469   gtk_widget_show (grid2);
470   gtk_container_add (GTK_CONTAINER (notebook1), grid2);
471   gtk_container_set_border_width (GTK_CONTAINER (grid2), 4);
472   gtk_grid_set_row_spacing (GTK_GRID (grid2), 2);
473   gtk_grid_set_column_spacing (GTK_GRID (grid2), 2);
474
475   label8 = gtk_label_new ("Tooltips:");
476   gtk_widget_show (label8);
477   gtk_grid_attach (GTK_GRID (grid2), label8, 0, 1, 1, 1);
478   gtk_widget_set_halign(label8, GTK_ALIGN_START);
479
480   label9 = gtk_label_new ("Update idle (ms):");
481   gtk_widget_show (label9);
482   gtk_grid_attach (GTK_GRID (grid2), label9, 0, 3, 1, 1);
483   gtk_widget_set_halign(label9, GTK_ALIGN_START);
484
485   label10 = gtk_label_new ("Update delay (cycles):");
486   gtk_widget_show (label10);
487   gtk_grid_attach (GTK_GRID (grid2), label10, 0, 4, 1, 1);
488   gtk_widget_set_halign(label10, GTK_ALIGN_START);
489
490   label11 = gtk_label_new ("VU meter decay:");
491   gtk_widget_show (label11);
492   gtk_grid_attach (GTK_GRID (grid2), label11, 0, 5, 1, 1);
493   gtk_widget_set_halign(label11, GTK_ALIGN_START);
494
495   mainwin_tooltips = gtk_check_button_new_with_mnemonic ("Activate tooltips for the main wnidow");
496   gtk_widget_show (mainwin_tooltips);
497   gtk_grid_attach (GTK_GRID (grid2), mainwin_tooltips, 1, 1, 1, 1);
498   gtk_widget_set_tooltip_text(mainwin_tooltips, "Enable tooltips for the terminatorX main window.");
499
500   update_idle = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (11, 6, 100, 1, 10, 10)));
501   gtk_widget_show (update_idle);
502   gtk_grid_attach (GTK_GRID (grid2), update_idle, 1, 3, 1, 1);
503   gtk_scale_set_value_pos (GTK_SCALE (update_idle), GTK_POS_LEFT);
504   gtk_scale_set_digits (GTK_SCALE (update_idle), 0);
505
506   update_delay = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (0, 0, 15, 1, 10, 10)));
507   gtk_widget_show (update_delay);
508   gtk_grid_attach (GTK_GRID (grid2), update_delay, 1, 4, 1, 1);
509   gtk_scale_set_value_pos (GTK_SCALE (update_delay), GTK_POS_LEFT);
510
511   vumeter_decay = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (0.8, 0.8, 0.99, 0.01, 0.01, 0.001)));
512   gtk_widget_show (vumeter_decay);
513   gtk_grid_attach (GTK_GRID (grid2), vumeter_decay, 1, 5, 1, 1);
514   gtk_scale_set_value_pos (GTK_SCALE (vumeter_decay), GTK_POS_LEFT);
515   gtk_scale_set_digits (GTK_SCALE (vumeter_decay), 2);
516
517   label14 = gtk_label_new ("Nagbox:");
518   gtk_widget_show (label14);
519   gtk_grid_attach (GTK_GRID (grid2), label14, 0, 0, 1, 1);
520   gtk_widget_set_halign(label14, GTK_ALIGN_START);
521
522   startup_nagbox = gtk_check_button_new_with_mnemonic ("Display nagbox on startup");
523   gtk_widget_show (startup_nagbox);
524   gtk_grid_attach (GTK_GRID (grid2), startup_nagbox, 1, 0, 1, 1);
525   gtk_widget_set_tooltip_text(startup_nagbox, "Display nagbox on startup while loading data.");
526
527   label12 = gtk_label_new ("Buttons:");
528   gtk_widget_show (label12);
529   gtk_grid_attach (GTK_GRID (grid2), label12, 0, 2, 1, 1);
530   gtk_widget_set_halign(label12, GTK_ALIGN_START);
531
532   hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
533   gtk_widget_set_hexpand(hbox1, TRUE);
534   gtk_widget_show (hbox1);
535   gtk_grid_attach (GTK_GRID (grid2), hbox1, 1, 2, 1, 1);
536
537   buttons_text_and_icon = gtk_radio_button_new_with_mnemonic (NULL, "Text + Icon");
538   gtk_widget_show (buttons_text_and_icon);
539   gtk_box_pack_start (GTK_BOX (hbox1), buttons_text_and_icon, FALSE, FALSE, 0);
540   gtk_radio_button_set_group (GTK_RADIO_BUTTON (buttons_text_and_icon), buttons_text_and_icon_group);
541   buttons_text_and_icon_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (buttons_text_and_icon));
542
543   buttons_icon_only = gtk_radio_button_new_with_mnemonic (NULL, "Icon Only");
544   gtk_widget_show (buttons_icon_only);
545   gtk_box_pack_start (GTK_BOX (hbox1), buttons_icon_only, FALSE, FALSE, 0);
546   gtk_radio_button_set_group (GTK_RADIO_BUTTON (buttons_icon_only), buttons_text_and_icon_group);
547   buttons_text_and_icon_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (buttons_icon_only));
548
549   buttons_text_only = gtk_radio_button_new_with_mnemonic (NULL, "Text Only");
550   gtk_widget_show (buttons_text_only);
551   gtk_box_pack_start (GTK_BOX (hbox1), buttons_text_only, FALSE, FALSE, 0);
552   gtk_radio_button_set_group (GTK_RADIO_BUTTON (buttons_text_only), buttons_text_and_icon_group);
553   buttons_text_and_icon_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (buttons_text_only));
554
555   label38 = gtk_label_new ("Filename length:");
556   gtk_widget_show (label38);
557   gtk_grid_attach (GTK_GRID (grid2), label38, 0, 6, 1, 1);
558   gtk_widget_set_halign(label38, GTK_ALIGN_START);
559
560   filename_length_adj = gtk_adjustment_new (8, 3, 255, 1, 10, 0);
561   filename_length = gtk_spin_button_new (GTK_ADJUSTMENT (filename_length_adj), 1, 0);
562   gtk_widget_set_hexpand(filename_length, TRUE);
563   gtk_widget_show (filename_length);
564   gtk_grid_attach (GTK_GRID (grid2), filename_length, 1, 6, 1, 1);
565
566         label_override = gtk_label_new ("Knob size:");
567         gtk_widget_show(label_override);
568         gtk_grid_attach(GTK_GRID(grid2), label_override, 0, 7, 1, 1);
569         gtk_widget_set_halign(label_override, GTK_ALIGN_START);
570
571   override_knob_size = gtk_check_button_new_with_mnemonic ("Override automatic adjustment");
572   gtk_widget_show (override_knob_size);
573   gtk_grid_attach (GTK_GRID (grid2), override_knob_size, 1, 7, 1, 1);
574   gtk_widget_set_tooltip_text(override_knob_size, "Only when this option is activated the configured value for knob size will be used. Otherwise the size is adjusted automatically.");
575
576         label_knob_size = gtk_label_new ("Size (override):");
577   gtk_widget_show(label_knob_size);
578   gtk_grid_attach(GTK_GRID(grid2), label_knob_size, 0, 8, 1, 1);
579   gtk_widget_set_halign(label_knob_size, GTK_ALIGN_START);
580   
581   knob_size = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (48, 16, 169, 1, 1, 1)));
582   gtk_widget_show (knob_size);
583   gtk_grid_attach (GTK_GRID (grid2), knob_size, 1, 8, 1, 1);
584   gtk_scale_set_value_pos (GTK_SCALE (knob_size), GTK_POS_LEFT);
585   gtk_scale_set_digits (GTK_SCALE (knob_size), 0);
586
587   label38 = gtk_label_new("Highlight:");
588   gtk_widget_show (label38);
589   gtk_grid_attach (GTK_GRID (grid2), label38, 0, 9, 1, 1);
590   gtk_widget_set_halign(label38, GTK_ALIGN_START);
591
592   wav_display_history = gtk_check_button_new_with_mnemonic ("Highlight recently played back samples");
593   gtk_widget_show (wav_display_history);
594   gtk_grid_attach (GTK_GRID (grid2), wav_display_history, 1, 9, 1, 1);
595   gtk_widget_set_tooltip_text(wav_display_history, "Adds visual history to the turntable cursor or needles.");
596
597   label38 = gtk_label_new("Turntable Titelbar Alpha:");
598   gtk_widget_show (label38);
599   gtk_grid_attach (GTK_GRID (grid2), label38, 0, 10, 1, 1);
600   gtk_widget_set_halign(label38, GTK_ALIGN_START);
601
602   title_bar_alpha = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL, GTK_ADJUSTMENT (gtk_adjustment_new (0.5, 0, 1.0, 0.1, 0.01, 0.01)));
603   gtk_widget_show (title_bar_alpha);
604   gtk_grid_attach (GTK_GRID (grid2), title_bar_alpha, 1, 10, 1, 1);
605   gtk_scale_set_value_pos (GTK_SCALE (title_bar_alpha), GTK_POS_LEFT);
606   gtk_scale_set_digits (GTK_SCALE (title_bar_alpha), 2);
607
608   label2 = gtk_label_new ("User Interface");
609   gtk_widget_show (label2);
610   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 2), label2);
611
612   grid8 = gtk_grid_new ();
613   gtk_widget_show (grid8);
614   gtk_container_add (GTK_CONTAINER (notebook1), grid8);
615   gtk_grid_set_row_spacing (GTK_GRID (grid8), 2);
616   gtk_grid_set_column_spacing (GTK_GRID (grid8), 2);
617
618   label42 = gtk_label_new ("Background (focus):");
619   gtk_widget_show (label42);
620   gtk_grid_attach (GTK_GRID (grid8), label42, 0, 0, 1, 1);
621   gtk_widget_set_halign(label42, GTK_ALIGN_START);
622
623   label43 = gtk_label_new ("Background (no focus):");
624   gtk_widget_show (label43);
625   gtk_grid_attach (GTK_GRID (grid8), label43, 0, 1, 1, 1);
626   gtk_widget_set_halign(label43, GTK_ALIGN_START);
627
628   label44 = gtk_label_new ("Signal (focus):");
629   gtk_widget_show (label44);
630   gtk_grid_attach (GTK_GRID (grid8), label44, 0, 2, 1, 1);
631   gtk_widget_set_halign(label44, GTK_ALIGN_START);
632
633   label45 = gtk_label_new ("Signal (no focus):");
634   gtk_widget_show (label45);
635   gtk_grid_attach (GTK_GRID (grid8), label45, 0, 3, 1, 1);
636   gtk_widget_set_halign(label45, GTK_ALIGN_START);
637
638   label46 = gtk_label_new ("Cursor:");
639   gtk_widget_show (label46);
640   gtk_grid_attach (GTK_GRID (grid8), label46, 0, 4, 1, 1);
641   gtk_widget_set_halign(label46, GTK_ALIGN_START);
642
643   label47 = gtk_label_new ("Cursor (mute):");
644   gtk_widget_show (label47);
645   gtk_grid_attach (GTK_GRID (grid8), label47, 0, 5, 1, 1);
646   gtk_widget_set_halign(label47, GTK_ALIGN_START);
647
648   wav_display_bg_focus = gtk_button_new_with_mnemonic ("button1");
649   gtk_widget_set_hexpand(wav_display_bg_focus , TRUE);
650   gtk_widget_show (wav_display_bg_focus);
651   gtk_grid_attach (GTK_GRID (grid8), wav_display_bg_focus, 1, 0, 1, 1);
652
653   wav_display_bg_no_focus = gtk_button_new_with_mnemonic ("button2");
654   gtk_widget_set_hexpand(wav_display_bg_no_focus , TRUE);
655   gtk_widget_show (wav_display_bg_no_focus);
656   gtk_grid_attach (GTK_GRID (grid8), wav_display_bg_no_focus, 1, 1, 1, 1);
657
658   wav_display_fg_focus = gtk_button_new_with_mnemonic ("button3");
659   gtk_widget_set_hexpand(wav_display_fg_focus , TRUE);
660   gtk_widget_show (wav_display_fg_focus);
661   gtk_grid_attach (GTK_GRID (grid8), wav_display_fg_focus, 1, 2, 1, 1);
662
663   wav_display_fg_no_focus = gtk_button_new_with_mnemonic ("button4");
664   gtk_widget_set_hexpand(wav_display_fg_no_focus , TRUE);
665   gtk_widget_show (wav_display_fg_no_focus);
666   gtk_grid_attach (GTK_GRID (grid8), wav_display_fg_no_focus, 1, 3, 1, 1);
667
668   wav_display_cursor = gtk_button_new_with_mnemonic ("button5");
669   gtk_widget_set_hexpand(wav_display_cursor , TRUE);
670   gtk_widget_show (wav_display_cursor);
671   gtk_grid_attach (GTK_GRID (grid8), wav_display_cursor, 1, 4, 1, 1);
672
673   wav_display_cursor_mute = gtk_button_new_with_mnemonic ("button6");
674   gtk_widget_set_hexpand(wav_display_cursor_mute , TRUE);
675   gtk_widget_show (wav_display_cursor_mute);
676   gtk_grid_attach (GTK_GRID (grid8), wav_display_cursor_mute, 1, 5, 1, 1);
677
678   label38 = gtk_label_new("Turntable color");
679   gtk_widget_show (label38);
680   gtk_grid_attach (GTK_GRID (grid8), label38, 0, 6, 1, 1);
681   gtk_widget_set_halign(label38, GTK_ALIGN_START);
682
683   wav_use_vtt_color = gtk_check_button_new_with_mnemonic ("Use turntable color for audio signal display");
684   gtk_widget_show (wav_use_vtt_color);
685   gtk_grid_attach (GTK_GRID (grid8), wav_use_vtt_color, 1, 6, 1, 1);
686   gtk_widget_set_tooltip_text(wav_use_vtt_color, "Each turntable can have a seprate color.");
687
688   label41 = gtk_label_new ("Audio Colors");
689   gtk_widget_show (label41);
690   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 3), label41);
691
692   grid9 = gtk_grid_new ();
693   gtk_widget_show (grid9);
694   gtk_container_add (GTK_CONTAINER (notebook1), grid9);
695   gtk_container_set_border_width (GTK_CONTAINER (grid9), 4);
696   gtk_grid_set_row_spacing (GTK_GRID (grid9), 2);
697   gtk_grid_set_column_spacing (GTK_GRID (grid9), 2);
698
699   label53 = gtk_label_new ("Background:");
700   gtk_widget_show (label53);
701   gtk_grid_attach (GTK_GRID (grid9), label53, 0, 0, 1, 1);
702   gtk_widget_set_halign(label53, GTK_ALIGN_START);
703
704   label54 = gtk_label_new ("Regular Signal:");
705   gtk_widget_show (label54);
706   gtk_grid_attach (GTK_GRID (grid9), label54, 0, 1, 1, 1);
707   gtk_widget_set_halign(label54, GTK_ALIGN_START);
708
709   label55 = gtk_label_new ("Loud Signal:");
710   gtk_widget_show (label55);
711   gtk_grid_attach (GTK_GRID (grid9), label55, 0, 2, 1, 1);
712   gtk_widget_set_halign(label55, GTK_ALIGN_START);
713
714   label56 = gtk_label_new ("Scale Opacity:");
715   gtk_widget_show (label56);
716   gtk_grid_attach (GTK_GRID (grid9), label56, 0, 3, 1, 1);
717   gtk_widget_set_halign(label56, GTK_ALIGN_START);
718
719   vu_meter_border_intensity = gtk_scale_new (GTK_ORIENTATION_HORIZONTAL,  GTK_ADJUSTMENT (gtk_adjustment_new (0.07, 0, 1, 0.01, 0, 0)));
720   gtk_widget_set_hexpand(vu_meter_border_intensity, TRUE);
721   gtk_widget_show (vu_meter_border_intensity);
722   gtk_grid_attach (GTK_GRID (grid9), vu_meter_border_intensity, 1, 3, 1, 1);
723   gtk_scale_set_value_pos (GTK_SCALE (vu_meter_border_intensity), GTK_POS_LEFT);
724   gtk_scale_set_digits (GTK_SCALE (vu_meter_border_intensity), 2);
725
726   vu_meter_bg = gtk_button_new_with_mnemonic ("button7");
727   gtk_widget_show (vu_meter_bg);
728   gtk_grid_attach (GTK_GRID (grid9), vu_meter_bg, 1, 0, 1, 1);
729
730   vu_meter_normal = gtk_button_new_with_mnemonic ("button8");
731   gtk_widget_show (vu_meter_normal);
732   gtk_grid_attach (GTK_GRID (grid9), vu_meter_normal, 1, 1, 1, 1);
733
734   vu_meter_loud = gtk_button_new_with_mnemonic ("button9");
735   gtk_widget_show (vu_meter_loud);
736   gtk_grid_attach (GTK_GRID (grid9), vu_meter_loud, 1, 2, 1, 1);
737
738   label52 = gtk_label_new ("VU Colors");
739   gtk_widget_show (label52);
740   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 4), label52);
741
742   grid3 = gtk_grid_new ();
743   gtk_widget_show (grid3);
744   gtk_container_add (GTK_CONTAINER (notebook1), grid3);
745   gtk_container_set_border_width (GTK_CONTAINER (grid3), 4);
746   gtk_grid_set_row_spacing (GTK_GRID (grid3), 2);
747   gtk_grid_set_column_spacing (GTK_GRID (grid3), 2);
748
749   label13 = gtk_label_new ("Soundfile editor:");
750   gtk_widget_show (label13);
751   gtk_grid_attach (GTK_GRID (grid3), label13, 0, 0, 1, 1);
752   gtk_widget_set_halign(label13, GTK_ALIGN_START);
753
754   soundfile_editor = gtk_entry_new ();
755   gtk_widget_set_hexpand(soundfile_editor, TRUE);
756   gtk_widget_show (soundfile_editor);
757   gtk_grid_attach (GTK_GRID (grid3), soundfile_editor, 1, 0, 1, 1);
758   gtk_widget_set_tooltip_text(soundfile_editor, "Enter the command to run your favourite soundfile editor. It will be started when you choose \"Edit File\" from the turntable's file menu.");
759
760   label26 = gtk_label_new ("Pre-listen:");
761   gtk_widget_show (label26);
762   gtk_grid_attach (GTK_GRID (grid3), label26, 0, 3, 1, 1);
763   gtk_widget_set_halign(label26, GTK_ALIGN_START);
764
765   prelisten_enabled = gtk_check_button_new_with_mnemonic ("Play audiofiles in file dialogs");
766   gtk_widget_show (prelisten_enabled);
767   gtk_grid_attach (GTK_GRID (grid3), prelisten_enabled, 1, 3, 1, 1);
768   gtk_widget_set_tooltip_text(prelisten_enabled, "When enabled soundfiles will be playedback when selected in a file dialog (before loading them).");
769
770   label31 = gtk_label_new ("LADSPA RDF path:");
771   gtk_widget_show (label31);
772   gtk_grid_attach (GTK_GRID (grid3), label31, 0, 1, 1, 1);
773   gtk_widget_set_halign(label31, GTK_ALIGN_START);
774
775   ladspa_rdf_path = gtk_entry_new ();
776   gtk_widget_show (ladspa_rdf_path);
777   gtk_grid_attach (GTK_GRID (grid3), ladspa_rdf_path, 1, 1, 1, 1);
778
779   label33 = gtk_label_new ("Compression:");
780   gtk_widget_show (label33);
781   gtk_grid_attach (GTK_GRID (grid3), label33, 0, 2, 1, 1);
782   gtk_widget_set_halign(label33, GTK_ALIGN_START);
783
784   compress_set_files = gtk_check_button_new_with_mnemonic ("Compress terminatorX set files");
785   gtk_widget_show (compress_set_files);
786   gtk_grid_attach (GTK_GRID (grid3), compress_set_files, 1, 2, 1, 1);
787
788   label40 = gtk_label_new ("MIDI:");
789   gtk_widget_show (label40);
790   gtk_grid_attach (GTK_GRID (grid3), label40, 0, 4, 1, 1);
791   gtk_widget_set_halign(label40, GTK_ALIGN_START);
792
793   reconnect_enabled = gtk_check_button_new_with_mnemonic ("Restore MIDI connections on startup");
794   gtk_widget_show (reconnect_enabled);
795   gtk_grid_attach (GTK_GRID (grid3), reconnect_enabled, 1, 4, 1, 1);
796   gtk_widget_set_tooltip_text(reconnect_enabled, "When enabled soundfiles will be playedback when selected in a file dialog (before loading them).");
797
798   label57 = gtk_label_new ("Quit:");
799   gtk_widget_show (label57);
800   gtk_grid_attach (GTK_GRID (grid3), label57, 0, 5, 1, 1);
801   gtk_widget_set_halign(label57, GTK_ALIGN_START);
802
803   quit_confirm = gtk_check_button_new_with_mnemonic ("Ask for \"Quit\" confirmation");
804   gtk_widget_show (quit_confirm);
805   gtk_grid_attach (GTK_GRID (grid3), quit_confirm, 1, 5, 1, 1);
806
807   label58 = gtk_label_new ("Plugins:");
808   gtk_widget_show (label58);
809   gtk_grid_attach (GTK_GRID (grid3), label58, 0, 6, 1, 1);
810   gtk_widget_set_halign(label58, GTK_ALIGN_START);
811
812   label59 = gtk_label_new ("");
813   gtk_widget_show (label59);
814   gtk_grid_attach (GTK_GRID (grid3), label59, 0, 7, 1, 1);
815   gtk_widget_set_halign(label59, GTK_ALIGN_START);
816
817   verbose_plugin_loading = gtk_check_button_new_with_mnemonic ("Verbose plugin loading");
818   gtk_widget_show (verbose_plugin_loading);
819   gtk_grid_attach (GTK_GRID (grid3), verbose_plugin_loading, 1, 6, 1, 1);
820
821   force_nonrt_plugins = gtk_check_button_new_with_mnemonic ("Force loading of \"non-RT\" plugins ");
822   gtk_widget_show (force_nonrt_plugins);
823   gtk_grid_attach (GTK_GRID (grid3), force_nonrt_plugins, 1, 7, 1, 1);
824
825   label3 = gtk_label_new ("Misc");
826   gtk_widget_show (label3);
827   gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook1), gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook1), 5), label3);
828
829
830   pref_reset = gtk_button_new_with_mnemonic("_Revert");
831   gtk_widget_show (pref_reset);
832   gtk_dialog_add_action_widget (GTK_DIALOG (tx_options), pref_reset, 0);
833   gtk_widget_set_can_default(pref_reset, TRUE);
834   
835   pref_cancel = gtk_button_new_with_mnemonic("_Cancel");
836   gtk_widget_show (pref_cancel);
837   gtk_dialog_add_action_widget (GTK_DIALOG (tx_options), pref_cancel, GTK_RESPONSE_CANCEL);
838   gtk_widget_set_can_default(pref_cancel, TRUE);
839   
840   pref_apply = gtk_button_new_with_mnemonic("_Apply");
841   gtk_widget_show (pref_apply);
842   gtk_dialog_add_action_widget (GTK_DIALOG (tx_options), pref_apply, GTK_RESPONSE_APPLY);
843   gtk_widget_set_can_default(pref_apply, TRUE);
844
845   pref_ok = gtk_button_new_with_mnemonic("_OK");
846   gtk_widget_show (pref_ok);
847   gtk_dialog_add_action_widget (GTK_DIALOG (tx_options), pref_ok, GTK_RESPONSE_OK);
848   gtk_widget_set_can_default(pref_ok, TRUE);
849   
850   g_signal_connect ((gpointer) tx_options, "destroy",
851                     G_CALLBACK (on_tx_options_destroy),
852                     NULL);
853   g_signal_connect_swapped ((gpointer) alsa_buffer_time, "value_changed",
854                             G_CALLBACK (on_alsa_buffer_time_value_changed),
855                             G_OBJECT (alsa_period_time));
856   g_signal_connect_swapped ((gpointer) wav_display_bg_focus, "clicked",
857                             G_CALLBACK (color_clicked),
858                             G_OBJECT (wav_display_bg_focus));
859   g_signal_connect_swapped ((gpointer) wav_display_bg_no_focus, "clicked",
860                             G_CALLBACK (color_clicked),
861                             G_OBJECT (wav_display_bg_no_focus));
862   g_signal_connect_swapped ((gpointer) wav_display_fg_focus, "clicked",
863                             G_CALLBACK (color_clicked),
864                             G_OBJECT (wav_display_fg_focus));
865   g_signal_connect_swapped ((gpointer) wav_display_fg_no_focus, "clicked",
866                             G_CALLBACK (color_clicked),
867                             G_OBJECT (wav_display_fg_no_focus));
868   g_signal_connect_swapped ((gpointer) wav_display_cursor, "clicked",
869                             G_CALLBACK (color_clicked),
870                             G_OBJECT (wav_display_cursor));
871   g_signal_connect_swapped ((gpointer) wav_display_cursor_mute, "clicked",
872                             G_CALLBACK (color_clicked),
873                             G_OBJECT (wav_display_cursor_mute));
874   g_signal_connect_swapped ((gpointer) vu_meter_bg, "clicked",
875                             G_CALLBACK (color_clicked),
876                             G_OBJECT (vu_meter_bg));
877   g_signal_connect_swapped ((gpointer) vu_meter_normal, "clicked",
878                             G_CALLBACK (color_clicked),
879                             G_OBJECT (vu_meter_normal));
880   g_signal_connect_swapped ((gpointer) vu_meter_loud, "clicked",
881                             G_CALLBACK (color_clicked),
882                             G_OBJECT (vu_meter_loud));
883   g_signal_connect ((gpointer) pref_reset, "clicked",
884                     G_CALLBACK (on_pref_reset_clicked),
885                     NULL);
886   g_signal_connect ((gpointer) pref_cancel, "clicked",
887                     G_CALLBACK (on_pref_cancel_clicked),
888                     NULL);
889   g_signal_connect ((gpointer) pref_apply, "clicked",
890                     G_CALLBACK (on_pref_apply_clicked),
891                     NULL);
892   g_signal_connect ((gpointer) pref_ok, "clicked",
893                     G_CALLBACK (on_pref_ok_clicked),
894                     NULL);
895
896   /* Store pointers to all widgets, for use by lookup_widget(). */
897   TX_UI_HOOKUP_OBJECT_NO_REF (tx_options, tx_options, "tx_options");
898   TX_UI_HOOKUP_OBJECT_NO_REF (tx_options, dialog_vbox3, "dialog_vbox3");
899   TX_UI_HOOKUP_OBJECT (tx_options, notebook1, "notebook1");
900   TX_UI_HOOKUP_OBJECT (tx_options, grid4, "grid4");
901   TX_UI_HOOKUP_OBJECT (tx_options, label18, "label18");
902   TX_UI_HOOKUP_OBJECT (tx_options, hbox2, "hbox2");
903   TX_UI_HOOKUP_OBJECT (tx_options, oss_driver, "oss_driver");
904   TX_UI_HOOKUP_OBJECT (tx_options, alsa_driver, "alsa_driver");
905   TX_UI_HOOKUP_OBJECT (tx_options, jack_driver, "jack_driver");
906   TX_UI_HOOKUP_OBJECT (tx_options, pulse_driver, "pulse_driver");
907   TX_UI_HOOKUP_OBJECT (tx_options, use_realtime_label, "use_realtime_label");
908   TX_UI_HOOKUP_OBJECT (tx_options, use_realtime, "use_realtime");
909   TX_UI_HOOKUP_OBJECT (tx_options, label1, "label1");
910   TX_UI_HOOKUP_OBJECT (tx_options, label21, "label21");
911   TX_UI_HOOKUP_OBJECT (tx_options, label22, "label22");
912   TX_UI_HOOKUP_OBJECT (tx_options, label23, "label23");
913   TX_UI_HOOKUP_OBJECT (tx_options, label24, "label24");
914   TX_UI_HOOKUP_OBJECT (tx_options, oss_audio_device, "oss_audio_device");
915   TX_UI_HOOKUP_OBJECT (tx_options, oss_buffers, "oss_buffers");
916   TX_UI_HOOKUP_OBJECT (tx_options, oss_buffersize, "oss_buffersize");
917   TX_UI_HOOKUP_OBJECT (tx_options, oss_samplerate, "oss_samplerate");
918   TX_UI_HOOKUP_OBJECT (tx_options, label27, "label27");
919   TX_UI_HOOKUP_OBJECT (tx_options, label29, "label29");
920   TX_UI_HOOKUP_OBJECT (tx_options, label30, "label30");
921   TX_UI_HOOKUP_OBJECT (tx_options, alsa_audio_device, "alsa_audio_device");
922   TX_UI_HOOKUP_OBJECT (tx_options, alsa_samplerate, "alsa_samplerate");
923   TX_UI_HOOKUP_OBJECT (tx_options, alsa_period_time, "alsa_period_time");
924   TX_UI_HOOKUP_OBJECT (tx_options, label32, "label32");
925   TX_UI_HOOKUP_OBJECT (tx_options, alsa_buffer_time, "alsa_buffer_time");
926   TX_UI_HOOKUP_OBJECT (tx_options, label39, "label39");
927   TX_UI_HOOKUP_OBJECT (tx_options, alsa_free_hwstats, "alsa_free_hwstats");
928   TX_UI_HOOKUP_OBJECT (tx_options, pulse_buffer_size, "pulse_buffer_size");
929   TX_UI_HOOKUP_OBJECT (tx_options, grid1, "grid1");
930   TX_UI_HOOKUP_OBJECT (tx_options, label6, "label6");
931   TX_UI_HOOKUP_OBJECT (tx_options, label7, "label7");
932   TX_UI_HOOKUP_OBJECT (tx_options, mouse_speed, "mouse_speed");
933   TX_UI_HOOKUP_OBJECT (tx_options, stop_sense_cycles, "stop_sense_cycles");
934   TX_UI_HOOKUP_OBJECT (tx_options, label37, "label37");
935   TX_UI_HOOKUP_OBJECT (tx_options, vtt_inertia, "vtt_inertia");
936   TX_UI_HOOKUP_OBJECT (tx_options, label4, "label4");
937   TX_UI_HOOKUP_OBJECT (tx_options, grid2, "grid2");
938   TX_UI_HOOKUP_OBJECT (tx_options, label8, "label8");
939   TX_UI_HOOKUP_OBJECT (tx_options, label9, "label9");
940   TX_UI_HOOKUP_OBJECT (tx_options, label10, "label10");
941   TX_UI_HOOKUP_OBJECT (tx_options, label11, "label11");
942   TX_UI_HOOKUP_OBJECT (tx_options, mainwin_tooltips, "mainwin_tooltips");
943   TX_UI_HOOKUP_OBJECT (tx_options, update_idle, "update_idle");
944   TX_UI_HOOKUP_OBJECT (tx_options, update_delay, "update_delay");
945   TX_UI_HOOKUP_OBJECT (tx_options, vumeter_decay, "vumeter_decay");
946   TX_UI_HOOKUP_OBJECT (tx_options, label14, "label14");
947   TX_UI_HOOKUP_OBJECT (tx_options, startup_nagbox, "startup_nagbox");
948   TX_UI_HOOKUP_OBJECT (tx_options, label12, "label12");
949   TX_UI_HOOKUP_OBJECT (tx_options, hbox1, "hbox1");
950   TX_UI_HOOKUP_OBJECT (tx_options, buttons_text_and_icon, "buttons_text_and_icon");
951   TX_UI_HOOKUP_OBJECT (tx_options, buttons_icon_only, "buttons_icon_only");
952   TX_UI_HOOKUP_OBJECT (tx_options, buttons_text_only, "buttons_text_only");
953   TX_UI_HOOKUP_OBJECT (tx_options, label38, "label38");
954   TX_UI_HOOKUP_OBJECT (tx_options, filename_length, "filename_length");
955   TX_UI_HOOKUP_OBJECT (tx_options, label2, "label2");
956   TX_UI_HOOKUP_OBJECT (tx_options, grid8, "grid8");
957   TX_UI_HOOKUP_OBJECT (tx_options, label42, "label42");
958   TX_UI_HOOKUP_OBJECT (tx_options, label43, "label43");
959   TX_UI_HOOKUP_OBJECT (tx_options, label44, "label44");
960   TX_UI_HOOKUP_OBJECT (tx_options, label45, "label45");
961   TX_UI_HOOKUP_OBJECT (tx_options, label46, "label46");
962   TX_UI_HOOKUP_OBJECT (tx_options, label47, "label47");
963   TX_UI_HOOKUP_OBJECT (tx_options, wav_display_bg_focus, "wav_display_bg_focus");
964   TX_UI_HOOKUP_OBJECT (tx_options, wav_display_bg_no_focus, "wav_display_bg_no_focus");
965   TX_UI_HOOKUP_OBJECT (tx_options, wav_display_fg_focus, "wav_display_fg_focus");
966   TX_UI_HOOKUP_OBJECT (tx_options, wav_display_fg_no_focus, "wav_display_fg_no_focus");
967   TX_UI_HOOKUP_OBJECT (tx_options, wav_display_cursor, "wav_display_cursor");
968   TX_UI_HOOKUP_OBJECT (tx_options, wav_display_cursor_mute, "wav_display_cursor_mute");
969   TX_UI_HOOKUP_OBJECT (tx_options, label41, "label41");
970   TX_UI_HOOKUP_OBJECT (tx_options, grid9, "grid9");
971   TX_UI_HOOKUP_OBJECT (tx_options, label53, "label53");
972   TX_UI_HOOKUP_OBJECT (tx_options, label54, "label54");
973   TX_UI_HOOKUP_OBJECT (tx_options, label55, "label55");
974   TX_UI_HOOKUP_OBJECT (tx_options, label56, "label56");
975   TX_UI_HOOKUP_OBJECT (tx_options, vu_meter_border_intensity, "vu_meter_border_intensity");
976   TX_UI_HOOKUP_OBJECT (tx_options, vu_meter_bg, "vu_meter_bg");
977   TX_UI_HOOKUP_OBJECT (tx_options, vu_meter_normal, "vu_meter_normal");
978   TX_UI_HOOKUP_OBJECT (tx_options, vu_meter_loud, "vu_meter_loud");
979   TX_UI_HOOKUP_OBJECT (tx_options, label52, "label52");
980   TX_UI_HOOKUP_OBJECT (tx_options, grid3, "grid3");
981   TX_UI_HOOKUP_OBJECT (tx_options, label13, "label13");
982   TX_UI_HOOKUP_OBJECT (tx_options, soundfile_editor, "soundfile_editor");
983   TX_UI_HOOKUP_OBJECT (tx_options, label26, "label26");
984   TX_UI_HOOKUP_OBJECT (tx_options, prelisten_enabled, "prelisten_enabled");
985   TX_UI_HOOKUP_OBJECT (tx_options, label31, "label31");
986   TX_UI_HOOKUP_OBJECT (tx_options, ladspa_rdf_path, "ladspa_rdf_path");
987   TX_UI_HOOKUP_OBJECT (tx_options, label33, "label33");
988   TX_UI_HOOKUP_OBJECT (tx_options, compress_set_files, "compress_set_files");
989   TX_UI_HOOKUP_OBJECT (tx_options, label40, "label40");
990   TX_UI_HOOKUP_OBJECT (tx_options, reconnect_enabled, "reconnect_enabled");
991   TX_UI_HOOKUP_OBJECT (tx_options, label57, "label57");
992   TX_UI_HOOKUP_OBJECT (tx_options, quit_confirm, "quit_confirm");
993   TX_UI_HOOKUP_OBJECT (tx_options, label58, "label58");
994   TX_UI_HOOKUP_OBJECT (tx_options, label59, "label59");
995   TX_UI_HOOKUP_OBJECT (tx_options, verbose_plugin_loading, "verbose_plugin_loading");
996   TX_UI_HOOKUP_OBJECT (tx_options, force_nonrt_plugins, "force_nonrt_plugins");
997   TX_UI_HOOKUP_OBJECT (tx_options, label3, "label3");
998   TX_UI_HOOKUP_OBJECT (tx_options, pref_reset, "pref_reset");
999   TX_UI_HOOKUP_OBJECT (tx_options, pref_cancel, "pref_cancel");
1000   TX_UI_HOOKUP_OBJECT (tx_options, pref_apply, "pref_apply");
1001   TX_UI_HOOKUP_OBJECT (tx_options, pref_ok, "pref_ok");
1002   TX_UI_HOOKUP_OBJECT (tx_options, label_override, "label_override");
1003   TX_UI_HOOKUP_OBJECT (tx_options, label_knob_size, "label_knob_size");
1004   TX_UI_HOOKUP_OBJECT (tx_options, knob_size, "knob_size");
1005   TX_UI_HOOKUP_OBJECT (tx_options, override_knob_size, "override_knob_size");
1006   TX_UI_HOOKUP_OBJECT (tx_options, wav_display_history, "wav_display_history");
1007   TX_UI_HOOKUP_OBJECT (tx_options, title_bar_alpha, "title_bar_alpha");
1008   TX_UI_HOOKUP_OBJECT (tx_options, wav_use_vtt_color, "wav_use_vtt_color");
1009
1010   return tx_options;
1011 }
1012
1013 GtkWidget*
1014 create_tx_del_mode (void)
1015 {
1016   GtkWidget *tx_del_mode;
1017   GtkWidget *dialog_vbox4;
1018   GtkWidget *vbox2;
1019   GtkWidget *delmode_label;
1020   GtkWidget *hbox3;
1021   GtkWidget *vbox3;
1022   GtkWidget *all_events;
1023   GSList *all_events_group = NULL;
1024   GtkWidget *upto_current;
1025   GtkWidget *from_current;
1026   GtkWidget *cancelbutton1;
1027   GtkWidget *okbutton1;
1028
1029   tx_del_mode = gtk_dialog_new ();
1030   gtk_window_set_title (GTK_WINDOW (tx_del_mode), "Choose Events to Delete");
1031
1032   dialog_vbox4 = gtk_dialog_get_content_area(GTK_DIALOG (tx_del_mode));
1033   gtk_widget_show (dialog_vbox4);
1034
1035   vbox2 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 2);
1036   gtk_widget_show (vbox2);
1037   gtk_box_pack_start (GTK_BOX (dialog_vbox4), vbox2, TRUE, TRUE, 0);
1038   gtk_container_set_border_width (GTK_CONTAINER (vbox2), 4);
1039
1040   delmode_label = gtk_label_new ("Select which events to delete.");
1041   gtk_widget_show (delmode_label);
1042   gtk_box_pack_start (GTK_BOX (vbox2), delmode_label, TRUE, FALSE, 0);
1043
1044   hbox3 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
1045   gtk_widget_show (hbox3);
1046   gtk_box_pack_start (GTK_BOX (vbox2), hbox3, TRUE, FALSE, 0);
1047
1048   vbox3 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
1049   gtk_widget_show (vbox3);
1050   gtk_box_pack_start (GTK_BOX (hbox3), vbox3, TRUE, FALSE, 0);
1051
1052   all_events = gtk_radio_button_new_with_mnemonic (NULL, "Complete song");
1053   gtk_widget_show (all_events);
1054   gtk_box_pack_start (GTK_BOX (vbox3), all_events, FALSE, FALSE, 0);
1055   gtk_radio_button_set_group (GTK_RADIO_BUTTON (all_events), all_events_group);
1056   all_events_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (all_events));
1057
1058   upto_current = gtk_radio_button_new_with_mnemonic (NULL, "Upto the current song position");
1059   gtk_widget_show (upto_current);
1060   gtk_box_pack_start (GTK_BOX (vbox3), upto_current, FALSE, FALSE, 0);
1061   gtk_radio_button_set_group (GTK_RADIO_BUTTON (upto_current), all_events_group);
1062   all_events_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (upto_current));
1063
1064   from_current = gtk_radio_button_new_with_mnemonic (NULL, "From the current song position");
1065   gtk_widget_show (from_current);
1066   gtk_box_pack_start (GTK_BOX (vbox3), from_current, FALSE, FALSE, 0);
1067   gtk_radio_button_set_group (GTK_RADIO_BUTTON (from_current), all_events_group);
1068   all_events_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (from_current));
1069
1070
1071   cancelbutton1 = gtk_button_new_with_mnemonic("_Cancel");
1072   gtk_widget_show (cancelbutton1);
1073   gtk_dialog_add_action_widget (GTK_DIALOG (tx_del_mode), cancelbutton1, GTK_RESPONSE_CANCEL);
1074   gtk_widget_set_can_default(cancelbutton1, TRUE);
1075
1076   okbutton1 = gtk_button_new_with_mnemonic("_OK");
1077   gtk_widget_show (okbutton1);
1078   gtk_dialog_add_action_widget (GTK_DIALOG (tx_del_mode), okbutton1, GTK_RESPONSE_OK);
1079   gtk_widget_set_can_default(okbutton1, TRUE);
1080
1081   g_signal_connect ((gpointer) cancelbutton1, "clicked",
1082                     G_CALLBACK (on_del_mode_cancel_clicked),
1083                     NULL);
1084   g_signal_connect ((gpointer) okbutton1, "clicked",
1085                     G_CALLBACK (on_del_mode_ok_clicked),
1086                     NULL);
1087
1088   /* Store pointers to all widgets, for use by lookup_widget(). */
1089   TX_UI_HOOKUP_OBJECT_NO_REF (tx_del_mode, tx_del_mode, "tx_del_mode");
1090   TX_UI_HOOKUP_OBJECT_NO_REF (tx_del_mode, dialog_vbox4, "dialog_vbox4");
1091   TX_UI_HOOKUP_OBJECT (tx_del_mode, vbox2, "vbox2");
1092   TX_UI_HOOKUP_OBJECT (tx_del_mode, delmode_label, "delmode_label");
1093   TX_UI_HOOKUP_OBJECT (tx_del_mode, hbox3, "hbox3");
1094   TX_UI_HOOKUP_OBJECT (tx_del_mode, vbox3, "vbox3");
1095   TX_UI_HOOKUP_OBJECT (tx_del_mode, all_events, "all_events");
1096   TX_UI_HOOKUP_OBJECT (tx_del_mode, upto_current, "upto_current");
1097   TX_UI_HOOKUP_OBJECT (tx_del_mode, from_current, "from_current");
1098   TX_UI_HOOKUP_OBJECT (tx_del_mode, cancelbutton1, "cancelbutton1");
1099   TX_UI_HOOKUP_OBJECT (tx_del_mode, okbutton1, "okbutton1");
1100
1101   return tx_del_mode;
1102 }
1103
1104 GtkWidget*
1105 create_tX_midilearn (void)
1106 {
1107   GtkWidget *tX_midilearn;
1108   GtkWidget *dialog_vbox5;
1109   GtkWidget *vbox4;
1110   GtkWidget *midilabel;
1111   GtkWidget *cancel;
1112
1113   tX_midilearn = gtk_dialog_new ();
1114   gtk_window_set_title (GTK_WINDOW (tX_midilearn), "MIDI Learn");
1115
1116   dialog_vbox5 = gtk_dialog_get_content_area(GTK_DIALOG (tX_midilearn));
1117   gtk_widget_show (dialog_vbox5);
1118
1119   vbox4 = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
1120   gtk_widget_show (vbox4);
1121   gtk_box_pack_start (GTK_BOX (dialog_vbox5), vbox4, TRUE, TRUE, 0);
1122   gtk_container_set_border_width (GTK_CONTAINER (vbox4), 4);
1123
1124   midilabel = gtk_label_new ("Waiting for MIDI event....");
1125   gtk_widget_show (midilabel);
1126   gtk_box_pack_start (GTK_BOX (vbox4), midilabel, TRUE, TRUE, 0);
1127
1128
1129   cancel = gtk_button_new_with_mnemonic("_Cancel");
1130   gtk_widget_show (cancel);
1131   gtk_dialog_add_action_widget (GTK_DIALOG (tX_midilearn), cancel, GTK_RESPONSE_CANCEL);
1132   gtk_widget_set_can_default(cancel, TRUE);
1133
1134   /* Store pointers to all widgets, for use by lookup_widget(). */
1135   TX_UI_HOOKUP_OBJECT_NO_REF (tX_midilearn, tX_midilearn, "tX_midilearn");
1136   TX_UI_HOOKUP_OBJECT_NO_REF (tX_midilearn, dialog_vbox5, "dialog_vbox5");
1137   TX_UI_HOOKUP_OBJECT (tX_midilearn, vbox4, "vbox4");
1138   TX_UI_HOOKUP_OBJECT (tX_midilearn, midilabel, "midilabel");
1139   TX_UI_HOOKUP_OBJECT (tX_midilearn, cancel, "cancel");
1140
1141   return tX_midilearn;
1142 }
1143
1144 GtkWidget*
1145 create_tX_color_chooser (GtkWidget *parent)
1146 {
1147   GtkWidget *tX_color_chooser;
1148   GValue value = { 0, };
1149   g_value_init(&value, GTK_TYPE_WIDGET);
1150
1151   tX_color_chooser = gtk_color_chooser_dialog_new ("Select Color", GTK_WINDOW(parent));
1152   gtk_window_set_resizable (GTK_WINDOW (tX_color_chooser), FALSE);
1153   
1154   gtk_color_chooser_set_use_alpha(GTK_COLOR_CHOOSER(tX_color_chooser), FALSE);   
1155
1156   g_signal_connect(tX_color_chooser, "response", G_CALLBACK(color_response), NULL);
1157
1158   /* Store pointers to all widgets, for use by lookup_widget(). */
1159   TX_UI_HOOKUP_OBJECT_NO_REF (tX_color_chooser, tX_color_chooser, "tX_color_chooser");
1160   
1161   return tX_color_chooser;
1162 }
1163