X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibaxwin2.so_src%2Fmain.c;h=f71a73ce37aaa13bfd5f413f6f163924c0fc269a;hb=fe24894229067f695d5db33c213fc09086740dec;hp=1a12561b33cb005b420c7490a1c5358740506122;hpb=872dbea3900b09c78092d3cdf035513f400bcfe8;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libaxwin2.so_src/main.c b/Usermode/Libraries/libaxwin2.so_src/main.c index 1a12561b..f71a73ce 100644 --- a/Usermode/Libraries/libaxwin2.so_src/main.c +++ b/Usermode/Libraries/libaxwin2.so_src/main.c @@ -7,12 +7,80 @@ * main.c - Library Initialisation */ #include "common.h" +#include // === GLOBALS === int giAxWin_Mode = 0; + int giAxWin_PID = 0; +tAxWin_MessageCallback *gAxWin_DefaultCallback; // === CODE === int SoMain() { return 0; } + +tAxWin_Message *AxWin_int_SendAndWait(int RetID, tAxWin_Message *Message) +{ + tAxWin_Message *msg; + tAxWin_RetMsg *rmsg; + + AxWin_SendMessage(Message); + + for(;;) + { + msg = AxWin_WaitForMessage(); + + rmsg = (void*)msg->Data; + if(msg->ID == MSG_SRSP_RETURN && rmsg->ReqID == Message->ID ) + break; + + AxWin_HandleMessage(msg); + free(msg); + } + + return msg; +} + +int AxWin_Register(const char *Name, tAxWin_MessageCallback *DefaultCallback) +{ + tAxWin_Message req; + tAxWin_Message *msg; + int ret; + int len = strlen(Name); + + req.ID = MSG_SREQ_REGISTER; + req.Size = 1 + (len+1)/4; + strcpy(req.Data, Name); + + msg = AxWin_int_SendAndWait(MSG_SRSP_RETURN, &req); + ret = ((tAxWin_RetMsg*)msg->Data)->Value; + free(msg); + + gAxWin_DefaultCallback = DefaultCallback; + + return !!ret; +} + +tAxWin_Element *AxWin_CreateWindow(const char *Title) +{ + tAxWin_Message req; + tAxWin_Message *msg; + tAxWin_Element *ret; + int len = strlen(Title); + + req.ID = MSG_SREQ_ADDWIN; + req.Size = 1 + (len+1)/4; + strcpy(req.Data, Title); + + msg = AxWin_int_SendAndWait(MSG_SRSP_RETURN, &req); + ret = (tAxWin_Element*) ((tAxWin_RetMsg*)msg->Data)->Value; + free(msg); + + return ret; +} + +tAxWin_Element *AxWin_AddMenuItem(tAxWin_Element *Parent, const char *Label, int Message) +{ + return NULL; +}