X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Faxwin3_src%2FWM%2Frenderers%2Fmenu.c;h=d3534423b95bf41c9b5e6f3930e51ffeed351912;hb=c86a932dea9d15974e42c99b41ef8f34b17462df;hp=a183de005593c020deee31913fbe37616aa139da;hpb=7c00f2f9205aeb803f0499c9e88c98048830bea6;p=tpg%2Facess2.git diff --git a/Usermode/Applications/axwin3_src/WM/renderers/menu.c b/Usermode/Applications/axwin3_src/WM/renderers/menu.c index a183de00..d3534423 100644 --- a/Usermode/Applications/axwin3_src/WM/renderers/menu.c +++ b/Usermode/Applications/axwin3_src/WM/renderers/menu.c @@ -47,6 +47,8 @@ typedef struct sMenuWindowInfo void Renderer_Menu_Init(void); tWindow *Renderer_Menu_Create(int Argument); void Renderer_Menu_Redraw(tWindow *Window); + int Renderer_Menu_HandleIPC_AddItem(tWindow *Window, size_t Length, const void *Data); + int Renderer_Menu_HandleIPC_SetFlags(tWindow *Window, size_t Length, const void *Data); int Renderer_Menu_HandleMessage(tWindow *Window, int Msg, int Length, const void *Data); // === CONSTANTS === @@ -70,7 +72,12 @@ tWMRenderer gRenderer_Menu = { .Name = "Menu", .CreateWindow = Renderer_Menu_Create, .Redraw = Renderer_Menu_Redraw, - .HandleMessage = Renderer_Menu_HandleMessage + .HandleMessage = Renderer_Menu_HandleMessage, + .nIPCHandlers = 2, + .IPCHandlers = { + Renderer_Menu_HandleIPC_AddItem, +// Renderer_Menu_HandleIPC_SetFlags + } }; tFont *gMenu_Font = NULL; // System monospace @@ -196,8 +203,9 @@ void Renderer_Menu_Redraw(tWindow *Window) } } -int Renderer_Menu_int_AddItem(tWindow *Window, int Length, const tMenuMsg_AddItem *Msg) +int Renderer_Menu_HandleIPC_AddItem(tWindow *Window, size_t Length, const void *Data) { + const tMenuIPC_AddItem *Msg = Data; tMenuWindowInfo *info = Window->RendererInfo; tMenuItem *item; @@ -359,6 +367,7 @@ int Renderer_Menu_HandleMessage(tWindow *Window, int Msg, int Length, const void // TODO: This shouldn't really be done, instead focus should be given // when the menu is shown. // WM_FocusWindow(Window); + WM_RaiseWindow(Window); // If it's shown, raise it to the heavens! } else { @@ -418,11 +427,6 @@ int Renderer_Menu_HandleMessage(tWindow *Window, int Msg, int Length, const void return 0; } - // Manipulation messages - case MSG_MENU_ADDITEM: -// _SysDebug("MSG_MENU_ADDITEM"); - return Renderer_Menu_int_AddItem(Window, Length, Data); - // Only message to pass to client case MSG_MENU_SELECT: return 1;