Usermode/AxWin4 - Send mouse/keyboard events to client
[tpg/acess2.git] / Usermode / Applications / axwin4_src / Common / include / ipc_proto.hpp
1 /*
2  * Acess2 GUI v4
3  * - By John Hodge (thePowersGang) 
4  *
5  * ipc_proto.hpp
6  * - IPC Protocol Header
7  */
8 #ifndef _IPC_PROTO_H_
9 #define _IPC_PROTO_H_
10
11 namespace AxWin {
12
13 enum
14 {
15         IPCMSG_NULL,
16         IPCMSG_REPLY,
17         IPCMSG_PING,
18         IPCMSG_GETGLOBAL,
19         IPCMSG_SETGLOBAL,
20
21         IPCMSG_CREATEWIN,
22         IPCMSG_CLOSEWIN,
23         IPCMSG_SETWINATTR,
24         IPCMSG_GETWINATTR,
25         IPCMSG_SENDIPC,
26         IPCMSG_GETWINBUF,       // get a handle to the window's buffer
27         
28         // - Window drawing commands
29         IPCMSG_DAMAGERECT,      //  (u16 win, u16 x, u16 y, u16 w, u16 h) - Force reblit of area
30         //IPCMSG_DRAWGROUP,     // (u16 win, u16 group_id) - (hint) Switch to this group
31         //IPCMSG_CLEAR, // (u16 win) - (hint) Clear current drawing group
32         IPCMSG_PUSHDATA,        // (u16 win, u16 x, u16 y, u16 w, u16 h, void data)
33         IPCMSG_BLIT,    // (win, sx, sy, dx, dy, w, h) - Blit locally
34         IPCMSG_DRAWCTL, // (win, x, y, w, h, ctlid) - Draw
35         IPCMSG_DRAWTEXT,        // (win, x, y, fontid, text) - Draw text using an internal font
36         
37         // - Client-bound commands
38         IPCMSG_INPUTEVENT,      // (u8 event, u16 win, ...)
39 };
40
41 enum eIPC_GlobalAttrs
42 {
43         IPC_GLOBATTR_SCREENDIMS,        // Screen dimensions - Readonly
44         IPC_GLOBATTR_MAXAREA,   // Maximum window area for screen (hint only, not enforced)
45 };
46
47 enum eIPC_WinAttrs
48 {
49         IPC_WINATTR_SHOW,       // u8   - Window shown
50         IPC_WINATTR_FLAGS,      // u32  - Decoration enabled, always-on-top
51         IPC_WINATTR_POSITION,   // s16, s16
52         IPC_WINATTR_DIMENSIONS, // u16, u16
53         IPC_WINATTR_TITLE,      // string
54 };
55
56 enum eIPC_InputEvents
57 {
58         IPC_INEV_KEYBOARD,      // (u16 keysym, u8 keydown, string text)
59         IPC_INEV_MOUSEBTN,      // (u16 x, u16 y)
60         IPC_INEV_MOUSEMOVE,     // (u16 x, u16 y, u8 btn, u8 btndown)
61 };
62
63 };
64
65 #endif
66

UCC git Repository :: git.ucc.asn.au