Release 0.6
[wine] / include / menu.h
1 /* $Id$
2  *
3  * Menu definitions
4  */
5
6 #ifndef MENU_H
7 #define MENU_H
8
9 #include <X11/Intrinsic.h>
10 #include <X11/StringDefs.h>
11 #include <X11/Core.h>
12 #include <X11/Xaw/Form.h>
13 #include <X11/Xaw/Command.h>
14 #include <X11/Xaw/Box.h>
15
16
17 typedef struct tagMENUITEM
18 {
19     struct tagMENUITEM *next;
20     struct tagMENUITEM *prev;
21     struct tagMENUITEM *child;
22     struct tagMENUITEM *parent;
23     WORD        item_flags;
24     WORD        item_id;
25     WORD        sel_key;
26     char        *shortcut;
27     char        *item_text;
28     Widget      w;
29     Widget      menu_w;
30     char        menu_name[10];
31     RECT        rect;
32     HBITMAP     hCheckBit;
33     HBITMAP     hUnCheckBit;
34 } MENUITEM, *LPMENUITEM;
35
36 typedef struct tagMENUBAR
37 {
38     struct tagMENUBAR *next;
39     HANDLE      menuDescription;        /* Memory containing menu desc.   */
40     HWND        ownerWnd;               /* Owner window                   */
41     int         nItems;                 /* Number of items on menu        */
42     Widget      parentWidget;           /* Parent of menu widget          */
43     Widget      menuBarWidget;          /* Widget to contain menu options */
44     MENUITEM   *firstItem;
45 } MENUBAR, *LPMENUBAR;
46
47 typedef struct tagPOPUPMENU
48 {
49     HWND        hWnd;                   /* PopupMenu window handle        */
50     HWND        hWndParent;             /* Parent opupMenu window handle  */
51     HWND        ownerWnd;               /* Owner window                   */
52     WORD        nItems;                 /* Number of items on menu        */
53     MENUITEM   *firstItem;
54     WORD        FocusedItem;
55     WORD        MouseFlags;
56     WORD        BarFlags;
57     WORD        Width;
58     WORD        Height;
59 } POPUPMENU, *LPPOPUPMENU;
60
61 typedef struct
62 {
63     WORD        version;                /* Should be zero                 */
64     WORD        reserved;               /* Must be zero                   */
65 } MENU_HEADER;
66
67 typedef struct
68 {
69     WORD        item_flags;             /* See windows.h                  */
70     char        item_text[1];           /* Text for menu item             */
71 } MENU_POPUPITEM;
72
73 typedef struct
74 {
75     WORD        item_flags;             /* See windows.h                  */
76     WORD        item_id;                /* Control Id for menu item       */
77     char        item_text[1];           /* Text for menu item             */
78 } MENU_NORMALITEM;
79
80 extern LPMENUBAR MENU_CreateMenuBar(Widget parent, HANDLE instance, 
81                                     HWND wnd, char *menu_name, int width);
82 extern LPMENUBAR MENU_UseMenu(Widget parent, HANDLE instance, 
83                               HWND wnd, HMENU hmenu, int width);
84
85 #endif /* MENU_H */