13 void closeAll(WMWidget
*self
,void *data
)
15 WMDestroyWidget(self
);
19 void getMenu(WMWidget
*self
, void *data
)
22 struct datacouple
*tmp
= (struct datacouple
*) data
;
24 if (WMGetButtonSelected(self
)) {
25 position
= WMGetViewScreenPosition(WMWidgetView(tmp
->window
));
26 WEditMenuShowAt(tmp
->menu
,
27 (position
.x
> MENUWIDTH
)?(position
.x
- MENUWIDTH
):0,
28 position
.y
+ MENITEMHT
, tmp
->window
);
30 WEditMenuHide(tmp
->menu
);
33 int main(int argc
, char **argv
)
38 WEditMenu
*submenu
, *menu
;
39 WEditMenuItem
* menuitem
;
40 struct datacouple Mainmenu
;
43 WMInitializeApplication("MenuWindow", &argc
, argv
);
44 display
= XOpenDisplay("");
45 screen
= WMCreateScreen(display
, DefaultScreen(display
));
46 win
= WMCreateWindow(screen
, "Menu");
47 WMResizeWidget(win
, WINWIDTH
, WINHEIGHT
);
48 WMSetWindowCloseAction(win
, closeAll
, NULL
);
50 submenu
= WCreateEditMenu(screen
, "Submenu");
51 menuitem
= WAddMenuItemWithTitle(submenu
, "Submenu item");
52 menu
= WCreateEditMenu(screen
, "Main menu");
53 menuitem
= WAddMenuItemWithTitle(menu
, "To submenu");
54 WSetEditMenuSubmenu(menu
, menuitem
, submenu
);
55 menuitem
= WAddMenuItemWithTitle(menu
, "Main item");
57 Mainmenu
.window
= win
;
60 Button
= WMCreateButton(win
, WBTPushOnPushOff
);
61 WMSetButtonText(Button
, "Menu");
62 WMSetButtonAction(Button
, getMenu
, &Mainmenu
);
63 WMMoveWidget(Button
, 1, 1);
66 WMRealizeWidget(Button
);
67 WMRealizeWidget(menu
);
68 WMRealizeWidget(submenu
);
73 WMScreenMainLoop(screen
);