8 struct datacouple
{WMWindow
*window
;
12 void closeAll(WMWidget
*self
,void *data
){
13 WMDestroyWidget(self
);
17 void getMenu(WMWidget
*self
, void *data
){
19 struct datacouple
*tmp
=(struct datacouple
*)data
;
20 if(WMGetButtonSelected(self
)){
21 position
=WMGetViewScreenPosition(WMWidgetView(tmp
->window
));
22 WEditMenuShowAt(tmp
->menu
,(position
.x
>MENUWIDTH
)?position
.x
-MENUWIDTH
:0, position
.y
+MENITEMHT
,tmp
->window
);
24 WEditMenuHide(tmp
->menu
);
27 int main (int argc
, char **argv
){
32 WEditMenu
*submenu
, *menu
;
33 WEditMenuItem
* menuitem
;
34 struct datacouple Mainmenu
;
37 WMInitializeApplication("MenuWindow", &argc
, argv
);
38 display
= XOpenDisplay("");
39 screen
= WMCreateScreen(display
, DefaultScreen(display
));
40 win
= WMCreateWindow(screen
, "Menu");
41 WMResizeWidget(win
, WINWIDTH
, WINHEIGHT
);
42 WMSetWindowCloseAction(win
, closeAll
, NULL
);
44 submenu
=WCreateEditMenu(screen
,"Submenu");
45 menuitem
=WAddMenuItemWithTitle(submenu
,"Submenu item");
46 menu
=WCreateEditMenu(screen
,"Main menu");
47 menuitem
= WAddMenuItemWithTitle(menu
,"To submenu");
48 WSetEditMenuSubmenu(menu
, menuitem
, submenu
);
49 menuitem
= WAddMenuItemWithTitle(menu
,"Main item");
54 Button
=WMCreateButton(win
,WBTPushOnPushOff
);
55 WMSetButtonText (Button
, "Menu");
56 WMSetButtonAction (Button
, getMenu
, &Mainmenu
);
57 WMMoveWidget(Button
, 1,1);
60 WMRealizeWidget(Button
);
61 WMRealizeWidget(menu
);
62 WMRealizeWidget(submenu
);
67 WMScreenMainLoop(screen
);