e03c41c4c982f315fb1ef9c6b4c315cdfb74513e
[tpg/acess2.git] / Usermode / Applications / axwin3_src / include / ipcmessages.h
1 /*
2  * Acess2 Window Manager v3
3  * - By John Hodge (thePowersGang)
4  *
5  * ipcmessages.h
6  * - IPC Message format definition
7  * - Shared between library and server
8  */
9 #ifndef _IPCMESSAGES_H_
10 #define _IPCMESSAGES_H_
11
12 #include <stdint.h>
13
14 typedef struct sAxWin_IPCMessage        tAxWin_IPCMessage;
15 typedef struct sIPCMsg_Return   tIPCMsg_Return;
16 typedef struct sIPCMsg_CreateWin        tIPCMsg_CreateWin;
17 typedef struct sIPCMsg_ShowWindow       tIPCMsg_ShowWindow;
18 typedef struct sIPCMsg_SetWindowPos     tIPCMsg_SetWindowPos;
19
20 /**
21  * \name Flags for IPC Messages
22  * \{
23  */
24 //! Request a return value
25 #define IPCMSG_FLAG_RETURN      0x01
26 /**
27  * \}
28  */
29
30 struct sAxWin_IPCMessage
31 {
32          uint8_t        ID;
33          uint8_t        Flags;
34         uint16_t        Size;
35         uint32_t        Window;
36         char    Data[];
37 };
38
39 struct sIPCMsg_Return
40 {
41         uint32_t        Value;
42 };
43
44 struct sIPCMsg_CreateWin
45 {
46         uint32_t        NewWinID;
47         uint32_t        RendererArg;
48         char    Renderer[];
49 };
50
51 struct sIPCMsg_ShowWindow
52 {
53         uint32_t        bShow;
54 };
55
56 struct sIPCMsg_SetWindowPos
57 {
58          int16_t        X, Y;
59         uint16_t        W, H;
60         uint8_t         bSetPos;
61         uint8_t         bSetDims;
62 };
63
64 enum eAxWin_IPCMessageTypes
65 {
66         IPCMSG_PING,    //!< Get the server version
67         IPCMSG_SENDMSG,         //!< Send a message to another window (or to self)
68         IPCMSG_CREATEWIN,       //!< Create a window
69         IPCMSG_DESTROYWIN,      //!< Destroy a window
70         IPCMSG_SHOWWINDOW,      //!< Show/Hide a window
71         IPCMSG_SETWINPOS,       //!< Set a window position
72 };
73
74 #endif

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