Ignore:
Timestamp:
May 24, 2004, 11:02:01 AM (21 years ago)
Author:
sandervl
Message:

KOM: Updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/win32wbase.cpp

    r10587 r10607  
    1 /* $Id: win32wbase.cpp,v 1.389 2004-04-20 10:11:43 sandervl Exp $ */
     1/* $Id: win32wbase.cpp,v 1.390 2004-05-24 09:02:00 sandervl Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    7070#include "callwrap.h"
    7171
     72#include <imm.h>
     73
    7274#define DBG_LOCALLOG    DBG_win32wbase
    7375#include "dbglocal.h"
     
    21232125
    21242126    case WM_IME_CHAR:
    2125         if( wParam & 0xFF00 ) // DBCS ?
     2127        if( IsDBCSLeadByte(( CHAR )( wParam >> 8 )))
    21262128            SendMessageA( getWindowHandle(), WM_CHAR, ( WPARAM )( BYTE )( wParam >> 8 ), lParam );
    21272129        SendMessageA( getWindowHandle(), WM_CHAR, ( WPARAM )( BYTE )( wParam & 0xFF ), lParam );
    21282130        break;
     2131
     2132    case WM_IME_KEYDOWN:
     2133        return SendMessageA( getWindowHandle(), WM_KEYDOWN, wParam, lParam );
     2134
     2135    case WM_IME_KEYUP:
     2136        return SendMessageA( getWindowHandle(), WM_KEYUP, wParam, lParam );
     2137
     2138    case WM_IME_COMPOSITION:
     2139    case WM_IME_COMPOSITIONFULL:
     2140    case WM_IME_CONTROL:
     2141    case WM_IME_ENDCOMPOSITION:
     2142    case WM_IME_NOTIFY:
     2143    case WM_IME_REQUEST:
     2144    case WM_IME_SELECT:
     2145    case WM_IME_SETCONTEXT:
     2146    case WM_IME_STARTCOMPOSITION:
     2147    {
     2148        HWND hwndIME = ImmGetDefaultIMEWnd( getWindowHandle());
     2149
     2150        if( hwndIME )
     2151        {
     2152            BOOL result = ImmIsUIMessageA( hwndIME, Msg, wParam, lParam );
     2153
     2154            switch( Msg )
     2155            {
     2156                case WM_IME_SETCONTEXT :
     2157                    return result;
     2158
     2159                case WM_IME_CONTROL :
     2160                    // todo : IMC_GETSTATUSWINDOWPOS return POINTS structure
     2161                    return !result;
     2162
     2163                case WM_IME_REQUEST :
     2164                    // todo
     2165                    return 0;
     2166            }
     2167        }
     2168        break;
     2169    }
    21292170
    21302171    default:
     
    22062247        SendMessageW( getWindowHandle(), WM_CHAR, wParam, lParam );
    22072248        return 0;
     2249
     2250    case WM_IME_KEYDOWN:
     2251        return SendMessageW( getWindowHandle(), WM_KEYDOWN, wParam, lParam );
     2252
     2253    case WM_IME_KEYUP:
     2254        return SendMessageW( getWindowHandle(), WM_KEYUP, wParam, lParam );
     2255
     2256    case WM_IME_COMPOSITION:
     2257    case WM_IME_COMPOSITIONFULL:
     2258    case WM_IME_CONTROL:
     2259    case WM_IME_ENDCOMPOSITION:
     2260    case WM_IME_NOTIFY:
     2261    case WM_IME_REQUEST:
     2262    case WM_IME_SELECT:
     2263    case WM_IME_SETCONTEXT:
     2264    case WM_IME_STARTCOMPOSITION:
     2265    {
     2266        HWND hwndIME = ImmGetDefaultIMEWnd( getWindowHandle());
     2267
     2268        if( hwndIME )
     2269        {
     2270            BOOL result = ImmIsUIMessageW( hwndIME, Msg, wParam, lParam );
     2271
     2272            switch( Msg )
     2273            {
     2274                case WM_IME_SETCONTEXT :
     2275                    return result;
     2276
     2277                case WM_IME_CONTROL :
     2278                    // todo : IMC_GETSTATUSWINDOWPOS return POINTS structure
     2279                    return !result;
     2280
     2281                case WM_IME_REQUEST :
     2282                    // todo
     2283                    return 0;
     2284            }
     2285        }
     2286        return 0;
     2287    }
    22082288
    22092289    default:
Note: See TracChangeset for help on using the changeset viewer.