3 * - By John Hodge (thePowersGang)
6 * - IPC Protocol Header
26 IPCMSG_GETWINBUF, // get a handle to the window's buffer
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 IPCMSG_FILLRECT, // (win, x, y, w, h, colour)
37 IPCMSG_DRAWRECT, // (win, x, y, w, h, colour)
39 // - Client-bound commands
40 IPCMSG_INPUTEVENT, // (u8 event, u16 win, ...)
45 IPC_GLOBATTR_SCREENDIMS, // Screen dimensions - Readonly
46 IPC_GLOBATTR_MAXAREA, // Maximum window area for screen (hint only, not enforced)
51 IPC_WINATTR_SHOW, // u8 - Window shown
52 IPC_WINATTR_FLAGS, // u32 - Decoration enabled, always-on-top
53 IPC_WINATTR_POSITION, // s16, s16
54 IPC_WINATTR_DIMENSIONS, // u16, u16
55 IPC_WINATTR_TITLE, // string
60 IPC_INEV_KEYBOARD, // (u16 keysym, u8 keydown, string text)
61 IPC_INEV_MOUSEBTN, // (u16 x, u16 y)
62 IPC_INEV_MOUSEMOVE, // (u16 x, u16 y, u8 btn, u8 btndown)