X-Git-Url: http://git.chise.org/gitweb/?a=blobdiff_plain;f=src%2Finput-gui.c;h=9843be90a2f1b874fed04742183917d0a9a00991;hb=9d7ee19cc55a52fb74e149402f20a5c4c7b0650a;hp=69b58427cfccc744fd8c42c76672c43adf519af8;hpb=5a54afdf077c8b925d8d7c7865be94a107cfe08a;p=m17n%2Fm17n-lib.git diff --git a/src/input-gui.c b/src/input-gui.c index 69b5842..9843be9 100644 --- a/src/input-gui.c +++ b/src/input-gui.c @@ -1,5 +1,5 @@ /* input-gui.c -- gui-based input method module. - Copyright (C) 2003, 2004 + Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 National Institute of Advanced Industrial Science and Technology (AIST) Registration Number H15PRO112 @@ -17,7 +17,7 @@ You should have received a copy of the GNU Lesser General Public License along with the m17n library; if not, write to the Free - Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA + Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 02111-1307, USA. */ /***en @@ -310,7 +310,7 @@ win_callback (MInputContext *ic, MSymbol command) if (ic->im->language != Mnil) mtext_put_prop (ic->preedit, 0, mtext_nchars (ic->preedit), Mlanguage, ic->im->language); - if (ic->candidate_list) + if (ic->candidate_list && ic->candidate_show) mtext_push_prop (ic->preedit, ic->candidate_from, ic->candidate_to, Mface, mface_reverse_video); if (mtext_nchars (ic->produced) == 0) @@ -419,23 +419,23 @@ win_callback (MInputContext *ic, MSymbol command) } else if (command == Minput_set_spot) { - minput__callback (ic, Minput_preedit_draw); - minput__callback (ic, Minput_status_draw); - minput__callback (ic, Minput_candidates_draw); + minput_callback (ic, Minput_preedit_draw); + minput_callback (ic, Minput_status_draw); + minput_callback (ic, Minput_candidates_draw); } else if (command == Minput_toggle) { if (ic->active) { - minput__callback (ic, Minput_preedit_done); - minput__callback (ic, Minput_status_done); - minput__callback (ic, Minput_candidates_done); + minput_callback (ic, Minput_preedit_done); + minput_callback (ic, Minput_status_done); + minput_callback (ic, Minput_candidates_done); } else { - minput__callback (ic, Minput_preedit_start); - minput__callback (ic, Minput_status_start); - minput__callback (ic, Minput_candidates_start); + minput_callback (ic, Minput_preedit_start); + minput_callback (ic, Minput_status_start); + minput_callback (ic, Minput_candidates_start); } } else if (command == Minput_preedit_start) @@ -487,8 +487,8 @@ win_callback (MInputContext *ic, MSymbol command) if (minput_default_driver.callback_list && (func = ((MInputCallbackFunc) - mplist_get (minput_default_driver.callback_list, - Minput_reset)))) + mplist_get_func (minput_default_driver.callback_list, + Minput_reset)))) { MInputContextInfo *ic_info = (MInputContextInfo *) win_ic_info->ic_info; @@ -497,11 +497,11 @@ win_callback (MInputContext *ic, MSymbol command) ic->info = win_ic_info; } if (ic->preedit_changed) - minput__callback (ic, Minput_preedit_draw); + minput_callback (ic, Minput_preedit_draw); if (ic->status_changed) - minput__callback (ic, Minput_status_draw); + minput_callback (ic, Minput_status_draw); if (ic->candidates_changed) - minput__callback (ic, Minput_candidates_draw); + minput_callback (ic, Minput_candidates_draw); } } @@ -533,21 +533,21 @@ minput__win_init () MPlist *plist = mplist (); minput_gui_driver.callback_list = plist; - plist = mplist_add (plist, Minput_preedit_start, (void *) win_callback); - plist = mplist_add (plist, Minput_preedit_draw, (void *) win_callback); - plist = mplist_add (plist, Minput_preedit_done, (void *) win_callback); - plist = mplist_add (plist, Minput_status_start, (void *) win_callback); - plist = mplist_add (plist, Minput_status_draw, (void *) win_callback); - plist = mplist_add (plist, Minput_status_done, (void *) win_callback); - plist = mplist_add (plist, Minput_candidates_start, (void *) win_callback); - plist = mplist_add (plist, Minput_candidates_draw, (void *) win_callback); - plist = mplist_add (plist, Minput_candidates_done, (void *) win_callback); - plist = mplist_add (plist, Minput_set_spot, (void *) win_callback); - plist = mplist_add (plist, Minput_toggle, (void *) win_callback); - plist = mplist_add (plist, Minput_reset, (void *) win_callback); + mplist_put_func (plist, Minput_preedit_start, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_preedit_draw, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_preedit_done, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_status_start, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_status_draw, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_status_done, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_candidates_start, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_candidates_draw, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_candidates_done, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_set_spot, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_toggle, M17N_FUNC (win_callback)); + mplist_put_func (plist, Minput_reset, M17N_FUNC (win_callback)); } #if 0 - /* This will make a caller of minput_method_open() pazzled. */ + /* This will make the caller of minput_method_open() pazzled. */ minput_driver = &minput_gui_driver; #endif @@ -683,12 +683,12 @@ MSymbol Mxim; the byte is bitwise anded by 0x1F and the Control modifier is cleared. - If $EVENT still has modifiers, the name is preceded by "H-" - (Hyper), "s-" (Super), "A-" (Alt), "M-" (Meta), "C-" (Control), - and/or "S-" (Shift) in this order. + If $EVENT still has modifiers, the name is preceded by "S-" + (Shift), "C-" (Control), "M-" (Meta), "A-" (Alt), "G-" (AltGr), + "s-" (Super), and "H-" (Hyper) in this order. For instance, if the keysym name is "a" and the event has Shift, - Meta, and Hyper modifiers, the resulting name is "H-M-A". + Meta, and Hyper modifiers, the resulting name is "M-H-A". At last, a symbol who has the name is returned. */ @@ -712,11 +712,11 @@ MSymbol Mxim; 0x1F ¤È¤ò¥Ó¥Ã¥Èñ°Ì¤Ç and ±é»»¤·¡¢Control ¥â¥Ç¥£¥Õ¥¡¥¤¥¢¤Ï¼è¤ê½ü¤«¤ì¤ë¡£ ¤½¤ì¤Ç¤â $EVENT ¤Ë¤Þ¤À¥â¥Ç¥£¥Õ¥¡¥¤¥¢¤¬¤¢¤ì¤Ð¡¢Ì¾Á°¤ÎÁ°¤Ë¤½¤ì¤¾¤ì - "H-" (Hyper), "s-" (Super), "A-" (Alt), "M-" (Meta), "C-" - (Control), "S-" (Shift) ¤¬¤³¤Î½çÈÖ¤ÇÉÕ¤¯¡£ + "S-" (Shift), "C-" (Control), "M-" (Meta), "A-" (Alt), , "G-" (AltGr), + "s-" (Super), "H-" (Hyper)¤¬¤³¤Î½çÈÖ¤ÇÉÕ¤¯¡£ ¤¿¤È¤¨¤Ð¡¢keysym ̾¤¬ "a" ¤Ç¥¤¥Ù¥ó¥È¤¬ Shift, Meta, and Hyper - ¥â¥Ç¥£¥Õ¥¡¥¤¥¢¤ò»ý¤Æ¤Ð¡¢ÆÀ¤é¤ì¤ë̾Á°¤Ï "H-M-A" ¤Ç¤¢¤ë¡£ + ¥â¥Ç¥£¥Õ¥¡¥¤¥¢¤ò»ý¤Æ¤Ð¡¢ÆÀ¤é¤ì¤ë̾Á°¤Ï "M-H-A" ¤Ç¤¢¤ë¡£ ºÇ¸å¤Ë¤½¤Î̾Á°¤ò»ý¤Ä¥·¥ó¥Ü¥ë¤òÊÖ¤¹¡£*/ @@ -734,7 +734,7 @@ minput_event_to_key (MFrame *frame, void *event) return key; name = msymbol_name (key); - str = alloca (strlen (name) + 2 * 6 + 1); + str = alloca (strlen (name) + 2 * 8 + 1); str[0] = '\0'; if (modifiers & MINPUT_KEY_SHIFT_MODIFIER) strcat (str, "S-"); @@ -744,6 +744,8 @@ minput_event_to_key (MFrame *frame, void *event) strcat (str, "M-"); if (modifiers & MINPUT_KEY_ALT_MODIFIER) strcat (str, "A-"); + if (modifiers & MINPUT_KEY_ALTGR_MODIFIER) + strcat (str, "G-"); if (modifiers & MINPUT_KEY_SUPER_MODIFIER) strcat (str, "s-"); if (modifiers & MINPUT_KEY_HYPER_MODIFIER)