📄 scim_tomoe_prefs_widget.cpp
字号:
gtk_widget_show (widget); return vbox;}static GtkWidget *create_handwriting_page (ScimTomoePrefsWidget *prefs){ GtkWidget *vbox = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); GtkWidget *widget; // use auto find widget = create_check_button (prefs, _("Use auto _find"), SCIM_TOMOE_CONFIG_USE_AUTO_FIND, SCIM_TOMOE_CONFIG_USE_AUTO_FIND_DEFAULT); gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 4); gtk_widget_show (widget); // auto find time GtkWidget *alignment = gtk_alignment_new (0.5, 0.5, 1.0, 1.0); gtk_alignment_set_padding (GTK_ALIGNMENT (alignment), 0, 0, 24, 0); gtk_box_pack_start (GTK_BOX (vbox), alignment, FALSE, FALSE, 0); gtk_widget_show (alignment); GtkWidget *table = create_spin_button ( prefs, _("_Interval time until start auto find:"), _("[msec]"), SCIM_TOMOE_CONFIG_AUTO_FIND_TIME, SCIM_TOMOE_CONFIG_AUTO_FIND_TIME_DEFAULT, 0, 100000, 50, 200); gtk_widget_set_sensitive (table, FALSE); gtk_container_add (GTK_CONTAINER (alignment), table); gtk_widget_show (table); g_signal_connect (G_OBJECT (widget), "toggled", G_CALLBACK (on_default_toggle_button_set_sensitive), table); // clear the canvas widget = create_check_button ( prefs, _("_Clear the canvas when select a candidate"), SCIM_TOMOE_CONFIG_CLEAR_ON_SELECT, SCIM_TOMOE_CONFIG_CLEAR_ON_SELECT_DEFAULT); // font for the candidate view widget = create_font_button (prefs, _("Font for the candidates view:"), SCIM_TOMOE_CONFIG_CAND_FONT, SCIM_TOMOE_CONFIG_CAND_FONT_DEFAULT); gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 4); gtk_widget_show (widget); return vbox;}#ifdef TOMOE_GTK_HAS_GUCHARMAPstatic GtkWidget *create_unicode_table_page (ScimTomoePrefsWidget *prefs){ GtkWidget *vbox = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox), 8); GtkWidget *widget; widget = create_font_button (prefs, _("Font for the Unicode table:"), SCIM_TOMOE_CONFIG_UNICODE_TABLE_FONT, SCIM_TOMOE_CONFIG_UNICODE_TABLE_FONT_DEFAULT); gtk_box_pack_start (GTK_BOX (vbox), widget, FALSE, FALSE, 4); gtk_widget_show (widget); return vbox;}#endif /* TOMOE_GTK_HAS_GUCHARMAP */static voidload_config (ScimTomoePrefsWidget *prefs){ GList *node; if (prefs->config.null ()) return; for (node = prefs->widget_list; node; node = g_list_next (node)) { GtkWidget *widget = GTK_WIDGET (node->data); if (GTK_IS_TOGGLE_BUTTON (widget)) { gpointer key_p, value_p; const char *key; bool value; key_p = g_object_get_data (G_OBJECT (widget), OBJECT_DATA_CONFIG_KEY); value_p = g_object_get_data (G_OBJECT (widget), OBJECT_DATA_CONFIG_VALUE); key = (const char*) key_p; value = GPOINTER_TO_INT (value_p); value = prefs->config->read (String (key), value); gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (widget), value); } else if (GTK_IS_SPIN_BUTTON (widget)) { gpointer key_p, value_p; const char *key; gint value; key_p = g_object_get_data (G_OBJECT (widget), OBJECT_DATA_CONFIG_KEY); value_p = g_object_get_data (G_OBJECT (widget), OBJECT_DATA_CONFIG_VALUE); key = (const char*) key_p; value = GPOINTER_TO_INT (value_p); value = prefs->config->read (String (key), value); gtk_spin_button_set_value (GTK_SPIN_BUTTON (widget), value); } else if (GTK_IS_FONT_BUTTON (widget)) { gpointer key_p, value_p; const char *key, *value; String str; key_p = g_object_get_data (G_OBJECT (widget), OBJECT_DATA_CONFIG_KEY); value_p = g_object_get_data (G_OBJECT (widget), OBJECT_DATA_CONFIG_VALUE); key = (const char*) key_p; value = (const char*) value_p; str = prefs->config->read (String (key), value ? value : String ("")); if (str.length() > 0) gtk_font_button_set_font_name (GTK_FONT_BUTTON (widget), str.c_str()); } } apply_config (prefs);}static voidapply_config (ScimTomoePrefsWidget *prefs){ TomoeWindow *parent = TOMOE_WINDOW (prefs->parent); TomoeHandwriting *hw = TOMOE_HANDWRITING (tomoe_window_get_handwriting_page (parent)); TomoeCanvas *canvas = TOMOE_CANVAS (tomoe_handwriting_get_canvas (hw)); // window z-level option bool always_top; always_top = prefs->config->read ( String (SCIM_TOMOE_CONFIG_WINDOW_ALWAYS_TOP), SCIM_TOMOE_CONFIG_WINDOW_ALWAYS_TOP_DEFAULT); gtk_window_set_keep_above (GTK_WINDOW (parent), always_top ? TRUE : FALSE); // auto find bool use_auto_find; gint time1, time2; time1 = tomoe_canvas_get_auto_find_time (canvas); use_auto_find = prefs->config->read ( String (SCIM_TOMOE_CONFIG_USE_AUTO_FIND), SCIM_TOMOE_CONFIG_USE_AUTO_FIND_DEFAULT); time2 = prefs->config->read ( String (SCIM_TOMOE_CONFIG_AUTO_FIND_TIME), SCIM_TOMOE_CONFIG_AUTO_FIND_TIME_DEFAULT); if (!use_auto_find) tomoe_canvas_set_auto_find_time (canvas, -1); else if (time1 != time2) tomoe_canvas_set_auto_find_time (canvas, time2); // candidates view font GtkWidget *view = tomoe_handwriting_get_char_table (hw); String font; font = prefs->config->read ( String (SCIM_TOMOE_CONFIG_CAND_FONT), String (SCIM_TOMOE_CONFIG_CAND_FONT_DEFAULT)); if (font.length() > 0) { PangoFontDescription *desc; desc = pango_font_description_from_string (font.c_str ()); gtk_widget_modify_font (view, desc); pango_font_description_free (desc); } else { set_default_font (prefs, SCIM_TOMOE_CONFIG_CAND_FONT, view); }#ifdef TOMOE_GTK_HAS_GUCHARMAP // Unicode table font TomoeGucharmap *gucharmap = TOMOE_GUCHARMAP (tomoe_window_get_gucharmap_page (parent)); GucharmapCharmap *charmap = tomoe_gucharmap_get_charmap (gucharmap); font = prefs->config->read ( String (SCIM_TOMOE_CONFIG_UNICODE_TABLE_FONT), String (SCIM_TOMOE_CONFIG_UNICODE_TABLE_FONT_DEFAULT)); if (font.length() > 0) { gucharmap_charmap_set_font (charmap, font.c_str ()); } else { gucharmap_charmap_set_font (charmap, NULL); set_default_font (prefs, SCIM_TOMOE_CONFIG_CAND_FONT, GTK_WIDGET (charmap)); }#endif /* TOMOE_GTK_HAS_GUCHARMAP */}static voidon_default_toggle_button_toggled (GtkToggleButton *togglebutton, gpointer user_data){ ScimTomoePrefsWidget *prefs = SCIM_TOMOE_PREFS_WIDGET (user_data); gboolean value = gtk_toggle_button_get_active (togglebutton); gpointer key_p = g_object_get_data (G_OBJECT (togglebutton), OBJECT_DATA_CONFIG_KEY); const gchar *key = (const gchar *) key_p; if (key && *key) prefs->config->write (String (key), value); apply_config (prefs);}static voidon_default_toggle_button_set_sensitive (GtkToggleButton *togglebutton, gpointer user_data){ GtkWidget *widget = GTK_WIDGET (user_data); gboolean active = gtk_toggle_button_get_active (togglebutton); gtk_widget_set_sensitive (widget, active);}static voidon_default_spin_button_changed (GtkSpinButton *spinbutton, gpointer user_data){ ScimTomoePrefsWidget *prefs = SCIM_TOMOE_PREFS_WIDGET (user_data); gint value = (gint) gtk_spin_button_get_value (spinbutton); gpointer key_p = g_object_get_data (G_OBJECT (spinbutton), OBJECT_DATA_CONFIG_KEY); const gchar *key = (const gchar *) key_p; if (key && *key) prefs->config->write (String (key), value); apply_config (prefs);}static voidon_default_font_button_changed (GtkFontButton *button, gpointer user_data){ ScimTomoePrefsWidget *prefs = SCIM_TOMOE_PREFS_WIDGET (user_data); const gchar *value = gtk_font_button_get_font_name (button); gpointer key_p = g_object_get_data (G_OBJECT (button), OBJECT_DATA_CONFIG_KEY); const gchar *key = (const gchar *) key_p; if (key && *key) prefs->config->write (String (key), value ? value : String ("")); apply_config (prefs);}/*vi:ts=4:nowrap:ai:expandtab*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -