winex11: Post internal WM_IME_NOTIFY wparam on composition updates.
[wine.git] / dlls / winex11.drv / unixlib.h
blobef96538147988045ebc44ea86c77c3cc14eab40b
1 /*
2 * Copyright 2022 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #include "ntuser.h"
20 #include "wine/unixlib.h"
22 enum x11drv_funcs
24 unix_create_desktop,
25 unix_init,
26 unix_systray_clear,
27 unix_systray_dock,
28 unix_systray_hide,
29 unix_systray_init,
30 unix_tablet_attach_queue,
31 unix_tablet_get_packet,
32 unix_tablet_info,
33 unix_tablet_load_info,
34 unix_funcs_count,
37 #define X11DRV_CALL(func, params) WINE_UNIX_CALL( unix_ ## func, params )
39 /* x11drv_create_desktop params */
40 struct create_desktop_params
42 UINT width;
43 UINT height;
46 /* x11drv_init params */
47 struct init_params
49 WNDPROC foreign_window_proc;
50 BOOL *show_systray;
53 struct systray_dock_params
55 UINT64 event_handle;
56 void *icon;
57 int cx;
58 int cy;
59 BOOL *layered;
62 /* x11drv_tablet_info params */
63 struct tablet_info_params
65 UINT category;
66 UINT index;
67 void *output;
70 /* x11drv_xim_preedit_state params */
71 struct xim_preedit_state_params
73 HWND hwnd;
74 BOOL open;
77 /* driver client callbacks exposed with KernelCallbackTable interface */
78 enum x11drv_client_funcs
80 client_func_callback = NtUserDriverCallbackFirst,
81 client_func_dnd_enter_event,
82 client_func_dnd_position_event,
83 client_func_dnd_post_drop,
84 client_func_ime_set_composition_string,
85 client_func_ime_set_result,
86 client_func_systray_change_owner,
87 client_func_last
90 C_ASSERT( client_func_last <= NtUserDriverCallbackLast + 1 );
92 /* simplified interface for client callbacks requiring only a single UINT parameter */
93 enum client_callback
95 client_dnd_drop_event,
96 client_dnd_leave_event,
97 client_ime_set_composition_status,
98 client_ime_set_cursor_pos,
99 client_ime_update_association,
100 client_funcs_count
103 /* x11drv_callback params */
104 struct client_callback_params
106 UINT id;
107 UINT arg;
110 /* x11drv_dnd_enter_event and x11drv_dnd_post_drop params */
111 struct format_entry
113 UINT format;
114 UINT size;
115 char data[1];
118 /* x11drv_dnd_position_event params */
119 struct dnd_position_event_params
121 ULONG hwnd;
122 POINT point;
123 DWORD effect;
126 struct systray_change_owner_params
128 UINT64 event_handle;