mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-01 08:03:37 +00:00
135 lines
3 KiB
C
135 lines
3 KiB
C
/*
|
|
* Copyright 2022 Jacek Caban for CodeWeavers
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
*/
|
|
|
|
#include "ntuser.h"
|
|
#include "wine/unixlib.h"
|
|
|
|
enum x11drv_funcs
|
|
{
|
|
unix_create_desktop,
|
|
unix_init,
|
|
unix_systray_clear,
|
|
unix_systray_dock,
|
|
unix_systray_hide,
|
|
unix_systray_init,
|
|
unix_tablet_attach_queue,
|
|
unix_tablet_get_packet,
|
|
unix_tablet_info,
|
|
unix_tablet_load_info,
|
|
unix_xim_preedit_state,
|
|
unix_xim_reset,
|
|
unix_funcs_count,
|
|
};
|
|
|
|
extern unixlib_handle_t x11drv_handle DECLSPEC_HIDDEN;
|
|
#define X11DRV_CALL(func, params) __wine_unix_call( x11drv_handle, unix_ ## func, params )
|
|
|
|
/* x11drv_create_desktop params */
|
|
struct create_desktop_params
|
|
{
|
|
UINT width;
|
|
UINT height;
|
|
};
|
|
|
|
/* x11drv_init params */
|
|
struct init_params
|
|
{
|
|
WNDPROC foreign_window_proc;
|
|
BOOL *show_systray;
|
|
};
|
|
|
|
struct systray_dock_params
|
|
{
|
|
UINT64 event_handle;
|
|
void *icon;
|
|
int cx;
|
|
int cy;
|
|
BOOL *layered;
|
|
};
|
|
|
|
/* x11drv_tablet_info params */
|
|
struct tablet_info_params
|
|
{
|
|
UINT category;
|
|
UINT index;
|
|
void *output;
|
|
};
|
|
|
|
/* x11drv_xim_preedit_state params */
|
|
struct xim_preedit_state_params
|
|
{
|
|
HWND hwnd;
|
|
BOOL open;
|
|
};
|
|
|
|
/* driver client callbacks exposed with KernelCallbackTable interface */
|
|
enum x11drv_client_funcs
|
|
{
|
|
client_func_callback = NtUserDriverCallbackFirst,
|
|
client_func_dnd_enter_event,
|
|
client_func_dnd_position_event,
|
|
client_func_dnd_post_drop,
|
|
client_func_ime_set_composition_string,
|
|
client_func_ime_set_result,
|
|
client_func_systray_change_owner,
|
|
client_func_last
|
|
};
|
|
|
|
C_ASSERT( client_func_last <= NtUserDriverCallbackLast + 1 );
|
|
|
|
/* simplified interface for client callbacks requiring only a single UINT parameter */
|
|
enum client_callback
|
|
{
|
|
client_dnd_drop_event,
|
|
client_dnd_leave_event,
|
|
client_ime_get_cursor_pos,
|
|
client_ime_set_composition_status,
|
|
client_ime_set_cursor_pos,
|
|
client_ime_set_open_status,
|
|
client_ime_update_association,
|
|
client_funcs_count
|
|
};
|
|
|
|
/* x11drv_callback params */
|
|
struct client_callback_params
|
|
{
|
|
UINT id;
|
|
UINT arg;
|
|
};
|
|
|
|
/* x11drv_dnd_enter_event and x11drv_dnd_post_drop params */
|
|
struct format_entry
|
|
{
|
|
UINT format;
|
|
UINT size;
|
|
char data[1];
|
|
};
|
|
|
|
/* x11drv_dnd_position_event params */
|
|
struct dnd_position_event_params
|
|
{
|
|
ULONG hwnd;
|
|
POINT point;
|
|
DWORD effect;
|
|
};
|
|
|
|
struct systray_change_owner_params
|
|
{
|
|
UINT64 event_handle;
|
|
};
|