Add WINGs tutorial
[whome.git] / WINGs_tutorial / EighthWindow.c
blob628cd20ba7405b3da7cb17a4ff4aeffe8e3570cf
1 #include "editmenu.h"
3 #define WINWIDTH 300
4 #define WINHEIGHT 400
5 #define MENUWIDTH 80
6 #define MENITEMHT 21
8 struct datacouple{WMWindow *window;
9 WEditMenu *menu;
10 } datacouple;
12 void closeAll(WMWidget *self,void *data){
13 WMDestroyWidget(self);
14 exit(0);
17 void getMenu(WMWidget *self, void *data){
18 WMPoint position;
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);
23 }else
24 WEditMenuHide(tmp->menu);
27 int main (int argc, char **argv){
29 Display *display;
30 WMScreen *screen;
31 WMWindow *win;
32 WEditMenu *submenu, *menu;
33 WEditMenuItem * menuitem;
34 struct datacouple Mainmenu;
35 WMButton *Button;
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");
51 Mainmenu.window=win;
52 Mainmenu.menu=menu;
54 Button =WMCreateButton(win,WBTPushOnPushOff);
55 WMSetButtonText (Button, "Menu");
56 WMSetButtonAction (Button, getMenu, &Mainmenu);
57 WMMoveWidget(Button, 1,1);
59 WMRealizeWidget(win);
60 WMRealizeWidget(Button);
61 WMRealizeWidget(menu);
62 WMRealizeWidget(submenu);
64 WMMapSubwidgets(win);
65 WMMapWidget(win);
67 WMScreenMainLoop(screen);
69 return 0;