X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2Finclude%2Faxwin%2Fmessages.h;h=4d53ab5d19be4f40e46484723ce45cd1c7fe27bd;hb=846645bd8f738dc22641e96866fffd2f59b5639b;hp=c11b8644e79e8e4600e5d7992200d7c6443b31fd;hpb=1c2a87ec67d332b6a165c79398693eac1eb1166e;p=tpg%2Facess2.git diff --git a/Usermode/include/axwin/messages.h b/Usermode/include/axwin/messages.h index c11b8644..4d53ab5d 100644 --- a/Usermode/include/axwin/messages.h +++ b/Usermode/include/axwin/messages.h @@ -6,7 +6,16 @@ #ifndef _AXWIN_MESSAGES_H #define _AXWIN_MESSAGES_H +#include + typedef struct sAxWin_Message tAxWin_Message; +typedef struct sAxWin_RetMsg tAxWin_RetMsg; + +// Higherarchy: +// - HANDLE +// + ELEMENT +// > DIALOG +// > TAB /** * \brief Message IDs @@ -16,10 +25,23 @@ enum eAxWin_Messages // Server Requests MSG_SREQ_PING, // - Windows - MSG_SREQ_NEWWINDOW, - MSG_SREQ_GETFLAGS, MSG_SREQ_SETFLAGS, - MSG_SREQ_GETRECT, MSG_SREQ_SETRECT, + MSG_SREQ_REGISTER, // bool (char[] Name) - Registers this PID with the Window Manager + + MSG_SREQ_ADDTAB, // TAB (char[] Name) - Adds a tab to the window + MSG_SREQ_DELTAB, // void (TAB Tab) - Closes a tab + + MSG_SREQ_NEWDIALOG, // DIALOG (TAB Parent, char[] Name) - Creates a dialog + MSG_SREQ_DELDIALOG, // void (DIALOG Dialog) - Closes a dialog + + MSG_SREQ_SETNAME, // void (ELEMENT Element, char[] Name) + MSG_SREQ_GETNAME, // char[] (ELEMENT Element) + + // - Builtin Elements + MSG_SREQ_INSERT, // void (ELEMENT Parent, eAxWin_Controls Type, u32 Flags) + // - Drawing + // All drawing functions take an ELEMENT as their first parameter. + // This must be either a Tab, Dialog or Canvas control MSG_SREQ_SETCOL, MSG_SREQ_PSET, MSG_SREQ_LINE, MSG_SREQ_CURVE, @@ -28,20 +50,54 @@ enum eAxWin_Messages MSG_SREQ_SETFONT, MSG_SREQ_PUTTEXT, // Server Responses - MSG_SRSP_PONG, - MSG_SRSP_IMG, // Returns the image ID + MSG_SRSP_VERSION, + MSG_SRSP_RETURN, // {int RequestID, void[] Return Value} - Returns a value from a server request NUM_MSG }; +// --- Server Requests (Requests from the client of the server) /** - * \brief New Window Request structure + * \brief Server Request - Ping (Get Server Version) */ -struct sAxWin_Req_NewWindow +struct sAxWin_SReq_Ping { - }; +/** + * \brief Server Request - New Window + * \see eAxWin_Messages.MSG_SREQ_NEWWINDOW + */ +struct sAxWin_SReq_NewWindow +{ + uint16_t X, Y, W, H; + uint32_t Flags; +}; + + +// --- Server Responses +/** + * \brief Server Response - Pong + * \see eAxWin_Messages.MSG_SRSP_PONG + */ +struct sAxWin_SRsp_Version +{ + uint8_t Major; + uint8_t Minor; + uint16_t Build; +}; + +/** + * \brief Server Response - New Window + * \see eAxWin_Messages.MSG_SRSP_NEWWINDOW + */ +struct sAxWin_SRsp_NewWindow +{ + uint32_t Handle; +}; + + +// === Core Message Structure /** * \brief Overarching Message Structure * \note sizeof(tAxWin_Message) is never valid @@ -50,6 +106,19 @@ struct sAxWin_Message { uint16_t ID; uint16_t Size; //!< Size in DWORDS + char Data[]; +}; + +struct sAxWin_RetMsg +{ + uint16_t ReqID; + uint16_t Rsvd; + union + { + uint8_t Bool; + uint32_t Handle; + int Integer; + }; }; #endif