#include <axwin3/menu.h>
#include <menu_messages.h>
#include "include/internal.h"
-#include "include/ipc.h"
#include <string.h>
// === TYPES ===
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)
{
AxWin3_MoveWindow(Menu, X, Y);
AxWin3_ShowWindow(Menu, 1);
+ AxWin3_FocusWindow(Menu);
}
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;