56
56
#include <xfce-mcs-manager/manager-plugin.h>
57
57
#include <libxfcegui4/libxfcegui4.h>
59
#include "shortcuts_plugin.h"
59
60
#include "plugins/gtk_common/gtk_common.h"
61
#define RCDIR "mcs_settings"
62
#define OLDRCDIR "settings"
63
#define CHANNEL1 "settings"
64
#define RCFILE1 "gtk.xml"
65
#define CHANNEL2 "keyboard"
66
#define RCFILE2 "keyboard.xml"
67
62
#define PLUGIN_NAME "keyboard"
68
#define DEFAULT_THEME "Default"
63
#define DEFAULT_MAP "Default"
204
183
if (new_key_theme != NULL)
206
if (current_key_theme && strcmp (current_key_theme, new_key_theme))
185
if (current_key_map && strcmp (current_key_map, new_key_theme))
208
g_free (current_key_theme);
209
current_key_theme = new_key_theme;
210
mcs_manager_set_string (mcs_plugin->manager, "Gtk/KeyThemeName", CHANNEL1, current_key_theme);
187
g_free (current_key_map);
188
current_key_map = new_key_theme;
189
mcs_manager_set_string (mcs_plugin->manager, "Gtk/KeyThemeName", CHANNEL1, current_key_map);
211
190
mcs_manager_notify (mcs_plugin->manager, CHANNEL1);
212
191
write_options (mcs_plugin);
246
225
gtk_list_store_prepend (GTK_LIST_STORE (model), &iter);
247
226
gtk_list_store_set (GTK_LIST_STORE (model), &iter, THEME_NAME_COLUMN, info->name, -1);
249
if (strcmp (current_key_theme, info->name) == 0)
228
if (strcmp (current_key_map, info->name) == 0)
251
230
GtkTreePath *path = gtk_tree_model_get_path (model, &iter);
252
231
row_ref = gtk_tree_row_reference_new (model, path);
253
232
gtk_tree_path_free (path);
254
current_key_theme_found = TRUE;
233
current_key_map_found = TRUE;
257
236
if (i == MAX_ELEMENTS_BEFORE_SCROLLING)
268
if (!current_key_theme_found)
247
if (!current_key_map_found)
270
249
GtkTreeIter iter;
271
250
GtkTreePath *path;
273
252
gtk_list_store_prepend (GTK_LIST_STORE (model), &iter);
274
gtk_list_store_set (GTK_LIST_STORE (model), &iter, THEME_NAME_COLUMN, current_key_theme, -1);
253
gtk_list_store_set (GTK_LIST_STORE (model), &iter, THEME_NAME_COLUMN, current_key_map, -1);
276
255
path = gtk_tree_model_get_path (model, &iter);
277
256
row_ref = gtk_tree_row_reference_new (model, path);
311
290
if (b_str == NULL)
312
291
b_str = g_strdup ("");
314
if (!strcmp (a_str, DEFAULT_THEME))
293
if (!strcmp (a_str, DEFAULT_MAP))
316
if (!strcmp (b_str, DEFAULT_THEME))
295
if (!strcmp (b_str, DEFAULT_MAP))
319
298
return g_utf8_collate (a_str, b_str);
323
cb_dialog_response (GtkWidget * dialog, gint response_id)
302
cb_dialog_response (GtkWidget* widget, gint response_id, KeyboardMcsDialog* dialog)
304
write_options (dialog->mcs_plugin);
305
if (dialog->theme_modified)
307
shortcuts_plugin_save_theme (dialog);
325
310
if (response_id == GTK_RESPONSE_HELP)
327
312
g_message ("HELP: TBD");
331
316
is_running = FALSE;
332
gtk_widget_destroy (dialog);
317
gtk_widget_destroy (widget);
337
cb_checkrepeat_changed (GtkWidget * dialog, gpointer user_data)
323
cb_checkbutton_repeat_changed (GtkWidget * widget, gpointer user_data)
339
Itf *itf = (Itf *) user_data;
340
McsPlugin *mcs_plugin = itf->mcs_plugin;
325
KeyboardMcsDialog *dialog = (KeyboardMcsDialog *) user_data;
326
McsPlugin *mcs_plugin = dialog->mcs_plugin;
342
repeat_key = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (itf->checkrepeat));
343
gtk_widget_set_sensitive (itf->hscale1, repeat_key);
344
gtk_widget_set_sensitive (itf->hscale2, repeat_key);
328
repeat_key = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->checkbutton_repeat));
329
gtk_widget_set_sensitive (dialog->scale_repeat_rate, repeat_key);
330
gtk_widget_set_sensitive (dialog->scale_repeat_delay, repeat_key);
345
331
set_repeat (ALL, repeat_key ? ON : OFF);
347
333
mcs_manager_set_int (mcs_plugin->manager, "Key/RepeatKey", CHANNEL2, repeat_key ? 1 : 0);
353
cb_repeatdelay_changed (GtkWidget * dialog, gpointer user_data)
339
cb_repeatdelay_changed (GtkWidget * widget, gpointer user_data)
355
Itf *itf = (Itf *) user_data;
356
McsPlugin *mcs_plugin = itf->mcs_plugin;
341
KeyboardMcsDialog *dialog = (KeyboardMcsDialog *) user_data;
342
McsPlugin *mcs_plugin = dialog->mcs_plugin;
358
repeat_rate = (int) gtk_range_get_value (GTK_RANGE (itf->hscale1));
359
repeat_delay = (int) gtk_range_get_value (GTK_RANGE (itf->hscale2));
344
repeat_rate = (int) gtk_range_get_value (GTK_RANGE (dialog->scale_repeat_rate));
345
repeat_delay = (int) gtk_range_get_value (GTK_RANGE (dialog->scale_repeat_delay));
361
347
mcs_manager_set_int (mcs_plugin->manager, "Key/RepeatDelay", CHANNEL2, repeat_delay);
362
348
mcs_manager_set_int (mcs_plugin->manager, "Key/RepeatRate", CHANNEL2, repeat_rate);
377
cb_checkblink_changed (GtkWidget * dialog, gpointer user_data)
363
cb_checkbutton_blink_changed (GtkWidget * widget, gpointer user_data)
379
Itf *itf = (Itf *) user_data;
380
McsPlugin *mcs_plugin = itf->mcs_plugin;
365
KeyboardMcsDialog *dialog = (KeyboardMcsDialog *) user_data;
366
McsPlugin *mcs_plugin = dialog->mcs_plugin;
382
cursor_blink = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (itf->checkblink));
383
gtk_widget_set_sensitive (itf->hscale3, cursor_blink);
368
cursor_blink = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dialog->checkbutton_blink));
369
gtk_widget_set_sensitive (dialog->scale_blink_time, cursor_blink);
385
371
mcs_manager_set_int (mcs_plugin->manager, "Net/CursorBlink", CHANNEL1, cursor_blink ? 1 : 0);
386
372
mcs_manager_notify (mcs_plugin->manager, CHANNEL1);
391
cb_blinktime_changed (GtkWidget * dialog, gpointer user_data)
377
cb_blinktime_changed (GtkWidget * widget, gpointer user_data)
393
Itf *itf = (Itf *) user_data;
394
McsPlugin *mcs_plugin = itf->mcs_plugin;
379
KeyboardMcsDialog *dialog = (KeyboardMcsDialog *) user_data;
380
McsPlugin *mcs_plugin = dialog->mcs_plugin;
396
cursor_blink_time = 2600 - (int) gtk_range_get_value (GTK_RANGE (itf->hscale3));
382
cursor_blink_time = 2600 - (int) gtk_range_get_value (GTK_RANGE (dialog->scale_blink_time));
397
383
mcs_manager_set_int (mcs_plugin->manager, "Net/CursorBlinkTime", CHANNEL1, cursor_blink_time);
398
384
mcs_manager_notify (mcs_plugin->manager, CHANNEL1);
399
385
write_options (mcs_plugin);
403
create_keyboard_dialog (McsPlugin * mcs_plugin)
389
keyboard_plugin_create_dialog (McsPlugin * mcs_plugin)
391
KeyboardMcsDialog *dialog;
407
394
GtkWidget *button;
408
GtkWidget *checkblink;
409
GtkWidget *checkrepeat;
395
GtkWidget *checkbutton_blink;
396
GtkWidget *checkbutton_repeat;
410
397
GtkWidget *dialog_header;
411
398
GtkWidget *dialog_vbox;
412
399
GtkWidget *frame;
413
400
GtkWidget *main_hbox;
418
GtkWidget *keyboard_dialog;
402
GtkWidget *scale_repeat_rate;
403
GtkWidget *scale_repeat_delay;
404
GtkWidget *scale_blink_time;
405
GtkWidget *dialog_keyboard;
419
406
GtkWidget *label;
420
407
GtkWidget *table;
421
408
GtkWidget *theme_swindow;
422
GtkWidget *theme_treeview;
409
GtkWidget *treeview_maps;
423
410
GtkWidget *left_vbox;
425
412
GtkWidget *entry;
413
GtkWidget *shortcuts_widget;
427
dialog = g_new (Itf, 1);
416
dialog = g_new (KeyboardMcsDialog, 1);
429
418
dialog->mcs_plugin = mcs_plugin;
431
dialog->keyboard_dialog = gtk_dialog_new ();
433
gtk_window_set_icon (GTK_WINDOW (dialog->keyboard_dialog), mcs_plugin->icon);
435
gtk_window_set_title (GTK_WINDOW (dialog->keyboard_dialog), _("Keyboard Preferences"));
436
gtk_window_set_default_size (GTK_WINDOW (dialog->keyboard_dialog), 440, 200);
437
gtk_dialog_set_has_separator (GTK_DIALOG (dialog->keyboard_dialog), FALSE);
439
dialog_vbox = GTK_DIALOG (dialog->keyboard_dialog)->vbox;
420
dialog->dialog_keyboard = gtk_dialog_new ();
422
gtk_window_set_icon (GTK_WINDOW (dialog->dialog_keyboard), mcs_plugin->icon);
423
gtk_window_set_title (GTK_WINDOW (dialog->dialog_keyboard), _("Keyboard Preferences"));
424
gtk_window_set_default_size (GTK_WINDOW (dialog->dialog_keyboard), 440, 200);
425
gtk_dialog_set_has_separator (GTK_DIALOG (dialog->dialog_keyboard), FALSE);
427
dialog_vbox = gtk_vbox_new (FALSE, 7);
428
gtk_widget_show (GTK_WIDGET(dialog_vbox));
430
gtk_box_pack_start(GTK_BOX (GTK_DIALOG(dialog->dialog_keyboard)->vbox), GTK_WIDGET(dialog_vbox), TRUE, TRUE, 0);
440
432
gtk_widget_show (dialog_vbox);
442
434
dialog->dialog_header = xfce_create_header (mcs_plugin->icon, _("Keyboard Preferences"));
443
435
gtk_widget_show (dialog->dialog_header);
444
436
gtk_box_pack_start (GTK_BOX (dialog_vbox), dialog->dialog_header, FALSE, TRUE, 0);
438
notebook = gtk_notebook_new ();
439
gtk_widget_show (GTK_WIDGET(notebook));
440
gtk_box_pack_start (GTK_BOX (dialog_vbox), GTK_WIDGET(notebook), TRUE, TRUE, 0);
446
442
main_hbox = gtk_hbox_new (FALSE, 5);
447
443
gtk_widget_show (main_hbox);
448
gtk_box_pack_start (GTK_BOX (dialog_vbox), main_hbox, TRUE, TRUE, 0);
444
gtk_container_add (GTK_CONTAINER (notebook), main_hbox);
449
445
gtk_container_set_border_width (GTK_CONTAINER (main_hbox), 5);
451
447
frame = xfce_framebox_new (_("Keyboard map"), FALSE);
465
461
gtk_box_pack_start (GTK_BOX (hbox), dialog->theme_swindow, TRUE, TRUE, 0);
466
462
gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (dialog->theme_swindow), GTK_SHADOW_IN);
468
dialog->theme_treeview = gtk_tree_view_new ();
469
gtk_widget_show (dialog->theme_treeview);
470
gtk_container_add (GTK_CONTAINER (dialog->theme_swindow), dialog->theme_treeview);
471
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (dialog->theme_treeview), FALSE);
464
dialog->treeview_maps = gtk_tree_view_new ();
465
gtk_widget_show (dialog->treeview_maps);
466
gtk_container_add (GTK_CONTAINER (dialog->theme_swindow), dialog->treeview_maps);
467
gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (dialog->treeview_maps), FALSE);
473
469
left_vbox = gtk_vbox_new (FALSE, 0);
474
470
gtk_widget_show (left_vbox);
482
478
gtk_widget_show (vbox);
483
479
xfce_framebox_add (XFCE_FRAMEBOX (frame), vbox);
485
dialog->checkrepeat = gtk_check_button_new_with_mnemonic (_("Repeat"));
486
gtk_widget_show (dialog->checkrepeat);
487
gtk_box_pack_start (GTK_BOX (vbox), dialog->checkrepeat, FALSE, FALSE, 0);
488
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->checkrepeat), repeat_key);
481
dialog->checkbutton_repeat = gtk_check_button_new_with_mnemonic (_("Repeat"));
482
gtk_widget_show (dialog->checkbutton_repeat);
483
gtk_box_pack_start (GTK_BOX (vbox), dialog->checkbutton_repeat, FALSE, FALSE, 0);
484
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->checkbutton_repeat), repeat_key);
490
486
table = gtk_table_new (4, 3, FALSE);
491
487
gtk_widget_show (table);
533
529
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
534
530
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
536
dialog->hscale1 = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (repeat_rate, 10, 500, 10, 10, 0)));
537
gtk_widget_show (dialog->hscale1);
538
gtk_table_attach (GTK_TABLE (table), dialog->hscale1, 1, 2, 3, 4,
532
dialog->scale_repeat_rate = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (repeat_rate, 10, 500, 10, 10, 0)));
533
gtk_widget_show (dialog->scale_repeat_rate);
534
gtk_table_attach (GTK_TABLE (table), dialog->scale_repeat_rate, 1, 2, 3, 4,
539
535
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 2);
540
gtk_scale_set_draw_value (GTK_SCALE (dialog->hscale1), FALSE);
541
gtk_range_set_update_policy (GTK_RANGE (dialog->hscale1), GTK_UPDATE_DISCONTINUOUS);
542
gtk_widget_set_sensitive (dialog->hscale1, repeat_key);
536
gtk_scale_set_draw_value (GTK_SCALE (dialog->scale_repeat_rate), FALSE);
537
gtk_range_set_update_policy (GTK_RANGE (dialog->scale_repeat_rate), GTK_UPDATE_DISCONTINUOUS);
538
gtk_widget_set_sensitive (dialog->scale_repeat_rate, repeat_key);
544
dialog->hscale2 = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (repeat_delay, 100, 2000, 10, 100, 0)));
545
gtk_widget_show (dialog->hscale2);
546
gtk_table_attach (GTK_TABLE (table), dialog->hscale2, 1, 2, 1, 2,
540
dialog->scale_repeat_delay = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (repeat_delay, 100, 2000, 10, 100, 0)));
541
gtk_widget_show (dialog->scale_repeat_delay);
542
gtk_table_attach (GTK_TABLE (table), dialog->scale_repeat_delay, 1, 2, 1, 2,
547
543
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 2);
548
gtk_scale_set_draw_value (GTK_SCALE (dialog->hscale2), FALSE);
549
gtk_range_set_update_policy (GTK_RANGE (dialog->hscale2), GTK_UPDATE_DISCONTINUOUS);
550
gtk_widget_set_sensitive (dialog->hscale2, repeat_key);
544
gtk_scale_set_draw_value (GTK_SCALE (dialog->scale_repeat_delay), FALSE);
545
gtk_range_set_update_policy (GTK_RANGE (dialog->scale_repeat_delay), GTK_UPDATE_DISCONTINUOUS);
546
gtk_widget_set_sensitive (dialog->scale_repeat_delay, repeat_key);
552
548
frame = xfce_framebox_new (_("Cursor"), TRUE);
553
549
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
558
554
gtk_widget_show (vbox);
559
555
xfce_framebox_add (XFCE_FRAMEBOX (frame), vbox);
561
dialog->checkblink = gtk_check_button_new_with_mnemonic (_("Show blinking"));
562
gtk_widget_show (dialog->checkblink);
563
gtk_box_pack_start (GTK_BOX (vbox), dialog->checkblink, FALSE, FALSE, 0);
564
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->checkblink), cursor_blink);
557
dialog->checkbutton_blink = gtk_check_button_new_with_mnemonic (_("Show blinking"));
558
gtk_widget_show (dialog->checkbutton_blink);
559
gtk_box_pack_start (GTK_BOX (vbox), dialog->checkbutton_blink, FALSE, FALSE, 0);
560
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (dialog->checkbutton_blink), cursor_blink);
566
562
table = gtk_table_new (2, 3, FALSE);
567
563
gtk_widget_show (table);
588
584
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
589
585
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
591
dialog->hscale3 = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (CLAMP (2600 - cursor_blink_time, 100, 2500),
587
dialog->scale_blink_time = gtk_hscale_new (GTK_ADJUSTMENT (gtk_adjustment_new (CLAMP (2600 - cursor_blink_time, 100, 2500),
592
588
100, 2500, 200, 0, 0)));
593
gtk_widget_show (dialog->hscale3);
594
gtk_table_attach (GTK_TABLE (table), dialog->hscale3, 1, 2, 1, 2,
589
gtk_widget_show (dialog->scale_blink_time);
590
gtk_table_attach (GTK_TABLE (table), dialog->scale_blink_time, 1, 2, 1, 2,
595
591
(GtkAttachOptions) (GTK_EXPAND | GTK_FILL), (GtkAttachOptions) (GTK_FILL), 0, 2);
596
gtk_scale_set_draw_value (GTK_SCALE (dialog->hscale3), FALSE);
597
gtk_range_set_update_policy (GTK_RANGE (dialog->hscale3), GTK_UPDATE_DISCONTINUOUS);
598
gtk_widget_set_sensitive (dialog->hscale3, cursor_blink);
592
gtk_scale_set_draw_value (GTK_SCALE (dialog->scale_blink_time), FALSE);
593
gtk_range_set_update_policy (GTK_RANGE (dialog->scale_blink_time), GTK_UPDATE_DISCONTINUOUS);
594
gtk_widget_set_sensitive (dialog->scale_blink_time, cursor_blink);
600
596
frame = xfce_framebox_new (_("Test area"), TRUE);
601
597
gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_NONE);
605
601
entry = gtk_entry_new();
606
602
gtk_widget_show (entry);
607
gtk_entry_set_text(entry, _("Use this entry area to test the settings above."));
603
gtk_entry_set_text(GTK_ENTRY(entry), _("Use this entry area to test the settings above."));
608
604
xfce_framebox_add (XFCE_FRAMEBOX (frame), entry);
610
hbox = GTK_DIALOG (dialog->keyboard_dialog)->action_area;
606
hbox = GTK_DIALOG (dialog->dialog_keyboard)->action_area;
611
607
gtk_widget_show (hbox);
612
608
gtk_button_box_set_layout (GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_END);
610
label = gtk_label_new (_("Settings"));
611
gtk_widget_show (label);
612
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook),
613
gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), nth++), label);
614
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
616
shortcuts_widget = shortcuts_plugin_create_dialog (dialog);
617
gtk_container_add (GTK_CONTAINER (notebook), shortcuts_widget);
618
label = gtk_label_new (_("Shortcuts"));
619
gtk_widget_show (label);
620
gtk_notebook_set_tab_label (GTK_NOTEBOOK (notebook),
621
gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), nth++), label);
622
gtk_label_set_justify (GTK_LABEL (label), GTK_JUSTIFY_LEFT);
614
624
button = gtk_button_new_from_stock ("gtk-help");
615
625
/* gtk_widget_show (button); */
616
gtk_dialog_add_action_widget (GTK_DIALOG (dialog->keyboard_dialog), button, GTK_RESPONSE_HELP);
626
gtk_dialog_add_action_widget (GTK_DIALOG (dialog->dialog_keyboard), button, GTK_RESPONSE_HELP);
617
627
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
619
629
button = gtk_button_new_from_stock ("gtk-close");
620
630
gtk_widget_show (button);
621
gtk_dialog_add_action_widget (GTK_DIALOG (dialog->keyboard_dialog), button, GTK_RESPONSE_CLOSE);
631
gtk_dialog_add_action_widget (GTK_DIALOG (dialog->dialog_keyboard), button, GTK_RESPONSE_CLOSE);
622
632
GTK_WIDGET_SET_FLAGS (button, GTK_CAN_DEFAULT);
624
634
gtk_widget_grab_focus (button);
631
setup_dialog (Itf * itf)
641
keyboard_plugin_setup_dialog (KeyboardMcsDialog * dialog)
633
643
GtkTreeModel *model;
634
644
GtkTreeSelection *selection;
636
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (itf->theme_treeview),
646
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (dialog->treeview_maps),
639
649
gtk_cell_renderer_text_new (),
641
651
THEME_NAME_COLUMN,
643
654
model = (GtkTreeModel *) gtk_list_store_new (N_COLUMNS, G_TYPE_STRING);
644
655
gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (model), 0, sort_func, NULL, NULL);
645
656
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (model), 0, GTK_SORT_ASCENDING);
646
gtk_tree_view_set_model (GTK_TREE_VIEW (itf->theme_treeview), model);
647
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (itf->theme_treeview));
657
gtk_tree_view_set_model (GTK_TREE_VIEW (dialog->treeview_maps), model);
658
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (dialog->treeview_maps));
648
659
gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE);
649
g_signal_connect (G_OBJECT (selection), "changed", (GCallback) theme_selection_changed, itf->mcs_plugin);
653
g_signal_connect (G_OBJECT (itf->keyboard_dialog), "response", G_CALLBACK (cb_dialog_response), itf->mcs_plugin);
654
g_signal_connect (G_OBJECT (itf->checkrepeat), "toggled", G_CALLBACK (cb_checkrepeat_changed), itf);
655
g_signal_connect (G_OBJECT (itf->hscale1), "value_changed", (GCallback) cb_repeatdelay_changed, itf);
656
g_signal_connect (G_OBJECT (itf->hscale2), "value_changed", (GCallback) cb_repeatdelay_changed, itf);
657
g_signal_connect (G_OBJECT (itf->checkblink), "toggled", G_CALLBACK (cb_checkblink_changed), itf);
658
g_signal_connect (G_OBJECT (itf->hscale3), "value_changed", (GCallback) cb_blinktime_changed, itf);
660
xfce_gtk_window_center_on_monitor_with_pointer (GTK_WINDOW (itf->keyboard_dialog));
661
gdk_x11_window_set_user_time(GTK_WIDGET (itf->keyboard_dialog)->window,
662
gdk_x11_get_server_time (GTK_WIDGET (itf->keyboard_dialog)->window));
663
gtk_widget_show (itf->keyboard_dialog);
660
g_signal_connect (G_OBJECT (selection), "changed", (GCallback) theme_selection_changed, dialog->mcs_plugin);
662
read_themes (dialog);
664
g_signal_connect (G_OBJECT (dialog->dialog_keyboard), "response", G_CALLBACK (cb_dialog_response), dialog);
665
g_signal_connect (G_OBJECT (dialog->checkbutton_repeat), "toggled", G_CALLBACK (cb_checkbutton_repeat_changed), dialog);
666
g_signal_connect (G_OBJECT (dialog->scale_repeat_rate), "value_changed", (GCallback) cb_repeatdelay_changed, dialog);
667
g_signal_connect (G_OBJECT (dialog->scale_repeat_delay), "value_changed", (GCallback) cb_repeatdelay_changed, dialog);
668
g_signal_connect (G_OBJECT (dialog->checkbutton_blink), "toggled", G_CALLBACK (cb_checkbutton_blink_changed), dialog);
669
g_signal_connect (G_OBJECT (dialog->scale_blink_time), "value_changed", (GCallback) cb_blinktime_changed, dialog);
673
setup_dialog (KeyboardMcsDialog * dialog)
676
GtkTreeSelection *selection;
678
keyboard_plugin_setup_dialog (dialog);
679
shortcuts_plugin_setup_dialog (dialog);
681
xfce_gtk_window_center_on_monitor_with_pointer (GTK_WINDOW (dialog->dialog_keyboard));
682
gdk_x11_window_set_user_time(GTK_WIDGET (dialog->dialog_keyboard)->window,
683
gdk_x11_get_server_time (GTK_WIDGET (dialog->dialog_keyboard)->window));
685
gtk_widget_show (dialog->dialog_keyboard);
666
688
McsPluginInitResult
667
689
mcs_plugin_init (McsPlugin * mcs_plugin)
669
694
/* This is required for UTF-8 at least - Please don't remove it */
670
695
xfce_textdomain (GETTEXT_PACKAGE, LOCALEDIR, "UTF-8");
736
763
setting = mcs_manager_setting_lookup (mcs_plugin->manager, "Gtk/KeyThemeName", CHANNEL1);
739
if (current_key_theme)
740
g_free (current_key_theme);
767
g_free (current_key_map);
742
current_key_theme = g_strdup (setting->data.v_string);
769
current_key_map = g_strdup (setting->data.v_string);
746
if (current_key_theme)
747
g_free (current_key_theme);
749
current_key_theme = g_strdup (DEFAULT_THEME);
751
mcs_manager_set_string (mcs_plugin->manager, "Gtk/KeyThemeName", CHANNEL1, current_key_theme);
774
g_free (current_key_map);
776
current_key_map = g_strdup (DEFAULT_MAP);
778
mcs_manager_set_string (mcs_plugin->manager, "Gtk/KeyThemeName", CHANNEL1, current_key_map);
754
781
setting = mcs_manager_setting_lookup (mcs_plugin->manager, "Net/CursorBlink", CHANNEL1);
912
shortcuts_plugin_save_settings (mcs_plugin);
889
918
run_dialog (McsPlugin * mcs_plugin)
891
static Itf *dialog = NULL;
920
static KeyboardMcsDialog *dialog = NULL;
893
922
xfce_textdomain (GETTEXT_PACKAGE, LOCALEDIR, "UTF-8");
897
if((dialog) && (dialog->keyboard_dialog))
926
if((dialog) && (dialog->dialog_keyboard))
899
gtk_window_present(GTK_WINDOW(dialog->keyboard_dialog));
900
gtk_window_set_focus (GTK_WINDOW(dialog->keyboard_dialog), NULL);
928
gtk_window_present(GTK_WINDOW(dialog->dialog_keyboard));
929
gtk_window_set_focus (GTK_WINDOW(dialog->dialog_keyboard), NULL);
905
934
is_running = TRUE;
906
dialog = create_keyboard_dialog (mcs_plugin);
935
dialog = keyboard_plugin_create_dialog (mcs_plugin);
907
936
setup_dialog (dialog);
937
shortcuts_plugin_load_theme (dialog);
910
940
/* macro defined in manager-plugin.h */