Commit 6baf1198 authored by Zhiyi Zhang's avatar Zhiyi Zhang Committed by Alexandre Julliard

user32/edit: Implement EM_SETIMESTATUS.

parent d06f4a5e
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
* *
* TODO: * TODO:
* - EM_GETIMESTATUS, EM_SETIMESTATUS * - EM_GETIMESTATUS
* - EN_ALIGN_LTR_EC * - EN_ALIGN_LTR_EC
* - EN_ALIGN_RTL_EC * - EN_ALIGN_RTL_EC
* - ES_OEMCONVERT * - ES_OEMCONVERT
...@@ -138,6 +138,7 @@ typedef struct ...@@ -138,6 +138,7 @@ typedef struct
*/ */
UINT composition_len; /* length of composition, 0 == no composition */ UINT composition_len; /* length of composition, 0 == no composition */
int composition_start; /* the character position for the composition */ int composition_start; /* the character position for the composition */
UINT ime_status; /* IME status flag */
/* /*
* Uniscribe Data * Uniscribe Data
*/ */
...@@ -4928,6 +4929,13 @@ LRESULT EditWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, B ...@@ -4928,6 +4929,13 @@ LRESULT EditWndProc_common( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, B
result = EDIT_EM_CharFromPos(es, (short)LOWORD(lParam), (short)HIWORD(lParam)); result = EDIT_EM_CharFromPos(es, (short)LOWORD(lParam), (short)HIWORD(lParam));
break; break;
case EM_SETIMESTATUS:
if (wParam == EMSIS_COMPOSITIONSTRING)
es->ime_status = lParam & 0xFFFF;
result = 1;
break;
/* End of the EM_ messages which were in numerical order; what order /* End of the EM_ messages which were in numerical order; what order
* are these in? vaguely alphabetical? * are these in? vaguely alphabetical?
*/ */
......
...@@ -12199,21 +12199,18 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg) ...@@ -12199,21 +12199,18 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg)
/* Note that EM_SETIMESTATUS always return 1, which is contrary to what MSDN says about /* Note that EM_SETIMESTATUS always return 1, which is contrary to what MSDN says about
* returning the previous LPARAM value */ * returning the previous LPARAM value */
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE); lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE);
todo_wine
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
todo_wine todo_wine
ok(lr == EIMES_GETCOMPSTRATONCE, "Got unexpected lr %#Ix.\n", lr); ok(lr == EIMES_GETCOMPSTRATONCE, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_CANCELCOMPSTRINFOCUS); lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_CANCELCOMPSTRINFOCUS);
todo_wine
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
todo_wine todo_wine
ok(lr == EIMES_CANCELCOMPSTRINFOCUS, "Got unexpected lr %#Ix.\n", lr); ok(lr == EIMES_CANCELCOMPSTRINFOCUS, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_COMPLETECOMPSTRKILLFOCUS); lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_COMPLETECOMPSTRKILLFOCUS);
todo_wine
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
todo_wine todo_wine
...@@ -12221,7 +12218,6 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg) ...@@ -12221,7 +12218,6 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg)
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE
| EIMES_CANCELCOMPSTRINFOCUS | EIMES_COMPLETECOMPSTRKILLFOCUS); | EIMES_CANCELCOMPSTRINFOCUS | EIMES_COMPLETECOMPSTRKILLFOCUS);
todo_wine
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
todo_wine todo_wine
...@@ -12229,7 +12225,6 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg) ...@@ -12229,7 +12225,6 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg)
"Got unexpected lr %#Ix.\n", lr); "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
todo_wine
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
ok(lr == 0, "Got unexpected lr %#Ix.\n", lr); ok(lr == 0, "Got unexpected lr %#Ix.\n", lr);
...@@ -12244,26 +12239,22 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg) ...@@ -12244,26 +12239,22 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg)
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, 0, EIMES_GETCOMPSTRATONCE); lr = SendMessageA(hwnd, EM_SETIMESTATUS, 0, EIMES_GETCOMPSTRATONCE);
todo_wine
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
ok(lr == 0, "Got unexpected lr %#Ix.\n", lr); ok(lr == 0, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING + 1, EIMES_GETCOMPSTRATONCE); lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING + 1, EIMES_GETCOMPSTRATONCE);
todo_wine
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
ok(lr == 0, "Got unexpected lr %#Ix.\n", lr); ok(lr == 0, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0xFFFFFFFF); lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0xFFFFFFFF);
todo_wine
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
todo_wine todo_wine
ok(lr == 0xFFFF, "Got unexpected lr %#Ix.\n", lr); ok(lr == 0xFFFF, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
todo_wine
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
ok(lr == 0, "Got unexpected lr %#Ix.\n", lr); ok(lr == 0, "Got unexpected lr %#Ix.\n", lr);
...@@ -12291,7 +12282,6 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg) ...@@ -12291,7 +12282,6 @@ static DWORD WINAPI test_edit_ime_messages(void *unused_arg)
/* Test IME messages when EIMES_GETCOMPSTRATONCE is set */ /* Test IME messages when EIMES_GETCOMPSTRATONCE is set */
lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE); lr = SendMessageA(hwnd, EM_SETIMESTATUS, EMSIS_COMPOSITIONSTRING, EIMES_GETCOMPSTRATONCE);
todo_wine
ok(lr == 1, "Got unexpected lr %#Ix.\n", lr); ok(lr == 1, "Got unexpected lr %#Ix.\n", lr);
lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0); lr = SendMessageA(hwnd, EM_GETIMESTATUS, EMSIS_COMPOSITIONSTRING, 0);
todo_wine todo_wine
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment