static void create_main_win() { main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); if (hime_setup_window_type_utility) gtk_window_set_type_hint(GTK_WINDOW(main_window), GDK_WINDOW_TYPE_HINT_UTILITY); gtk_window_set_position(GTK_WINDOW(main_window), GTK_WIN_POS_CENTER); g_signal_connect (G_OBJECT (main_window), "delete_event", G_CALLBACK (close_application), NULL); gtk_window_set_title (GTK_WINDOW (main_window), _("hime 設定/工具")); set_window_hime_icon(main_window); gtk_window_set_resizable (GTK_WINDOW (main_window), FALSE); GtkWidget *vbox = gtk_vbox_new (FALSE, 0); gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox), GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (main_window), vbox); GtkWidget *button_default_input_method = gtk_button_new_with_label(_("內定輸入法 & 開啟/關閉")); gtk_box_pack_start (GTK_BOX (vbox), button_default_input_method, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_default_input_method), "clicked", G_CALLBACK (cb_default_input_method), NULL); GtkWidget *button_appearance_conf = gtk_button_new_with_label(_("輸入視窗外觀設定")); gtk_box_pack_start (GTK_BOX (vbox), button_appearance_conf, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_appearance_conf), "clicked", G_CALLBACK (cb_appearance_conf), NULL); GtkWidget *button_kbm = gtk_button_new_with_label(_("注音/詞音/拼音設定")); gtk_box_pack_start (GTK_BOX (vbox), button_kbm, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_kbm), "clicked", G_CALLBACK (cb_kbm), NULL); GtkWidget *button_gtab_conf = gtk_button_new_with_label(_("倉頡/行列/大易設定")); gtk_box_pack_start (GTK_BOX (vbox), button_gtab_conf, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_gtab_conf), "clicked", G_CALLBACK (cb_gtab_conf), NULL); int i; for (i=0; i < inmdN; i++) { INMD *pinmd = &inmd[i]; if (pinmd->method_type != method_type_MODULE || pinmd->disabled) continue; HIME_module_callback_functions *f = init_HIME_module_callback_functions(pinmd->filename); if (!f) continue; if (!f->module_setup_window_create) { free(f); continue; } char tt[128]; strcpy(tt, pinmd->cname); strcat(tt, _("設定")); GtkWidget *button_module_input_method = gtk_button_new_with_label(tt); gtk_box_pack_start (GTK_BOX (vbox), button_module_input_method, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_module_input_method), "clicked", G_CALLBACK (f->module_setup_window_create), GINT_TO_POINTER(hime_setup_window_type_utility)); } GtkWidget *button_alt_shift = gtk_button_new_with_label(_("alt-shift 片語編輯")); gtk_box_pack_start (GTK_BOX (vbox), button_alt_shift, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_alt_shift), "clicked", G_CALLBACK (cb_alt_shift), NULL); GtkWidget *button_symbol_table = gtk_button_new_with_label(_("符號表編輯")); gtk_box_pack_start (GTK_BOX (vbox), button_symbol_table, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_symbol_table), "clicked", G_CALLBACK (cb_symbol_table), NULL); #if TRAY_ENABLED if (!hime_status_tray) { #endif GtkWidget *button_gb_output_toggle = gtk_button_new_with_label(_("啟用/關閉簡體字輸出")); gtk_box_pack_start (GTK_BOX (vbox), button_gb_output_toggle, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_gb_output_toggle), "clicked", G_CALLBACK (cb_gb_output_toggle), NULL); void kbm_open_close(GtkButton *checkmenuitem, gboolean b_show); GtkWidget *button_win_kbm_toggle = gtk_button_new_with_label(_("顯示/隱藏輸入法鍵盤")); gtk_box_pack_start (GTK_BOX (vbox), button_win_kbm_toggle, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_win_kbm_toggle), "clicked", G_CALLBACK (cb_win_kbm_toggle), NULL); #if TRAY_ENABLED } #endif GtkWidget *button_gb_translate_toggle = gtk_button_new_with_label(_("剪貼區 簡體字->正體字")); gtk_box_pack_start (GTK_BOX (vbox), button_gb_translate_toggle, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_gb_translate_toggle), "clicked", G_CALLBACK (cb_gb_translate_toggle), NULL); GtkWidget *button_juying_learn_toggle = gtk_button_new_with_label(_("剪貼區 注音查詢")); gtk_box_pack_start (GTK_BOX (vbox), button_juying_learn_toggle, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_juying_learn_toggle), "clicked", G_CALLBACK (cb_juying_learn), NULL); GtkWidget *expander_ts = gtk_expander_new (_("詞庫選項")); gtk_box_pack_start (GTK_BOX (vbox), expander_ts, FALSE, FALSE, 0); GtkWidget *vbox_ts = gtk_vbox_new (FALSE, 0); gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox_ts), GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (expander_ts), vbox_ts); GtkWidget *button_ts_export = gtk_button_new_with_label(_("詞庫匯出")); gtk_widget_set_hexpand (button_ts_export, TRUE); gtk_box_pack_start (GTK_BOX (vbox_ts), button_ts_export, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_ts_export), "clicked", G_CALLBACK (cb_ts_export), NULL); GtkWidget *button_ts_import = gtk_button_new_with_label(_("詞庫匯入")); gtk_widget_set_hexpand (button_ts_import, TRUE); gtk_box_pack_start (GTK_BOX (vbox_ts), button_ts_import, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_ts_import), "clicked", G_CALLBACK (cb_ts_import), NULL); GtkWidget *button_ts_edit = gtk_button_new_with_label(_("詞庫編輯")); gtk_widget_set_hexpand (button_ts_edit, TRUE); gtk_box_pack_start (GTK_BOX (vbox_ts), button_ts_edit, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_ts_edit), "clicked", G_CALLBACK (cb_ts_edit), NULL); GtkWidget *button_hime_tslearn = gtk_button_new_with_label(_("從文章學習詞")); gtk_box_pack_start (GTK_BOX (vbox_ts), button_hime_tslearn, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_hime_tslearn), "clicked", G_CALLBACK (cb_tslearn), NULL); GtkWidget *button_ts_import_sys = gtk_button_new_with_label(_("匯入系統的詞庫")); gtk_box_pack_start (GTK_BOX (vbox_ts), button_ts_import_sys, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_ts_import_sys), "clicked", G_CALLBACK (cb_ts_import_sys), NULL); GtkWidget *button_about = gtk_button_new_from_stock (GTK_STOCK_ABOUT); gtk_box_pack_start (GTK_BOX (vbox), button_about, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_about), "clicked", G_CALLBACK (create_about_window), NULL); GtkWidget *button_quit = gtk_button_new_from_stock (GTK_STOCK_QUIT); gtk_box_pack_start (GTK_BOX (vbox), button_quit, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_quit), "clicked", G_CALLBACK (close_application), NULL); gtk_widget_show_all(main_window); }
int main(int argc, char **argv) { #if WIN32 init_TableDir(); #endif gtk_init (&argc, &argv); #if HIME_i18n_message bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); #endif b_pinyin = is_pinyin_kbm(); pho_load(); mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_has_resize_grip(GTK_WINDOW(mainwin), FALSE); gtk_window_set_default_size(GTK_WINDOW (mainwin), 640, 220); set_window_hime_icon(mainwin); GtkWidget *sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); GtkWidget *vbox_top = gtk_vbox_new (FALSE, 0); gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox_top), GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER(mainwin), vbox_top); GtkWidget *view = gtk_text_view_new (); gtk_widget_set_hexpand (view, TRUE); gtk_widget_set_vexpand (view, TRUE); gtk_container_add (GTK_CONTAINER(sw), view); gtk_box_pack_start (GTK_BOX (vbox_top), sw, TRUE, TRUE, 0); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); gtk_text_buffer_create_tag (buffer, "blue_background", "background", "blue", "foreground", "white", NULL); gtk_text_buffer_create_tag (buffer, "char_wrap", "wrap_mode", GTK_WRAP_CHAR, NULL); hbox_buttons = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox_top), hbox_buttons, FALSE, FALSE, 0); GtkWidget *button_fetch = gtk_button_new_with_label(_(_L("自剪貼區更新"))); gtk_box_pack_start (GTK_BOX (hbox_buttons), button_fetch, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_fetch), "clicked", G_CALLBACK (cb_button_fetch), NULL); GtkWidget *button_exit = gtk_button_new_from_stock(GTK_STOCK_QUIT); gtk_box_pack_start (GTK_BOX (hbox_buttons), button_exit, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_exit), "clicked", G_CALLBACK (do_exit), NULL); g_signal_connect (G_OBJECT (mainwin), "delete_event", G_CALLBACK (do_exit), NULL); gtk_widget_show_all(mainwin); #if UNIX pclipboard = gtk_clipboard_get(GDK_SELECTION_PRIMARY); #else pclipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD); #endif req_clipboard(); gtk_main(); return 0; }
int main(int argc, char **argv) { init_TableDir(); set_is_chs(); b_pinyin = is_pinyin_kbm(); gtk_init (&argc, &argv); load_setttings(); load_gtab_list(TRUE); #if HIME_i18n_message bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); textdomain(GETTEXT_PACKAGE); #endif pinmd = &inmd[default_input_method]; if (pinmd->method_type == method_type_TSIN) { dbg("is tsin\n"); pho_load(); load_tsin_db(); ph_key_sz = 2; } else if (pinmd->filename) { dbg("gtab filename %s\n", pinmd->filename); init_gtab(default_input_method); is_gtab = TRUE; init_tsin_table_fname(pinmd, gtab_tsin_fname); load_tsin_db0(gtab_tsin_fname, TRUE); } else p_err("Your default input method %s doesn't use phrase database", pinmd->cname); dbg("ph_key_sz: %d\n", ph_key_sz); dpy = GDK_DISPLAY(); mainwin = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_has_resize_grip(GTK_WINDOW(mainwin), FALSE); gtk_window_set_default_size(GTK_WINDOW (mainwin), 640, 520); set_window_hime_icon(mainwin); GtkWidget *sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); GtkWidget *vbox_top = gtk_vbox_new (FALSE, 0); gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox_top), GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER(mainwin), vbox_top); GtkWidget *view = gtk_text_view_new (); gtk_widget_set_hexpand (view, TRUE); gtk_widget_set_vexpand (view, TRUE); gtk_container_add (GTK_CONTAINER(sw), view); gtk_box_pack_start (GTK_BOX (vbox_top), sw, TRUE, TRUE, 0); buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); char *text = _("按滑鼠中鍵, 貼上你要 hime-tslearn 學習的文章。"); gtk_text_buffer_set_text (buffer, text, -1); gtk_text_buffer_create_tag (buffer, "blue_background", "background", "blue", "foreground", "white", NULL); gtk_text_buffer_create_tag (buffer, "char_wrap", "wrap_mode", GTK_WRAP_CHAR, NULL); hbox_buttons = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox_top), hbox_buttons, FALSE, FALSE, 0); GtkWidget *button_parse = gtk_button_new_with_label(_("標示已知詞")); gtk_box_pack_start (GTK_BOX (hbox_buttons), button_parse, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_parse), "clicked", G_CALLBACK (cb_button_parse), NULL); GtkWidget *button_add = gtk_button_new_with_label(_("新增詞")); gtk_box_pack_start (GTK_BOX (hbox_buttons), button_add, TRUE, TRUE, 0); g_signal_connect (G_OBJECT (button_add), "clicked", G_CALLBACK (cb_button_add), NULL); GtkWidget *button_quit = gtk_button_new_from_stock (GTK_STOCK_QUIT); gtk_box_pack_start (GTK_BOX (hbox_buttons), button_quit, FALSE, FALSE, 0); g_signal_connect (G_OBJECT (button_quit), "clicked", G_CALLBACK (do_exit), NULL); g_signal_connect (G_OBJECT (mainwin), "delete_event", G_CALLBACK (do_exit), NULL); all_wrap(); gtk_widget_show_all(mainwin); gtk_main(); return 0; }