void create_win1() { if (gwin1) return; gwin1 = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_has_resize_grip(GTK_WINDOW(gwin1), FALSE); #if UNIX gtk_window_set_resizable(GTK_WINDOW(gwin1), FALSE); #endif #if WIN32 set_no_focus(gwin1); #endif gtk_widget_realize (gwin1); #if UNIX set_no_focus(gwin1); #else win32_init_win(gwin1); #endif g_signal_connect (G_OBJECT (gwin1), "scroll-event", G_CALLBACK (button_scroll_event_tsin), NULL); }
void create_stat_win() { gwin_stat = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_has_resize_grip(GTK_WINDOW(gwin_stat), FALSE); #if WIN32 set_no_focus(gwin_stat); #endif gtk_container_set_border_width (GTK_CONTAINER (gwin_stat), 0); gtk_widget_realize (gwin_stat); #if UNIX GdkWindow *gdkwin0 = gtk_widget_get_window(gwin_stat); set_no_focus(gwin_stat); #else win32_init_win(gwin_stat); #endif GtkWidget *vbox = gtk_vbox_new (FALSE, 0); gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox), GTK_ORIENTATION_VERTICAL); gtk_container_add (GTK_CONTAINER (gwin_stat), vbox); label_disp = gtk_label_new(NULL); gtk_box_pack_start (GTK_BOX (vbox), label_disp, TRUE, TRUE, 0); gtk_widget_show_all(gwin_stat); timeout_handle = g_timeout_add(3000, timeout_update_stat, NULL); }
GtkWidget *create_no_focus_win() { GtkWidget *win = gtk_window_new (GTK_WINDOW_TOPLEVEL); // gtk_window_set_has_resize_grip(GTK_WINDOW(win), FALSE); #if UNIX gtk_window_set_resizable(GTK_WINDOW(win), FALSE); #endif #if WIN32 set_no_focus(win); #endif gtk_container_set_border_width (GTK_CONTAINER (win), 0); gtk_widget_realize (win); #if UNIX // GdkWindow *gdkwin = gtk_widget_get_window(win); set_no_focus(win); #else win32_init_win(win); #endif return win; }
void create_win0() { if (gwin0) return; #if _DEBUG && 0 dbg("create_win0\n"); #endif gwin0 = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_has_resize_grip(GTK_WINDOW(gwin0), FALSE); #if UNIX gtk_window_set_resizable(GTK_WINDOW(gwin0), FALSE); #endif #if WIN32 set_no_focus(gwin0); #endif gtk_container_set_border_width (GTK_CONTAINER (gwin0), 0); gtk_widget_realize (gwin0); #if UNIX GdkWindow *gdkwin0 = gtk_widget_get_window(gwin0); set_no_focus(gwin0); #else win32_init_win(gwin0); #endif }
void create_win_save_phrase(WSP_S *wsp, int wspN) { #if WIN32 if (test_mode) return; #endif if (!wspN) return; SAVE_SESS *sess = tzmalloc(SAVE_SESS, 1); GtkWidget *main_window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_has_resize_grip(GTK_WINDOW(main_window), FALSE); sess->win = main_window; gtk_window_set_default_size(GTK_WINDOW (main_window), 20, 10); gtk_window_set_title(GTK_WINDOW(main_window), _(_L("加片語到詞庫"))); #if 0 g_signal_connect (G_OBJECT (main_window), "delete_event", G_CALLBACK (delete_event), sess); #endif 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); char tt[512]; tt[0] = 0; wsp_str(wsp, wspN, tt); gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new(tt), FALSE, FALSE, 0); int i; for(i=0; i<wspN; i++) { if (ph_key_sz==2) strcat(tt, phokey_to_str(wsp[i].key)); strcat(tt, " "); } if (tt[0]) gtk_box_pack_start (GTK_BOX (vbox), gtk_label_new(tt), FALSE, FALSE, 0); sess->mywsp = tmemdup(wsp, WSP_S, wspN); sess->mywspN = wspN; GtkWidget *hbox_cancel_ok = gtk_hbox_new (FALSE, 10); gtk_box_pack_start (GTK_BOX (vbox), hbox_cancel_ok , FALSE, FALSE, 5); GtkWidget *button_ok = gtk_button_new_from_stock (GTK_STOCK_OK); gtk_box_pack_start (GTK_BOX (hbox_cancel_ok), button_ok, TRUE, TRUE, 5); GtkWidget *button_cancel = gtk_button_new_from_stock (GTK_STOCK_CANCEL); gtk_box_pack_start (GTK_BOX (hbox_cancel_ok), button_cancel, TRUE, TRUE, 0); sess->label_countdown = gtk_label_new(NULL); gtk_box_pack_start (GTK_BOX (vbox), sess->label_countdown, FALSE, FALSE, 5); #if 1 #if WIN32 set_no_focus(main_window); #endif gtk_widget_realize(main_window); #if UNIX set_no_focus(main_window); #else win32_init_win(main_window); #endif #endif // dbg("mmmmmmmmmmmmm\n"); GTK_WIDGET_SET_FLAGS (button_ok, GTK_CAN_DEFAULT); gtk_widget_grab_default (button_ok); #if 1 // dbg("main_window %x\n", main_window); g_signal_connect (G_OBJECT (button_cancel), "clicked", G_CALLBACK (close_win_save_phrase), sess); g_signal_connect (G_OBJECT (button_ok), "clicked", G_CALLBACK (cb_ok), sess); #endif gtk_window_present(GTK_WINDOW(main_window)); gtk_window_set_keep_above(GTK_WINDOW(main_window), TRUE); // gtk_window_set_modal(GTK_WINDOW(main_window), TRUE); sess->countdown = 3; disp_countdown(sess); sess->countdown_handle = g_timeout_add(1000, timeout_countdown, sess); gtk_widget_show_all(main_window); }
static void create_win_kbm() { gdk_color_parse("red", &red); gwin_kbm = create_no_focus_win(); gtk_container_set_border_width (GTK_CONTAINER (gwin_kbm), 0); GtkWidget *hbox_top = gtk_hbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (gwin_kbm), hbox_top); GtkWidget *vbox_l = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox_top), vbox_l, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox_l), 0); GtkWidget *vbox_r = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox_top), vbox_r, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox_r), 0); int i; for(i=0;i<keysN;i++) { GtkWidget *hboxl = gtk_hbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hboxl), 0); gtk_box_pack_start (GTK_BOX (vbox_l), hboxl, TRUE, TRUE, 0); GtkWidget *hboxr = gtk_hbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hboxr), 0); gtk_box_pack_start (GTK_BOX (vbox_r), hboxr, FALSE, FALSE, 0); KEY *pk = keys[i]; int j; for(j=0; pk[j].enkey; j++) { KEY *ppk=&pk[j]; char flag=ppk->flag; if (!ppk->keysym) continue; GtkWidget *but=pk[j].but=gtk_button_new(); g_signal_connect (G_OBJECT (but), "pressed", G_CALLBACK (cb_button_click), ppk); if (!(ppk->flag & K_HOLD)) g_signal_connect (G_OBJECT (but), "released", G_CALLBACK (cb_button_release), ppk); GtkWidget *hbox = (flag&K_AREA_R)?hboxr:hboxl; gtk_container_set_border_width (GTK_CONTAINER (but), 0); gboolean fill = (flag & K_FILL) > 0; gtk_box_pack_start (GTK_BOX (hbox), but, fill, fill, 0); GtkWidget *v = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (v), 0); gtk_container_add (GTK_CONTAINER (but), v); GtkWidget *laben = ppk->laben=gtk_label_new(_(ppk->enkey)); set_label_font_size(laben, gcin_font_size_win_kbm_en); gtk_box_pack_start (GTK_BOX (v), laben, fill, fill, 0); if (i>0&&i<5) { GtkWidget *lab = ppk->lab = gtk_label_new(" "); // set_label_font_size(lab, gcin_font_size_win_kbm); gtk_box_pack_start (GTK_BOX (v), lab, fill, fill, 0); } } } gtk_widget_realize (gwin_kbm); #if WIN32 win32_init_win(gwin_kbm); #else GdkWindow *gdkwin_kbm = gtk_widget_get_window(gwin_kbm); set_no_focus(gwin_kbm); #endif }
void create_win_sym() { if (!current_CS) { dbg("create_win_sym, null CS\n"); return; } if (current_CS->in_method < 0 || current_CS->in_method >= MAX_GTAB_NUM_KEY) { p_err("bad current_CS %d\n", current_CS->in_method); } if (current_method_type() != method_type_PHO && current_method_type() != method_type_TSIN && current_method_type() != method_type_ANTHY && !cur_inmd) return; if (read_syms() || cur_in_method != current_CS->in_method) { destory_win(); } else { if (!syms) return; } if (gwin_sym) { if (win_sym_enabled) show_win_sym(); else hide_win_sym(); return; } gwin_sym = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_has_resize_grip(GTK_WINDOW(gwin_sym), FALSE); #if WIN32 set_no_focus(gwin_sym); #endif cur_in_method = current_CS->in_method; GtkWidget *hbox_top = gtk_hbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (gwin_sym), hbox_top); GtkWidget *vbox_top = gtk_vbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (hbox_top), vbox_top, TRUE, TRUE, 0); gtk_container_set_border_width (GTK_CONTAINER (vbox_top), 0); int i; for(i=0; i < symsN; i++) { SYM_ROW *psym = &syms[i]; GtkWidget *hbox_row = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox_top), hbox_row, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox_row), 0); int j; for(j=0; j < psym->symN; j++) { char *str = psym->sym[j]; if (!str[0]) continue; GtkWidget *button = gtk_button_new(); GtkWidget *label = gtk_label_new(str); gtk_container_add(GTK_CONTAINER(button), label); set_label_font_size(label, gcin_font_size_symbol); gtk_container_set_border_width (GTK_CONTAINER (button), 0); gtk_box_pack_start (GTK_BOX (hbox_row), button, FALSE, FALSE, 0); if (utf8_str_N(str) > 0) { char phos[512]; sym_lookup_key(str, phos); int phos_len = strlen(phos); if (phos_len) { #if GTK_CHECK_VERSION(2,12,0) gtk_widget_set_tooltip_text (button, phos); #else GtkTooltips *button_pho_tips = gtk_tooltips_new (); gtk_tooltips_set_tip (GTK_TOOLTIPS (button_pho_tips), button, phos, NULL); #endif } } g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (cb_button_sym), label); } } gtk_box_pack_start (GTK_BOX (hbox_top), gtk_vseparator_new(), FALSE, FALSE, 0); GtkWidget *vbox_arrow = gtk_vbox_new (TRUE, 0); gtk_box_pack_start (GTK_BOX (hbox_top), vbox_arrow, TRUE, TRUE, 0); GtkWidget *eve_up=gtk_event_box_new(), *eve_down=gtk_event_box_new(); gtk_box_pack_start (GTK_BOX (vbox_arrow), eve_up, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(eve_up), gtk_arrow_new(GTK_ARROW_UP, GTK_SHADOW_IN)); gtk_box_pack_start (GTK_BOX (vbox_arrow), eve_down, TRUE, TRUE, 0); gtk_container_add(GTK_CONTAINER(eve_down), gtk_arrow_new(GTK_ARROW_DOWN, GTK_SHADOW_IN)); g_signal_connect(G_OBJECT(eve_up),"button-press-event", G_CALLBACK(mouse_button_callback_up_down), (gpointer)1); g_signal_connect(G_OBJECT(eve_down),"button-press-event", G_CALLBACK(mouse_button_callback_up_down), NULL); gtk_widget_realize (gwin_sym); #if UNIX GdkWindow *gdkwin_sym = gtk_widget_get_window(gwin_sym); set_no_focus(gwin_sym); #else win32_init_win(gwin_sym); #endif if (win_sym_enabled) gtk_widget_show_all(gwin_sym); g_signal_connect (G_OBJECT (gwin_sym), "scroll-event", G_CALLBACK (button_scroll_event), NULL); move_win_sym(); #if 0 dbg("in_method:%d\n", current_CS->in_method); #endif return; }