4 * Copyright 2003 CodeWeavers (Aric Stewart)
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 #ifndef __WINE_WINTAB_INTERNAL_H
22 #define __WINE_WINTAB_INTERNAL_H
24 typedef struct tagWTI_INTERFACE_INFO {
26 /* a copy of the null-terminated tablet hardware identification string
27 * in the user buffer. This string should include make, model, and
28 * revision information in user-readable format.
31 /* the specification version number. The high-order byte contains the
32 * major version number; the low-order byte contains the minor version
36 /* the implementation version number. The high-order byte contains the
37 * major version number; the low-order byte contains the minor version
41 /* the number of devices supported. */
43 /* the total number of cursor types supported. */
45 /* the number of contexts supported. */
47 /* flags indicating which context options are supported */
49 /* the size of the save information returned from WTSave.*/
51 /* the number of extension data items supported.*/
53 /* the number of manager handles supported.*/
54 }WTI_INTERFACE_INFO, *LPWTI_INTERFACE_INFO;
56 typedef struct tagWTI_STATUS_INFO{
58 /* the number of contexts currently open.*/
60 /* the number of system contexts currently open.*/
62 /* the maximum packet report rate currently being received by any
66 /* a mask indicating which packet data items are requested by at
70 /* the number of manager handles currently open.*/
72 /* a non-zero value if system pointing is available to the whole
73 * screen; zero otherwise.
76 /* a button mask indicating the logical buttons whose events are
77 * requested by at least one context.
80 /* a button mask indicating which logical buttons are assigned a system
81 * button function by the current cursor's system button map.
83 } WTI_STATUS_INFO, *LPWTI_STATUS_INFO;
85 typedef struct tagWTI_EXTENSIONS_INFO
88 /* a unique, null-terminated string describing the extension.*/
90 /* a unique identifier for the extension. */
92 /* a mask that can be bitwise OR'ed with WTPKT-type variables to select
96 /* an array of two UINTs specifying the extension's size within a packet
97 * (in bytes). The first is for absolute mode; the second is for
101 /* an array of axis descriptions, as needed for the extension. */
103 /* the current global default data, as needed for the extension. This
104 * data is modified via the WTMgrExt function.
108 /* the current default context-specific data, as needed for the
109 * extension. The indices identify the digitizing- and system-context
110 * defaults, respectively.
113 /* Is the first of one or more consecutive indices, one per cursor type.
114 * Each returns the current default cursor-specific data, as need for
115 * the extension. This data is modified via the WTMgrCsrExt function.
117 } WTI_EXTENSIONS_INFO, *LPWTI_EXTENSIONS_INFO;
119 typedef struct tagWTPACKET {
130 UINT pkNormalPressure;
131 UINT pkTangentPressure;
132 ORIENTATION pkOrientation;
133 ROTATION pkRotation; /* 1.1 */
134 } WTPACKET, *LPWTPACKET;
136 typedef struct tagOPENCONTEXT
145 LPWTPACKET PacketQueue;
146 struct tagOPENCONTEXT *next;
147 } OPENCONTEXT, *LPOPENCONTEXT;
149 int TABLET_PostTabletMessage(LPOPENCONTEXT newcontext, UINT msg, WPARAM wParam,
150 LPARAM lParam, BOOL send_always);
151 LPOPENCONTEXT AddPacketToContextQueue(LPWTPACKET packet, HWND hwnd);
153 /* X11drv functions */
154 extern int (*pLoadTabletInfo)(HWND hwnddefault);
155 extern int (*pGetCurrentPacket)(LPWTPACKET packet);
156 extern int (*pAttachEventQueueToTablet)(HWND hOwner);
157 extern UINT (*pWTInfoW)(UINT wCategory, UINT nIndex, LPVOID lpOutput);
159 extern HWND hwndDefault;
160 extern CRITICAL_SECTION csTablet;
162 #endif /* __WINE_WINTAB_INTERNAL_H */