Changeset 3910

Show
Ignore:
Timestamp:
10/14/05 13:32:16 (3 years ago)
Author:
horiguti
Message:

Experimental.
Automatic IME setup. (Now only for japanese environment.)

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/lisp/ChangeLog.Meadow

    r3907 r3910  
     12005-10-14  Kyotaro HORIGUCHI  <horiguti@meadowy.org> 
     2 
     3        * international/meadow.el (mw32-locale-ime-alist): New alist. 
     4        (mw32-set-ime-if-available): New function. 
     5 
     6        * international/mule-cmds.el (set-language-environment-hook): Set 
     7        mw32-set-ime-if-available on Meadow. 
     8 
    192005-10-13  Kyotaro HORIGUCHI  <horiguti@meadowy.org> 
    210 
  • trunk/lisp/international/meadow.el

    r3907 r3910  
    310310    ("Korean" . korean-iso-8bit))) 
    311311 
     312;; This is temporal solution. 
     313(defvar mw32-locale-ime-alist 
     314  '((("japanese" . 1041) . "MW32-IME"))) 
     315;;    (("korean-hangul" . 1042) . "MW32-IME"))) 
     316 
     317(defun mw32-set-ime-if-available () 
     318  (let ((ime (assoc (cons default-input-method (mw32-input-language-code)) 
     319                    mw32-locale-ime-alist))) 
     320    (if (and ime (mw32-ime-available)) 
     321        (setq default-input-method (cdr ime))))) 
     322 
    312323;; 
    313324;; IME state indicator 
  • trunk/lisp/international/mule-cmds.el

    r3894 r3910  
    16231623 
    16241624  
    1625 (defvar set-language-environment-hook nil 
     1625(defvar set-language-environment-hook  
     1626  (eval-when-compile 
     1627    (if (featurep 'meadow) 
     1628        'mw32-set-ime-if-available 
     1629      nil)) 
    16261630  "Normal hook run after some language environment is set. 
    16271631 
  • trunk/src/ChangeLog.Meadow

    r3909 r3910  
     12005-10-14  Kyotaro HORIGUCHI  <horiguti@meadowy.org> 
     2 
     3        * mw32term.c (mw32_load_cursor): New external function. 
     4 
     5        * mw32ime.c (ImmIsIMEProc): New Win32 API. 
     6        (mw32-ime-available): New function. 
     7        (mw32-input-langunage-code): New function. 
     8 
    192005-10-14  Hideyuki SHIRAI  <shirai@meadowy.org> 
    210 
  • trunk/src/mw32ime.c

    r3871 r3910  
    142142typedef DWORD (WINAPI *IMMGETHOTKEYPROC)(DWORD , LPUINT, LPUINT, LPHKL); 
    143143IMMGETHOTKEYPROC ImmGetHotKeyProc; 
     144typedef BOOL (WINAPI *IMMISIMEPROC)(HKL); 
     145IMMISIMEPROC ImmIsIMEProc; 
    144146 
    145147extern Lisp_Object Vime_control; 
     
    473475                        "ImmGetHotKey"); 
    474476 
     477      ImmIsIMEProc = 
     478        (IMMISIMEPROC) 
     479        GetProcAddress (hImm32, 
     480                        "ImmIsIME"); 
     481 
    475482      if (ImmGetOpenStatusProc && 
    476483          ImmSetOpenStatusProc && 
     
    491498          ImmGetCandidateListProc && 
    492499          ImmGetCandidateListCountProc && 
    493           ImmGetHotKeyProc) 
     500          ImmGetHotKeyProc && 
     501          ImmIsIMEProc) 
    494502        { 
    495503          fIME = TRUE; 
     
    706714  Emacs Lisp function entries 
    707715*/ 
     716 
     717DEFUN ("mw32-ime-available", Fmw32_ime_available, Smw32_ime_available, 
     718       0, 0, 0, 
     719       doc: /* Non nil if input locale has IME. */) 
     720  () 
     721{ 
     722  return (fIME 
     723          && ImmIsIMEProc (GetKeyboardLayout (0)) ? Qt : Qnil); 
     724} 
     725 
     726DEFUN ("mw32-input-language-code", 
     727       Fmw32_input_language_code, Smw32_input_language_code, 
     728       0, 0, 0, 
     729       doc: /* Return input language code. 
     730This is lower 16 bit value of GetKeyboardLayout (0). */) 
     731  () 
     732{ 
     733  return (make_number (((int)GetKeyboardLayout (0)) & 0xffff)); 
     734} 
    708735 
    709736DEFUN ("fep-force-on", Ffep_force_on, Sfep_force_on, 0, 1, 0, 
     
    15551582  DEFVAR_LISP ("ime-control", &Vime_control, doc: /* IME control flag  */); 
    15561583 
     1584  defsubr (&Smw32_ime_available); 
     1585  defsubr (&Smw32_input_language_code); 
    15571586  defsubr (&Sfep_force_on); 
    15581587  defsubr (&Sfep_force_off); 
  • trunk/src/mw32term.c

    r3908 r3910  
    58795879 ***********************************************************************/ 
    58805880 
     5881/* mw32fns.c */ 
     5882extern Cursor mw32_load_cursor (LPCTSTR name); 
     5883 
    58815884static int mw32_initialized; 
    58825885