From: John Hodge Date: Wed, 2 Nov 2011 13:27:15 +0000 (+0800) Subject: Usermode/AxWin3 - Workign on interface lib, adding basic UI app X-Git-Tag: rel0.14~162 X-Git-Url: https://git.ucc.asn.au/?a=commitdiff_plain;h=1f2e2ea9289e3fa3768172de9fad129880ed198f;p=tpg%2Facess2.git Usermode/AxWin3 - Workign on interface lib, adding basic UI app --- diff --git a/Usermode/Applications/axwin3_src/Interface/Makefile b/Usermode/Applications/axwin3_src/Interface/Makefile new file mode 100644 index 00000000..d96cc5e9 --- /dev/null +++ b/Usermode/Applications/axwin3_src/Interface/Makefile @@ -0,0 +1,14 @@ +# Project: Acess2 GUI v3 Interface + +-include ../../Makefile.cfg + +CPPFLAGS += -I include/ + +DIR := Apps/AxWin/3.0 +BIN := AxWinUI +OBJ := main.o + +LDFLAGS += -laxwin3 + +-include ../../Makefile.tpl + diff --git a/Usermode/Applications/axwin3_src/Interface/main.c b/Usermode/Applications/axwin3_src/Interface/main.c new file mode 100644 index 00000000..f56cd699 --- /dev/null +++ b/Usermode/Applications/axwin3_src/Interface/main.c @@ -0,0 +1,29 @@ +/* + * Acess2 GUI v3 User Interface + * - By John Hodge (thePowersGang) + * + * main.c + * - Interface core + */ +#include +#include + +// === GLOBALS === +tHWND gSidebar; + +// === CODE === +int main(int argc, char *argv[]) +{ + // Connect to AxWin3 Server + AxWin3_Connect(NULL); + + // Create sidebar + // TODO: Use the widget library instead + gSidebar = AxWin3_CreateWindow(NULL, "widget", 0, 0, NULL); + + // Idle loop + AxWin3_MainLoop(); + + return 0; +} + diff --git a/Usermode/Libraries/libaxwin3.so_src/include/ipc.h b/Usermode/Libraries/libaxwin3.so_src/include/ipc.h index a2533ead..231ee484 100644 --- a/Usermode/Libraries/libaxwin3.so_src/include/ipc.h +++ b/Usermode/Libraries/libaxwin3.so_src/include/ipc.h @@ -8,6 +8,8 @@ #ifndef _IPCMESSAGES_H_ #define _IPCMESSAGES_H_ +#include + typedef struct sAxWin_IPCMessage tAxWin_IPCMessage; typedef struct sIPCMsg_Return tIPCMsg_Return; typedef struct sIPCMsg_CreateWin tIPCMsg_CreateWin; @@ -52,6 +54,7 @@ enum eAxWin_IPCMessageTypes extern tAxWin_IPCMessage *AxWin3_int_AllocateIPCMessage(tHWND Window, int Message, int Flags, int ExtraBytes); extern void AxWin3_int_SendIPCMessage(tAxWin_IPCMessage *Msg); +extern tAxWin_IPCMessage *AxWin3_int_GetIPCMessage(void); #endif diff --git a/Usermode/Libraries/libaxwin3.so_src/main.c b/Usermode/Libraries/libaxwin3.so_src/main.c index 0ee81ceb..47e3f333 100644 --- a/Usermode/Libraries/libaxwin3.so_src/main.c +++ b/Usermode/Libraries/libaxwin3.so_src/main.c @@ -6,6 +6,7 @@ * - Entrypoint and setup */ #include +#include "include/ipc.h" // === CODE === int SoMain(void *Base, int argc, const char *argv[], const char **envp) @@ -14,3 +15,16 @@ int SoMain(void *Base, int argc, const char *argv[], const char **envp) return 0; } +void AxWin3_MainLoop(void) +{ + tAxWin_IPCMessage *msg; + int bExit = 0; + + while(!bExit) + { + msg = AxWin3_int_GetIPCMessage(); + + // TODO: Handle message + } +} + diff --git a/Usermode/Libraries/libaxwin3.so_src/msg.c b/Usermode/Libraries/libaxwin3.so_src/msg.c index 5871331f..cce977ba 100644 --- a/Usermode/Libraries/libaxwin3.so_src/msg.c +++ b/Usermode/Libraries/libaxwin3.so_src/msg.c @@ -10,6 +10,7 @@ #include #include #include "include/ipc.h" +#include "include/internal.h" // === CONSTANTS === enum eConnectionType @@ -73,7 +74,10 @@ tAxWin_IPCMessage *AxWin3_int_AllocateIPCMessage(tHWND Window, int Message, int ret = malloc( sizeof(tAxWin_IPCMessage) + ExtraBytes ); ret->Flags = Flags; ret->ID = Message; - ret->Window = Window; + if(Window) + ret->Window = Window->ServerID; + else + ret->Window = -1; ret->Size = ExtraBytes; return ret; } diff --git a/Usermode/include/axwin3/axwin.h b/Usermode/include/axwin3/axwin.h index 2c852437..af5c242b 100644 --- a/Usermode/include/axwin3/axwin.h +++ b/Usermode/include/axwin3/axwin.h @@ -16,6 +16,7 @@ typedef int (*tAxWin3_WindowMessageHandler)(tHWND Window, int Length, void *Data extern void AxWin3_Connect(const char *ServerDesc); extern tAxWin3_MessageCallback AxWin3_SetMessageCallback(tAxWin3_MessageCallback Callback); +extern void AxWin3_MainLoop(void); extern tHWND AxWin3_CreateWindow(tHWND Parent, const char *Renderer, int Flags, int DataBytes, void **DataPtr); extern void AxWin3_DestroyWindow(tHWND Window);