Release 950319
[wine] / include / menu.h
1 /* $Id$
2  *
3  * Menu definitions
4  */
5
6 #ifndef MENU_H
7 #define MENU_H
8
9 #define MENU_MAGIC   0x554d  /* 'MU' */
10
11 extern BOOL MENU_Init(void);
12 extern WORD MENU_GetMenuBarHeight( HWND hwnd, WORD menubarWidth,
13                                    int orgX, int orgY );         /* menu.c */
14 extern void MENU_TrackMouseMenuBar( HWND hwnd, POINT pt );       /* menu.c */
15 extern void MENU_TrackKbdMenuBar( HWND hwnd, WORD wParam );      /* menu.c */
16 extern WORD MENU_DrawMenuBar( HDC hDC, LPRECT lprect,
17                               HWND hwnd, BOOL suppress_draw );   /* menu.c */
18 extern HMENU CopySysMenu(); /* menu.c */
19
20
21 typedef struct tagMENUITEM
22 {
23     WORD        item_flags;    /* Item flags */
24     WORD        item_id;       /* Item or popup id */
25     RECT        rect;          /* Item area (relative to menu window) */
26     WORD        xTab;          /* X position of text after Tab */
27     HBITMAP     hCheckBit;     /* Bitmap for checked item */
28     HBITMAP     hUnCheckBit;   /* Bitmap for unchecked item */
29     HANDLE      hText;         /* Handle to item string or bitmap */
30     char        *item_text;
31 } MENUITEM, *LPMENUITEM;
32
33
34 typedef struct tagPOPUPMENU
35 {
36     HMENU       hNext;        /* Next menu (compatibility only, always 0) */
37     WORD        wFlags;       /* Menu flags (MF_POPUP, MF_SYSMENU) */
38     WORD        wMagic;       /* Magic number */
39     HANDLE      hTaskQ;       /* Task queue for this menu */
40     WORD        Width;        /* Width of the whole menu */
41     WORD        Height;       /* Height of the whole menu */
42     WORD        nItems;       /* Number of items in the menu */
43     HWND        hWnd;         /* Window containing the menu */
44     HANDLE      hItems;       /* Handle to the items array */
45     WORD        FocusedItem;  /* Currently focused item */
46 } POPUPMENU, *LPPOPUPMENU;
47
48 typedef struct
49 {
50     WORD        version;                /* Should be zero                 */
51     WORD        reserved;               /* Must be zero                   */
52 } MENU_HEADER;
53
54 typedef struct
55 {
56     WORD        item_flags;             /* See windows.h                  */
57     char        item_text[1];           /* Text for menu item             */
58 } MENU_POPUPITEM;
59
60 typedef struct
61 {
62     WORD        item_flags;             /* See windows.h                  */
63     WORD        item_id;                /* Control Id for menu item       */
64     char        item_text[1];           /* Text for menu item             */
65 } MENUITEMTEMPLATE;
66
67 #endif /* MENU_H */