// === GLOBALS ===
int giAxWin_Mode = 0;
- int giAxWin_PID = 0;
+ int giAxWin_PID = 9; // HACK!
+tAxWin_MessageCallback *gAxWin_DefaultCallback;
// === CODE ===
int SoMain()
return 0;
}
-int AxWin_Register(const char *Name)
+tAxWin_Message *AxWin_int_SendAndWait(int RetID, tAxWin_Message *Message)
{
- 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);
+ tAxWin_RetMsg *rmsg;
+
+ AxWin_SendMessage(Message);
for(;;)
{
msg = AxWin_WaitForMessage();
- if(msg->ID == MSG_SREQ_ADDTAB)
- {
- ret = (void*) &msg->Data[0];
- if( ret->ReqID == MSG_SREQ_REGISTER )
- break;
- }
+ rmsg = (void*)msg->Data;
+ if(msg->ID == MSG_SRSP_RETURN && rmsg->ReqID == Message->ID )
+ break;
AxWin_HandleMessage(msg);
free(msg);
}
- return !!ret->Bool;
+ 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_Handle AxWin_AddTab(const char *Title)
+tAxWin_Element *AxWin_CreateWindow(const char *Title)
{
tAxWin_Message req;
tAxWin_Message *msg;
- tAxWin_RetMsg *ret;
+ tAxWin_Element *ret;
int len = strlen(Title);
- req.ID = MSG_SREQ_ADDTAB;
+ req.ID = MSG_SREQ_ADDWIN;
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);
- }
+ msg = AxWin_int_SendAndWait(MSG_SRSP_RETURN, &req);
+ ret = (tAxWin_Element*) ((tAxWin_RetMsg*)msg->Data)->Value;
+ free(msg);
- return (tAxWin_Handle) ret->Handle;
+ return ret;
+}
+
+tAxWin_Element *AxWin_AddMenuItem(tAxWin_Element *Parent, const char *Label, int Message)
+{
+ return NULL;
}