diff --git a/scim-wnn/src/scim_wnn_def.h b/scim-wnn/src/scim_wnn_def.h index ebdd3b0..5f97145 100644 --- a/scim-wnn/src/scim_wnn_def.h +++ b/scim-wnn/src/scim_wnn_def.h @@ -72,7 +72,11 @@ #define SCIM_CONFIG_WNN_RC "/IMEngine/Wnn/Rc" #define SCIM_DEFAULT_WNN_RC "/usr/lib/wnn7/ja_JP/wnnenvrc" #define SCIM_CONFIG_WNN_SERVERTYPE "/IMEngine/Wnn/ServerType" -#define SCIM_DEFAULT_WNN_SERVERTYPE "Wnn4" +#ifdef HAVE_LIBWNN7 + #define SCIM_DEFAULT_WNN_SERVERTYPE "Wnn7" +#else + #define SCIM_DEFAULT_WNN_SERVERTYPE "Wnn4" +#endif #define SCIM_CONFIG_WNN_MINISTATUS "/IMEngine/Wnn/MiniStatus" #define SCIM_DEFAULT_WNN_MINISTATUS false diff --git a/scim-wnn/src/scim_wnn_imengine_setup.cpp b/scim-wnn/src/scim_wnn_imengine_setup.cpp index cf8b068..a19d862 100644 --- a/scim-wnn/src/scim_wnn_imengine_setup.cpp +++ b/scim-wnn/src/scim_wnn_imengine_setup.cpp @@ -140,12 +140,16 @@ //static bool __config_use_kana = false; static String __config_server = SCIM_DEFAULT_WNN_SERVER; static String __config_wnn_rc = SCIM_DEFAULT_WNN_RC; +static String __config_servertype = SCIM_DEFAULT_WNN_SERVERTYPE; +static bool __config_yosoku = SCIM_DEFAULT_WNN_YOSOKU; static bool __have_changed = true; //static GtkWidget * __widget_use_kana = 0; static GtkWidget * __widget_server = 0; +static GtkWidget * __widget_servertype = 0; static GtkWidget * __widget_wnn_rc = 0; +static GtkWidget * __widget_yosoku = 0; static GtkTooltips * __widget_tooltips = 0; static KeyboardConfigData __config_keyboards_common [] = @@ -413,10 +417,8 @@ static void on_default_editable_changed (GtkEditable *editable, gpointer user_data); -/* static void on_default_toggle_button_toggled (GtkToggleButton *togglebutton, gpointer user_data); -*/ static void on_default_key_selection_clicked (GtkButton *button, gpointer user_data); static void on_default_file_selection_button (GtkButton *button, @@ -485,6 +487,38 @@ (GtkAttachOptions) (GTK_FILL), 4, 4); //gtk_label_set_mnemonic_widget (GTK_LABEL (label), button); + /* servertype */ + label = gtk_label_new_with_mnemonic (_("_Servertype: ")); + gtk_widget_show (label); + gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); + gtk_misc_set_padding (GTK_MISC (label), 4, 0); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 2, 3, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 4, 4); + + __widget_servertype = gtk_entry_new (); + gtk_widget_show (__widget_servertype); + gtk_table_attach (GTK_TABLE (table), __widget_servertype, 1, 2, 2, 3, + (GtkAttachOptions) (GTK_FILL|GTK_EXPAND), + (GtkAttachOptions) (GTK_FILL), 4, 4); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), __widget_servertype); + + /* completion */ + label = gtk_label_new_with_mnemonic (_("_YOSOKU-input: ")); + gtk_widget_show (label); + gtk_misc_set_alignment (GTK_MISC (label), 1.0, 0.5); + gtk_misc_set_padding (GTK_MISC (label), 4, 0); + gtk_table_attach (GTK_TABLE (table), label, 0, 1, 3, 4, + (GtkAttachOptions) (GTK_FILL), + (GtkAttachOptions) (GTK_FILL), 4, 4); + + __widget_yosoku = gtk_toggle_button_new (); + gtk_widget_show (__widget_yosoku); + gtk_table_attach (GTK_TABLE (table), __widget_yosoku, 1, 2, 3, 4, + (GtkAttachOptions) (GTK_SHRINK), + (GtkAttachOptions) (GTK_SHRINK), 4, 4); + gtk_label_set_mnemonic_widget (GTK_LABEL (label), __widget_yosoku); + /* connect all signals */ g_signal_connect ((gpointer) __widget_server, "changed", G_CALLBACK (on_default_editable_changed), @@ -495,6 +529,12 @@ g_signal_connect ((gpointer) button, "clicked", G_CALLBACK (on_default_file_selection_button), __widget_wnn_rc); + g_signal_connect ((gpointer) __widget_servertype, "changed", + G_CALLBACK (on_default_editable_changed), + &__config_servertype); + g_signal_connect ((gpointer) __widget_yosoku, "toggled", + G_CALLBACK (on_default_toggle_button_toggled), + &__config_yosoku); return vbox; } @@ -611,6 +651,18 @@ __config_wnn_rc.c_str ()); } + if (__widget_servertype) { + gtk_entry_set_text ( + GTK_ENTRY (__widget_servertype), + __config_servertype.c_str ()); + } + + if (__widget_yosoku) { + gtk_toggle_button_set_active ( + GTK_TOGGLE_BUTTON (__widget_yosoku), + __config_yosoku); + } + for (unsigned int j = 0; j < __key_conf_pages_num; ++ j) { for (unsigned int i = 0; __key_conf_pages[j].data[i].key; ++ i) { if (__key_conf_pages[j].data[i].entry) { @@ -635,6 +687,12 @@ __config_wnn_rc = config->read (String (SCIM_CONFIG_WNN_RC), __config_wnn_rc); + __config_servertype = + config->read (String (SCIM_CONFIG_WNN_SERVERTYPE), + __config_servertype); + __config_yosoku = + config->read (String (SCIM_CONFIG_WNN_YOSOKU), + __config_yosoku); for (unsigned int j = 0; j < __key_conf_pages_num; j++) { for (unsigned int i = 0; __key_conf_pages[j].data[i].key; ++ i) { @@ -660,6 +718,10 @@ __config_server); config->write (String (SCIM_CONFIG_WNN_RC), __config_wnn_rc); + config->write (String (SCIM_CONFIG_WNN_SERVERTYPE), + __config_servertype); + config->write (String (SCIM_CONFIG_WNN_YOSOKU), + __config_yosoku); for (unsigned j = 0; j < __key_conf_pages_num; j++) { for (unsigned int i = 0; __key_conf_pages[j].data[i].key; ++ i) { @@ -679,7 +741,6 @@ } -/* static void on_default_toggle_button_toggled (GtkToggleButton *togglebutton, gpointer user_data) @@ -691,7 +752,6 @@ __have_changed = true; } } -*/ static void on_default_editable_changed (GtkEditable *editable,