X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibaxwin2.so_src%2Fmain.c;h=1dfcf9b23b4bc83e355d43113dacad9aed2b0818;hb=d55488f17f9fbd25d9126853720e2fd78bd8540f;hp=1a12561b33cb005b420c7490a1c5358740506122;hpb=f9c3c4a68ba22b00df9441631a8513198c8859a5;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libaxwin2.so_src/main.c b/Usermode/Libraries/libaxwin2.so_src/main.c index 1a12561b..1dfcf9b2 100644 --- a/Usermode/Libraries/libaxwin2.so_src/main.c +++ b/Usermode/Libraries/libaxwin2.so_src/main.c @@ -7,12 +7,74 @@ * main.c - Library Initialisation */ #include "common.h" +#include // === GLOBALS === int giAxWin_Mode = 0; + int giAxWin_PID = 0; // === CODE === int SoMain() { return 0; } + +int AxWin_Register(const char *Name) +{ + tAxWin_Message req; + tAxWin_Message *msg; + tAxWin_RetMsg *ret; + int len = strlen(Name); + + req.ID = MSG_SREQ_REGISTER; + req.Size = 1 + (len+1)/4; + strcpy(req.Data, Name); + + AxWin_SendMessage(&req); + + for(;;) + { + msg = AxWin_WaitForMessage(); + + if(msg->ID == MSG_SREQ_ADDTAB) + { + ret = (void*) &msg->Data[0]; + if( ret->ReqID == MSG_SREQ_REGISTER ) + break; + } + + AxWin_HandleMessage(msg); + free(msg); + } + + return !!ret->Bool; +} + +tAxWin_Handle AxWin_AddTab(const char *Title) +{ + tAxWin_Message req; + tAxWin_Message *msg; + tAxWin_RetMsg *ret; + int len = strlen(Title); + + req.ID = MSG_SREQ_ADDTAB; + req.Size = 1 + (len+1)/4; + strcpy(req.Data, Title); + + for(;;) + { + msg = AxWin_WaitForMessage(); + + if(msg->ID == MSG_SRSP_RETURN) + { + ret = (void*) &msg->Data[0]; + if( ret->ReqID == MSG_SREQ_ADDTAB ) + break; + } + + AxWin_HandleMessage(msg); + free(msg); + } + + return (tAxWin_Handle) ret->Handle; +}