亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? options.c

?? Linux環(huán)境下手寫輸入程序。手寫輸入
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*cellwriter -- a character recognition input methodCopyright (C) 2007 Michael Levin <risujin@risujin.org>This program is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public Licenseas published by the Free Software Foundation; either version 2of the License, or (at your option) any later version.This program is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See theGNU General Public License for more details.You should have received a copy of the GNU General Public Licensealong with this program; if not, write to the Free SoftwareFoundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.*/#include "config.h"#include "common.h"#include "recognize.h"#include <stdlib.h>#include <string.h>#ifdef HAVE_GNOME#include <libgnome/libgnome.h>#endif/* preprocess.c */int ignore_stroke_dir, ignore_stroke_num;/* cellwidget.c */extern int cell_width, cell_height, cell_cols_pref, cell_rows_pref,           train_on_input, right_to_left, keyboard_enabled, xinput_enabled;extern GdkColor custom_active_color, custom_inactive_color,                custom_ink_color, custom_select_color;void cell_widget_render(void);void cell_widget_set_cursor(int recreate);void cell_widget_enable_xinput(int on);/* keywidget.c */extern GdkColor custom_key_color;extern int keyboard_size;void key_widget_update_colors(void);/* statusicon.c */extern int status_menu_left_click;/*        Profile options*/static void color_sync(GdkColor *color){        profile_sync_short((short*)&color->red);        profile_sync_short((short*)&color->green);        profile_sync_short((short*)&color->blue);}void options_sync(void)/* Read or write options. Order here is important for compatibility. */{        profile_write("options");        profile_sync_int(&cell_width);        profile_sync_int(&cell_height);        profile_sync_int(&cell_cols_pref);        profile_sync_int(&cell_rows_pref);        color_sync(&custom_active_color);        color_sync(&custom_inactive_color);        color_sync(&custom_select_color);        color_sync(&custom_ink_color);        profile_sync_int(&train_on_input);        profile_sync_int(&ignore_stroke_dir);        profile_sync_int(&ignore_stroke_num);        profile_sync_int(&wordfreq_enable);        profile_sync_int(&right_to_left);        color_sync(&custom_key_color);        profile_sync_int(&keyboard_enabled);        profile_sync_int(&xinput_enabled);        profile_sync_int(&style_colors);        profile_sync_int(&status_menu_left_click);        profile_write("\n");}/*        Unicode blocks list*/static void unicode_block_toggled(GtkCellRendererToggle *renderer, gchar *path,                                  GtkListStore *blocks_store){        UnicodeBlock *block;        GtkTreePath *tree_path;        GtkTreeIter iter;        GValue value;        gboolean enabled;        int index;        /* Get the block this checkbox references */        tree_path = gtk_tree_path_new_from_string(path);        gtk_tree_model_get_iter(GTK_TREE_MODEL(blocks_store), &iter, tree_path);        index = gtk_tree_path_get_indices(tree_path)[0];        gtk_tree_path_free(tree_path);        block = unicode_blocks + index;        /* Toggle its value */        memset(&value, 0, sizeof (value));        gtk_tree_model_get_value(GTK_TREE_MODEL(blocks_store), &iter, 0,                                 &value);        enabled = !g_value_get_boolean(&value);        gtk_list_store_set(blocks_store, &iter, 0, enabled, -1);        unicode_block_toggle(index, enabled);}static GtkWidget *create_blocks_list(void){        GtkWidget *view, *scrolled;        GtkTreeIter iter;        GtkTreeViewColumn *column;        GtkListStore *blocks_store;        GtkCellRenderer *renderer;        UnicodeBlock *block;        /* Tree view */        blocks_store = gtk_list_store_new(2, G_TYPE_BOOLEAN, G_TYPE_STRING);        view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(blocks_store));        gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(view), FALSE);        gtk_tooltips_set_tip(tooltips, view,                             "Controls which blocks are enabled for "                             "recognition and appear in the training mode "                             "combo box.", NULL);        /* Column */        column = gtk_tree_view_column_new();        gtk_tree_view_insert_column(GTK_TREE_VIEW(view), column, 0);        renderer = gtk_cell_renderer_toggle_new();        g_signal_connect(G_OBJECT(renderer), "toggled",                         G_CALLBACK(unicode_block_toggled), blocks_store);        gtk_tree_view_column_pack_start(column, renderer, FALSE);        gtk_tree_view_column_add_attribute(column, renderer, "active", 0);        renderer = gtk_cell_renderer_text_new();        gtk_tree_view_column_pack_start(column, renderer, TRUE);        gtk_tree_view_column_add_attribute(column, renderer, "text", 1);        /* Fill blocks list */        block = unicode_blocks;        while (block->name) {                gtk_list_store_append(blocks_store, &iter);                gtk_list_store_set(blocks_store, &iter, 0, block->enabled,                                   1, block->name, -1);                block++;        }        /* Scrolled window */        scrolled = gtk_scrolled_window_new(NULL, NULL);        gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled),                                            GTK_SHADOW_ETCHED_IN);        gtk_container_add(GTK_CONTAINER(scrolled), view);        return scrolled;}/*        Options dialog*/#define CELL_WIDTH_MIN  24#define CELL_HEIGHT_MIN 48#define CELL_HEIGHT_MAX 96static GtkWidget *options_dialog = NULL, *cell_width_spin, *cell_height_spin,                 *color_table;static void close_dialog(void){        gtk_widget_hide(options_dialog);}static void color_set(GtkColorButton *button, GdkColor *color){        gtk_color_button_get_color(button, color);        window_update_colors();}static void ink_color_set(void){        cell_widget_set_cursor(TRUE);}static void xinput_enabled_toggled(void){        cell_widget_enable_xinput(xinput_enabled);}static void spin_value_changed_int(GtkSpinButton *button, int *value){        *value = (int)gtk_spin_button_get_value(button);}static void spin_value_changed_int_repack(GtkSpinButton *button, int *value){        spin_value_changed_int(button, value);        window_pack();}static void check_button_toggled(GtkToggleButton *button, int *value){        *value = gtk_toggle_button_get_active(button);}static void check_button_toggled_repack(GtkToggleButton *button, int *value){        check_button_toggled(button, value);        window_pack();}static GtkWidget *label_new_markup(const char *s){        GtkWidget *w;        w = gtk_label_new(NULL);        gtk_label_set_markup(GTK_LABEL(w), s);        gtk_misc_set_alignment(GTK_MISC(w), 0, 0.5);        return w;}static GtkWidget *spacer_new(int width, int height){        GtkWidget *w;        w = gtk_hbox_new(FALSE, 0);        gtk_widget_set_size_request(w, width, height);        return w;}static GtkWidget *spin_button_new_int(int min, int max, int *variable,                                      int repack){        GtkWidget *w;        w = gtk_spin_button_new_with_range(min, max, 1.);        gtk_spin_button_set_value(GTK_SPIN_BUTTON(w), *variable);        g_signal_connect(G_OBJECT(w), "value-changed",                         repack ? G_CALLBACK(spin_value_changed_int_repack) :                                  G_CALLBACK(spin_value_changed_int), variable);        return w;}static GtkWidget *check_button_new(const char *label, int *variable, int repack){        GtkWidget *w;        w = gtk_check_button_new_with_label(label);        gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(w), *variable);        g_signal_connect(G_OBJECT(w), "toggled",                         repack ? G_CALLBACK(check_button_toggled_repack) :                                  G_CALLBACK(check_button_toggled), variable);        return w;}static void cell_height_value_changed(void){        gtk_spin_button_set_range(GTK_SPIN_BUTTON(cell_width_spin),                                  CELL_WIDTH_MIN, cell_height);}static void cell_width_value_changed(void){        int min;        min = CELL_HEIGHT_MIN > cell_width ? CELL_HEIGHT_MIN : cell_width;        gtk_spin_button_set_range(GTK_SPIN_BUTTON(cell_height_spin),                                  min, CELL_HEIGHT_MAX);}static void style_colors_changed(void){#if GTK_CHECK_VERSION(2, 10, 0)        gtk_widget_set_sensitive(color_table, !style_colors);        window_update_colors();#endif}#ifdef HAVE_GNOMEstatic void help_clicked(void){        GError *error = NULL;        gnome_url_show(CELLWRITER_URL, &error);        if (error)                g_warning("Failed to launch help: %s", error->message);}#endifstatic GtkWidget *create_color_table(void){        GtkWidget *table;        int i, entries;        struct {                const char *string;                GdkColor *color;                int reset_cursor;        } colors[] = {                { "<b>Custom colors:</b>", NULL, FALSE },                { "Used cell:", &custom_active_color, FALSE },                { "Blank cell:", &custom_inactive_color, FALSE },                { "Highlight:", &custom_select_color, FALSE },                { "Text and ink:", &custom_ink_color, TRUE  },                { "Key face:", &custom_key_color, FALSE },        };        entries = (int)(sizeof (colors) / sizeof (*colors));        table = gtk_table_new(entries, 2, TRUE);        for (i = 0; i < entries; i++) {                GtkWidget *w, *hbox;                /* Headers */                if (!colors[i].color)                        w = label_new_markup(colors[i].string);                /* Color label */                else {                        hbox = gtk_hbox_new(FALSE, 0);                        gtk_box_pack_start(GTK_BOX(hbox), spacer_new(16, -1),                                           FALSE, FALSE, 0);                        w = label_new_markup(colors[i].string);                        gtk_box_pack_start(GTK_BOX(hbox), w, FALSE, FALSE, 0);                        gtk_misc_set_alignment(GTK_MISC(w), 0, 0.5);                        w = hbox;                }                gtk_table_attach(GTK_TABLE(table), w, 0, 1, i, i + 1,                                 GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0);                if (!colors[i].color)                        continue;                /* Attach color selection button */                w = gtk_color_button_new_with_color(colors[i].color);                g_signal_connect(G_OBJECT(w), "color-set",                                 G_CALLBACK(color_set), colors[i].color);                gtk_table_attach(GTK_TABLE(table), w, 1, 2, i, i + 1,                                 GTK_EXPAND | GTK_FILL, GTK_SHRINK, 0, 0);                /* Some colors reset the cursor */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品一区二区在线观看| 国产一区二区伦理片| 日韩一区二区三区视频在线| 国产精品一区二区无线| 亚洲三级电影全部在线观看高清| 555www色欧美视频| 色综合天天综合狠狠| 狠狠网亚洲精品| 三级久久三级久久久| 亚洲天堂免费在线观看视频| 精品盗摄一区二区三区| 91精品国产综合久久精品麻豆| 成人av电影免费观看| 日韩精品电影在线观看| 久久精品视频一区二区三区| 欧美日韩夫妻久久| 99这里只有久久精品视频| 国产一区欧美日韩| 亚洲女与黑人做爰| 欧美一二三四在线| 99免费精品视频| 99视频一区二区| 91原创在线视频| 91在线视频官网| 丁香亚洲综合激情啪啪综合| 丝袜亚洲精品中文字幕一区| 亚洲成人精品一区二区| 亚洲午夜视频在线| 亚洲自拍偷拍麻豆| 亚洲午夜久久久久中文字幕久| 国产欧美日韩在线| 亚洲天堂a在线| 一区二区三区国产| 亚洲一区二区三区不卡国产欧美| 日韩欧美视频一区| 日韩丝袜美女视频| 国产人久久人人人人爽| 亚洲欧洲综合另类在线| 亚洲麻豆国产自偷在线| 一区二区三区四区在线| 日本美女一区二区| 99v久久综合狠狠综合久久| 成年人国产精品| 97成人超碰视| 欧美视频一区二区| 欧美调教femdomvk| 日韩精品中文字幕在线一区| 久久嫩草精品久久久精品| 国产精品成人一区二区艾草| 亚洲激情图片一区| 国产精品一区一区| 国产一区二区三区美女| 国产成人福利片| 欧美日韩国产成人在线91| 97久久超碰国产精品| 亚洲精品在线观看视频| 亚洲综合久久久久| 国产在线精品一区在线观看麻豆| 国产高清不卡二三区| 在线看不卡av| 亚洲欧美另类久久久精品2019| 亚洲人精品午夜| 九九九久久久精品| 成人免费视频免费观看| 777午夜精品视频在线播放| 日韩欧美中文字幕制服| 亚洲男人都懂的| www.日韩精品| 欧美国产精品一区| 国产精品一区久久久久| 91精品国产综合久久久久久久 | 国产午夜精品一区二区三区视频 | 日韩视频一区二区在线观看| 石原莉奈在线亚洲二区| 在线播放中文一区| 亚洲精品欧美二区三区中文字幕| 久久99久久精品欧美| 久久久精品国产99久久精品芒果| 日韩国产欧美在线播放| 91精彩视频在线观看| 图片区小说区国产精品视频| 色屁屁一区二区| 亚洲精选视频免费看| 久久激五月天综合精品| 国产精品久线观看视频| 大陆成人av片| 国产三级一区二区| 91蝌蚪porny九色| 亚洲国产日韩在线一区模特| 97久久精品人人爽人人爽蜜臀| 精品噜噜噜噜久久久久久久久试看| 五月激情六月综合| 热久久久久久久| 精品国产髙清在线看国产毛片 | 中文字幕日韩av资源站| 99精品久久久久久| 三级欧美在线一区| 久久五月婷婷丁香社区| 国产99一区视频免费| 亚洲蜜臀av乱码久久精品蜜桃| 成人高清视频在线观看| 国产精品久久久久三级| 欧美日韩精品三区| 高清beeg欧美| 日本午夜精品一区二区三区电影| 日韩西西人体444www| 99视频国产精品| 秋霞成人午夜伦在线观看| 日本一区二区免费在线 | 欧美一区日本一区韩国一区| 国产麻豆午夜三级精品| 亚洲激情自拍视频| 日韩欧美中文字幕公布| 国产精品99久久久久久久女警| 亚洲自拍偷拍欧美| 亚洲天堂成人在线观看| 精品成人免费观看| 欧美日韩成人综合在线一区二区| 国产精华液一区二区三区| 亚洲黄色免费网站| 国产精品久久国产精麻豆99网站 | 99久久夜色精品国产网站| 一区二区在线观看免费视频播放| 日韩一二三四区| 日韩精品一区在线观看| 欧美精品自拍偷拍| 欧美日韩国产综合一区二区三区| 在线观看免费成人| 884aa四虎影成人精品一区| 久久综合成人精品亚洲另类欧美| 亚洲综合色在线| 免费观看成人av| 99这里都是精品| 精品国产亚洲一区二区三区在线观看 | 不卡av免费在线观看| 在线成人午夜影院| 亚洲一区二区三区四区在线免费观看| 亚洲成a人片在线观看中文| 亚洲国产精品av| 成人免费视频在线观看| 一区二区三区成人| 久久草av在线| 97精品久久久久中文字幕| 欧美放荡的少妇| 国产精品美日韩| 美洲天堂一区二卡三卡四卡视频| 成人免费的视频| 正在播放亚洲一区| 亚洲激情在线播放| 国产一区二区按摩在线观看| 91在线国产福利| 26uuu精品一区二区| 亚洲一卡二卡三卡四卡| 国产在线不卡一区| 69p69国产精品| 亚洲精品综合在线| 成人高清视频在线观看| 日韩精品一区二区三区四区视频| 亚洲一区二区欧美日韩| 国产尤物一区二区在线 | 一本大道久久a久久精二百| 精品国产制服丝袜高跟| 午夜国产不卡在线观看视频| 99re这里只有精品首页| 久久亚洲一区二区三区明星换脸| 亚洲国产另类av| 91久久奴性调教| 亚洲视频免费看| 99久久精品免费精品国产| 亚洲人成网站精品片在线观看| 国产在线精品国自产拍免费| 欧美天堂亚洲电影院在线播放| 久久伊人中文字幕| 亚洲伦在线观看| 成人一级视频在线观看| 99麻豆久久久国产精品免费 | 国产亚洲精品久| 亚洲电影一区二区三区| www.66久久| 亚洲欧洲综合另类| 在线欧美日韩精品| 亚洲五码中文字幕| 日韩一区二区三区三四区视频在线观看| 亚洲国产成人91porn| 制服丝袜激情欧洲亚洲| 奇米色一区二区三区四区| 日韩午夜激情av| 国产精品影视网| 一区二区视频在线| 欧美日韩一区视频| 日韩电影一二三区| 久久久久久麻豆| 一本色道久久综合亚洲aⅴ蜜桃| 一区二区三区中文免费| 欧美美女激情18p| 国产精品18久久久久久久久久久久 | 欧美丰满高潮xxxx喷水动漫 | 韩日欧美一区二区三区| 国产精品乱码久久久久久| 欧美日韩国产精品自在自线|