Merge branch 'master' of git://git.ucc.asn.au/tpg/acess2
[tpg/acess2.git] / Usermode / Applications / axwin3_src / libaxwin3.so_src / r_menu.c
index e7bd2bf..65525b9 100644 (file)
@@ -10,7 +10,6 @@
 #include <axwin3/menu.h>
 #include <menu_messages.h>
 #include "include/internal.h"
-#include "include/ipc.h"
 #include <string.h>
 
 // === TYPES ===
@@ -44,9 +43,9 @@ int AxWin3_Menu_int_Callback(tHWND Window, int Message, int Length, void *Data)
                if(msg->ID >= info->nItems)     return -1;
                item = &info->Items[msg->ID];
                if(item->Callback)      item->Callback(item->CbPtr);
-               return 0; }
+               return 1; }
        }
-       return 1;
+       return 0;
 }
 
 tHWND AxWin3_Menu_Create(tHWND Parent)
@@ -68,6 +67,7 @@ void AxWin3_Menu_ShowAt(tHWND Menu, int X, int Y)
 {
        AxWin3_MoveWindow(Menu, X, Y);
        AxWin3_ShowWindow(Menu, 1);
+       AxWin3_FocusWindow(Menu);
 }
 
 tAxWin3_MenuItem *AxWin3_Menu_AddItem(
@@ -96,16 +96,17 @@ tAxWin3_MenuItem *AxWin3_Menu_AddItem(
        ret->SubMenu = SubMenu; 
 
        {
-               tAxWin_IPCMessage       *msg;
-               tMenuMsg_AddItem        *req;
-               msg = AxWin3_int_AllocateIPCMessage(Menu, MSG_MENU_ADDITEM, 0, sizeof(*req)+strlen(Label));
-               req = (void*)msg->Data;
+               tMenuIPC_AddItem        *req;
+                int    data_size;
+               if(!Label)      Label = "";
+               data_size = sizeof(*req)+strlen(Label)+1;
+               req = malloc(data_size);
                req->ID = ret->ID;
                req->Flags = Flags;
                req->SubMenuID = AxWin3_int_GetWindowID(SubMenu);
                strcpy(req->Label, Label);
-               AxWin3_int_SendIPCMessage(msg);
-               free(msg);
+               AxWin3_SendIPC(Menu, IPC_MENU_ADDITEM, data_size, req);
+               free(req);
        }
        
        return ret;

UCC git Repository :: git.ucc.asn.au