void change_win1_font() { int i; if (!frame) return; GdkColor fg; gdk_color_parse(gcin_win_color_fg, &fg); #if GTK_CHECK_VERSION(2,91,6) GdkRGBA rgbfg; gdk_rgba_parse(&rgbfg, gdk_color_to_string(&fg)); #endif for(i=0; i < wselkeyN; i++) { set_label_font_size(labels_sele[i], gcin_font_size_tsin_presel); set_label_font_size(labels_seleR[i], gcin_font_size_tsin_presel); #if !GTK_CHECK_VERSION(2,91,6) if (labels_sele[i]) gtk_widget_modify_fg(labels_sele[i], GTK_STATE_NORMAL, gcin_win_color_use?&fg:NULL); if (labels_seleR[i]) gtk_widget_modify_fg(labels_seleR[i], GTK_STATE_NORMAL, gcin_win_color_use?&fg:NULL); #else if (labels_sele[i]) gtk_widget_override_color(labels_sele[i], GTK_STATE_FLAG_NORMAL, gcin_win_color_use?&rgbfg:NULL); if (labels_seleR[i]) gtk_widget_override_color(labels_seleR[i], GTK_STATE_FLAG_NORMAL, gcin_win_color_use?&rgbfg:NULL); #endif change_win_bg(eve_sele[i]); if (eve_seleR[i]) change_win_bg(eve_seleR[i]); } change_win_bg(gwin1); }
void change_pho_font_size() { if (!top_bin) return; set_label_font_size(label_pho, hime_font_size_tsin_pho_in); set_label_font_size(label_pho_sele, hime_font_size); change_win_fg_bg(gwin_pho, label_pho_sele); }
void disp_char(int index, char *ch) { if (gcin_edit_display_ap_only()) return; if (!top_bin) return; // dbg("disp_char %d %s\n", index, ch); create_char(index); GtkWidget *label = chars[index].label; if (label) { if (ch[0]==' ' && ch[1]==' ') set_label_space(label); else { gtk_label_set_text(GTK_LABEL(label), ch); } } #if GTK_CHECK_VERSION(3,0,0) // bug in gtk3 set_label_font_size(label, gcin_font_size); #endif get_win0_geom(); if (win_x + win_xl >= dpy_xl) move_win0(dpy_xl - win_xl, win_y); gtk_widget_show_all(chars[index].vbox); }
static void set_kbm_key(KeySym keysym, char *str) { if (!gwin_kbm) return; #if 0 if (strlen(str)==1 && !(str[0] & 0x80)) return; #endif KEY *p = get_keys_ent(keysym); if (!p) return; GtkWidget *lab = p->lab; char *t = (char *)gtk_label_get_text(GTK_LABEL(lab)); char tt[64]; if (t && strcmp(t, str)) { strcat(strcpy(tt, t), str); str = tt; } if (lab) { gtk_label_set_text(GTK_LABEL(lab), str); set_label_font_size(lab, gcin_font_size_win_kbm); } }
void change_gtab_font_size() { if (!label_gtab_sele) return; set_label_font_size(label_gtab_sele, hime_font_size); set_label_font_size(label_gtab_pre_sel, hime_font_size_tsin_presel); set_label_font_size(label_edit, hime_font_size); set_label_font_size(label_gtab, hime_font_size_gtab_in); set_disp_im_name(); change_win_fg_bg(gwin_gtab, label_gtab_sele); }
static void create_char(int index) { int i; // dbg("create_char %d\n", index); if (!hbox_edit) { dbg("create_char: !hbox_edit\n"); return; } GdkColor fg; gdk_color_parse(gcin_win_color_fg, &fg); GdkColor color_bg; gdk_color_parse(tsin_phrase_line_color, &color_bg); i = index; { if (chars[i].vbox) return; GtkWidget *event_box = gtk_event_box_new(); gtk_event_box_set_visible_window (GTK_EVENT_BOX(event_box), FALSE); chars[i].vbox = event_box; g_signal_connect (G_OBJECT (event_box), "button-press-event", G_CALLBACK (mouse_char_callback), GINT_TO_POINTER(index)); gtk_box_pack_start (GTK_BOX (hbox_edit), event_box, FALSE, FALSE, 0); GtkWidget *vbox = gtk_vbox_new (FALSE, 0); gtk_container_add(GTK_CONTAINER(event_box), vbox); GtkWidget *label = gtk_label_new(NULL); gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0); set_label_font_size(label, gcin_font_size); chars[i].label = label; if (gcin_win_color_use) { #if !GTK_CHECK_VERSION(2,91,6) gtk_widget_modify_fg(label, GTK_STATE_NORMAL, &fg); #else GdkRGBA rgbfg; gdk_rgba_parse(&rgbfg, gdk_color_to_string(&fg)); gtk_widget_override_color(label, GTK_STATE_FLAG_NORMAL, &rgbfg); #endif } gtk_widget_show_all(event_box); } }
void change_tsin_font_size() { if (!top_bin) return; GdkColor fg; gdk_color_parse(gcin_win_color_fg, &fg); set_label_font_size(label_pho, gcin_font_size_tsin_pho_in); int i; for(i=0; i < MAX_PH_BF_EXT; i++) { GtkWidget *label = chars[i].label; if (!label) continue; set_label_font_size(label, gcin_font_size); if (gcin_win_color_use) { #if !GTK_CHECK_VERSION(2,91,6) gtk_widget_modify_fg(label, GTK_STATE_NORMAL, &fg); #else GdkRGBA rgbfg; gdk_rgba_parse(&rgbfg, gdk_color_to_string(&fg)); gtk_widget_override_color(label, GTK_STATE_FLAG_NORMAL, &rgbfg); #endif } } compact_win0(); // change_win1_font(); set_win0_bg(); // change_tsin_line_color(); }
static void create_win0_gui() { if (top_bin) return; GtkWidget *vbox_top = gtk_vbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (gwin0), 0); if (gcin_inner_frame) { GtkWidget *frame; top_bin = frame = gtk_frame_new(NULL); gtk_container_set_border_width (GTK_CONTAINER (frame), 0); gtk_container_add (GTK_CONTAINER(gwin0), frame); gtk_container_add (GTK_CONTAINER (frame), vbox_top); } else { top_bin = vbox_top; gtk_container_add (GTK_CONTAINER (gwin0), vbox_top); } bzero(chars, sizeof(chars)); GtkWidget *hbox_row1 = gtk_hbox_new (FALSE, 0); /* This packs the button into the gwin0 (a gtk container). */ gtk_box_pack_start (GTK_BOX (vbox_top), hbox_row1, FALSE, FALSE, 0); hbox_edit = gtk_hbox_new (FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (hbox_edit), 0); /* This packs the button into the gwin0 (a gtk container). */ gtk_box_pack_start (GTK_BOX (hbox_row1), hbox_edit, FALSE, FALSE, 0); create_cursor_attr(); button_pho = gtk_button_new(); gtk_container_set_border_width (GTK_CONTAINER (button_pho), 0); gtk_box_pack_start (GTK_BOX (hbox_row1), button_pho, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(button_pho),"button-press-event", G_CALLBACK(mouse_button_callback), NULL); #if GTK_CHECK_VERSION(2,18,0) gtk_widget_set_can_focus(button_pho, FALSE); gtk_widget_set_can_default(button_pho, FALSE); #else GTK_WIDGET_UNSET_FLAGS(button_pho, GTK_CAN_FOCUS|GTK_CAN_DEFAULT); #endif if (left_right_button_tips) { #if GTK_CHECK_VERSION(2,12,0) gtk_widget_set_tooltip_text (button_pho, _(_L("左鍵符號,右鍵設定"))); #else GtkTooltips *button_pho_tips = gtk_tooltips_new (); gtk_tooltips_set_tip (GTK_TOOLTIPS (button_pho_tips), button_pho, _(_L("左鍵符號,右鍵設定")),NULL); #endif } label_pho = gtk_label_new(""); set_label_font_size(label_pho, gcin_font_size_tsin_pho_in); gtk_container_add (GTK_CONTAINER (button_pho), label_pho); clr_in_area_pho_tsin(); gtk_widget_show_all (gwin0); // gdk_flush(); gtk_widget_hide(gwin0); init_tsin_selection_win(); set_win0_bg(); // change_win1_font(); }
void update_win_kbm() { if (!current_CS || !gwin_kbm) return; clear_kbm(); if (current_CS->im_state != GCIN_STATE_CHINESE) { if (current_CS->im_state == GCIN_STATE_DISABLED) { int i; for(i=0;i<keysN;i++) { int j; for(j=0;j<COLN;j++) { char kstr[2]; kstr[1]=0; kstr[0] = keys[i][j].shift_key; if (keys[i][j].laben) { if (kstr[0]) gtk_label_set_text(GTK_LABEL(keys[i][j].laben), kstr); set_label_font_size(keys[i][j].laben, gcin_font_size_win_kbm_en); } if (keys[i][j].lab) { if (kstr[0]) gtk_label_set_text(GTK_LABEL(keys[i][j].lab), _(keys[i][j].enkey)); set_label_font_size(keys[i][j].lab, gcin_font_size_win_kbm_en); } } } } goto ret; } int i; switch (current_method_type()) { case method_type_PHO: case method_type_TSIN: for(i=0; i < 128; i++) { int j; char tt[64]; int ttN=0; for(j=0;j<3; j++) { int num = phkbm.phokbm[i][j].num; int typ = phkbm.phokbm[i][j].typ; if (!num) continue; ttN+= utf8cpy(&tt[ttN], &pho_chars[typ][num * 3]); } if (!ttN) continue; set_kbm_key(i, tt); } disp_shift_keys(); break; case method_type_MODULE: break; default: if (!cur_inmd || !cur_inmd->DefChars) return; int loop; for(loop=0;loop<2;loop++) for(i=127; i > 0; i--) { char tt[64]; char k=cur_inmd->keymap[i]; if (!k) continue; char *keyname = &cur_inmd->keyname[k * CH_SZ]; if (!keyname[0]) continue; #if 0 if (loop==0 && !(keyname[0]&0x80)) #else if (loop==0 && !(keyname[0]&0x80) && toupper(i)==toupper(keyname[0])) #endif continue; if (loop==1) { KEY *p = get_keys_ent(i); char *t = (char *)gtk_label_get_text(GTK_LABEL(p->lab)); if (t && t[0]) { continue; } } tt[0]=0; if (keyname[0] & 128) utf8cpy(tt, keyname); else { tt[1]=0; memcpy(tt, keyname, 2); tt[2]=0; } // dbg("%c '%s'\n", i, tt); set_kbm_key(i, tt); } disp_shift_keys(); break; } ret: gtk_window_resize(GTK_WINDOW(gwin_kbm), 1, 1); move_win_kbm(); }
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_gtab_gui_simple() { // dbg("create_win_gtab_gui ..... %d, %d\n", current_CS->use_preedit, hime_edit_display); destroy_if_necessary(); if (top_bin) return; // dbg("create_win_gtab_gui_simple\n"); last_cursor_off = FALSE; GtkWidget *vbox_top = gtk_vbox_new (FALSE, 0); gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox_top), GTK_ORIENTATION_VERTICAL); GtkWidget *event_box_gtab; if (gtab_in_area_button) { event_box_gtab = gtk_button_new(); #if 0 GtkStyle *style = gtk_widget_get_style(event_box_gtab); style->xthickness =0; style->ythickness =0; #endif } else { event_box_gtab = gtk_event_box_new(); gtk_event_box_set_visible_window (GTK_EVENT_BOX(event_box_gtab), FALSE); } gtk_container_set_border_width (GTK_CONTAINER (event_box_gtab), 0); if (hime_inner_frame) { GtkWidget *frame = top_bin = gtk_frame_new(NULL); gtk_container_set_border_width (GTK_CONTAINER (frame), 0); gtk_container_add (GTK_CONTAINER(gwin_gtab), frame); gtk_container_set_border_width (GTK_CONTAINER (gwin_gtab), 0); gtk_container_add (GTK_CONTAINER (frame), vbox_top); gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_ETCHED_OUT); } else { gtk_container_add (GTK_CONTAINER(gwin_gtab), vbox_top); top_bin = vbox_top; } GtkWidget *hbox_edit = NULL; gboolean b_need_label_edit = need_label_edit(); if (b_need_label_edit) { hbox_edit = gtk_hbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (vbox_top), hbox_edit); GtkWidget *align_edit = gtk_alignment_new (0, 0.0, 0, 0); gtk_box_pack_start (GTK_BOX (hbox_edit), align_edit, FALSE, FALSE, 0); label_edit = gtk_label_new(NULL); gtk_container_add (GTK_CONTAINER (align_edit), label_edit); } GtkWidget *align = gtk_alignment_new (0, 0.0, 0, 0); label_gtab_sele = gtk_label_new(NULL); gtk_container_add (GTK_CONTAINER (align), label_gtab_sele); if (!gtab_in_row1) { if (!gtab_vertical_select_on()) gtk_box_pack_start (GTK_BOX (vbox_top), align, FALSE, FALSE, 0); } else { GtkWidget *hbox_row1 = gtk_hbox_new (FALSE, 0); gtk_box_pack_start (GTK_BOX (vbox_top), hbox_row1, FALSE, FALSE, 0); // dbg("zzz %d zzz %d %d\n", b_need_label_edit, gtab_phrase_on(), hime_edit_display_ap_only()); if (b_need_label_edit) { last_cursor_off = TRUE; gtk_box_pack_start (GTK_BOX (hbox_edit), event_box_gtab, FALSE, FALSE, 0); } else gtk_box_pack_start (GTK_BOX (hbox_row1), event_box_gtab, FALSE, FALSE, 0); if (!gtab_vertical_select_on()) gtk_box_pack_start (GTK_BOX (hbox_row1), align, FALSE, FALSE, 0); } if (gtab_phrase_pre_select && !use_tsin_sel_win()) { label_gtab_pre_sel = gtk_label_new(NULL); set_label_font_size(label_gtab_pre_sel, hime_font_size_tsin_presel); gtk_box_pack_start (GTK_BOX (vbox_top), label_gtab_pre_sel, FALSE, FALSE, 0); } hbox_row2 = gtk_hbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER (vbox_top), hbox_row2); label_full = gtk_label_new(NULL); gtk_label_set_markup(GTK_LABEL(label_full), _(cht_full_str)); gtk_box_pack_start (GTK_BOX (hbox_row2), label_full, FALSE, FALSE, 0); if (gtab_disp_im_name) { GtkWidget *event_box_input_method_name; if (gtab_in_area_button) event_box_input_method_name = gtk_button_new(); else { event_box_input_method_name = gtk_event_box_new(); gtk_event_box_set_visible_window (GTK_EVENT_BOX(event_box_input_method_name), FALSE); } gtk_box_pack_start (GTK_BOX (hbox_row2), event_box_input_method_name, FALSE, FALSE, 0); gtk_container_set_border_width (GTK_CONTAINER (event_box_input_method_name), 0); GtkWidget *frame_input_method_name = NULL; if (!gtab_in_area_button) { frame_input_method_name = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame_input_method_name), GTK_SHADOW_OUT); gtk_container_add (GTK_CONTAINER (event_box_input_method_name), frame_input_method_name); gtk_container_set_border_width (GTK_CONTAINER (frame_input_method_name), 0); } label_input_method_name = gtk_label_new(""); // dbg("gtk_label_new label_input_method_name\n"); gtk_container_add (GTK_CONTAINER (gtab_in_area_button?event_box_input_method_name:frame_input_method_name), label_input_method_name); g_signal_connect_swapped (GTK_OBJECT (event_box_input_method_name), "button-press-event", G_CALLBACK (inmd_switch_popup_handler), NULL); box_gtab_im_name = event_box_input_method_name; } if (!gtab_in_row1) gtk_box_pack_start (GTK_BOX (hbox_row2), event_box_gtab, FALSE, FALSE, 0); if (!hime_display_on_the_spot_key()) { GtkWidget *frame_gtab = NULL; if (!gtab_in_area_button) { frame_gtab = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame_gtab), GTK_SHADOW_OUT); gtk_container_set_border_width (GTK_CONTAINER (frame_gtab), 0); gtk_container_add (GTK_CONTAINER (event_box_gtab), frame_gtab); } g_signal_connect(G_OBJECT(event_box_gtab),"button-press-event", G_CALLBACK(mouse_button_callback), NULL); #if 0 if (left_right_button_tips) { #if GTK_CHECK_VERSION(2,12,0) gtk_widget_set_tooltip_text (event_box_gtab, _("左鍵符號,右鍵設定")); #else GtkTooltips *button_gtab_tips = gtk_tooltips_new (); gtk_tooltips_set_tip (GTK_TOOLTIPS (button_gtab_tips), event_box_gtab, _("左鍵符號,右鍵設定"),NULL); #endif } #endif label_gtab = gtk_label_new(NULL); if (gtab_in_area_button) gtk_container_add (GTK_CONTAINER (event_box_gtab), label_gtab); else gtk_container_add (GTK_CONTAINER (frame_gtab), label_gtab); } label_key_codes = gtk_label_new(NULL); #if 0 gtk_label_set_selectable(GTK_LABEL(label_key_codes), TRUE); mod_bg_all(label_key_codes, NULL); #endif gtk_box_pack_start (GTK_BOX (hbox_row2), label_key_codes, FALSE, FALSE, 2); label_page = gtk_label_new(NULL); gtk_box_pack_start (GTK_BOX (hbox_row2), label_page, FALSE, FALSE, 2); if (gtab_vertical_select_on()) { gtk_box_pack_start (GTK_BOX (vbox_top), align, FALSE, FALSE, 0); } change_gtab_font_size(); gtk_widget_show_all (gwin_gtab); gtk_widget_hide (gwin_gtab); gtk_widget_hide(label_gtab_sele); gtk_widget_hide(label_key_codes); gtk_widget_hide(label_page); if (label_gtab_pre_sel) gtk_widget_hide(label_gtab_pre_sel); show_hide_label_edit(); set_disp_im_name(); gtk_widget_hide(label_full); if (gtab_hide_row2) gtk_widget_hide(hbox_row2); minimize_win_gtab(); }
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; }
void create_win1_gui() { if (frame) return; // dbg("create_win1_gui %s\n", wselkey); win1_rowN = (wselkeyN + pho_candicate_col_N - 1 ) / pho_candicate_col_N; frame = gtk_frame_new(NULL); gtk_container_add (GTK_CONTAINER(gwin1), frame); GtkWidget *vbox_top = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER(frame), vbox_top); GtkWidget *eve_box_up = gtk_event_box_new(); gtk_event_box_set_visible_window (GTK_EVENT_BOX(eve_box_up), FALSE); gtk_box_pack_start (GTK_BOX (vbox_top), eve_box_up, FALSE, FALSE, 0); arrow_up = gtk_arrow_new (GTK_ARROW_UP, GTK_SHADOW_IN); gtk_container_add(GTK_CONTAINER(eve_box_up), arrow_up); g_signal_connect (G_OBJECT (eve_box_up), "button-press-event", G_CALLBACK (cb_arrow_up), NULL); int c_rowN = (wselkeyN + pho_candicate_col_N - 1) / pho_candicate_col_N * pho_candicate_col_N; int tablecolN = pho_candicate_col_N; if (!tsin_tail_select_key) tablecolN *= 2; c_config = current_config(); GtkWidget *table = gtk_table_new(c_rowN, tablecolN, FALSE); gtk_box_pack_start (GTK_BOX (vbox_top), table, FALSE, FALSE, 0); int i; for(i=0; i < wselkeyN; i++) { int y = idx_to_y(i); int x = idx_to_x(i); if (!tsin_tail_select_key) x*=2; GtkWidget *align = gtk_alignment_new(0,0,0,0); gtk_table_attach_defaults(GTK_TABLE(table),align, x,x+1,y,y+1); GtkWidget *event_box_pho = gtk_event_box_new(); gtk_event_box_set_visible_window (GTK_EVENT_BOX(event_box_pho), FALSE); GtkWidget *label = gtk_label_new(NULL); gtk_container_add (GTK_CONTAINER (event_box_pho), label); labels_sele[i] = label; eve_sele[i] = event_box_pho; gtk_container_add (GTK_CONTAINER (align), event_box_pho); gtk_label_set_justify(GTK_LABEL(labels_sele[i]),GTK_JUSTIFY_LEFT); set_label_font_size(labels_sele[i], gcin_font_size_tsin_presel); g_signal_connect(G_OBJECT(event_box_pho),"button-press-event", G_CALLBACK(mouse_button_callback), GINT_TO_POINTER(i)); if (!tsin_tail_select_key) { GtkWidget *alignR = gtk_alignment_new(0,0,0,0); gtk_table_attach_defaults(GTK_TABLE(table), alignR, x+1,x+2,y,y+1); GtkWidget *event_box_phoR = gtk_event_box_new(); gtk_event_box_set_visible_window (GTK_EVENT_BOX(event_box_phoR), FALSE); GtkWidget *labelR = gtk_label_new(NULL); gtk_container_add (GTK_CONTAINER (event_box_phoR), labelR); labels_seleR[i] = labelR; eve_seleR[i] = event_box_phoR; gtk_container_add (GTK_CONTAINER (alignR), event_box_phoR); gtk_label_set_justify(GTK_LABEL(labels_sele[i]),GTK_JUSTIFY_LEFT); set_label_font_size(labels_seleR[i], gcin_font_size_tsin_presel); g_signal_connect(G_OBJECT(event_box_phoR),"button-press-event", G_CALLBACK(mouse_button_callback), GINT_TO_POINTER(i)); } } GtkWidget *eve_box_down = gtk_event_box_new(); gtk_event_box_set_visible_window (GTK_EVENT_BOX(eve_box_down), FALSE); gtk_box_pack_start (GTK_BOX (vbox_top), eve_box_down, FALSE, FALSE, 0); arrow_down = gtk_arrow_new (GTK_ARROW_DOWN, GTK_SHADOW_IN); gtk_container_add(GTK_CONTAINER(eve_box_down), arrow_down); g_signal_connect (G_OBJECT (eve_box_down), "button-press-event", G_CALLBACK (cb_arrow_down), NULL); gtk_widget_show_all(gwin1); // gdk_flush(); gtk_widget_hide(gwin1); change_win1_font(); }