migrate substitution keywords to SVN
[reactos.git] / reactos / include / win32k / menu.h
1 /* $Id$ */
2
3 #ifndef WIN32K_MENU_H_INCLUDED
4 #define WIN32K_MENU_H_INCLUDED
5
6 typedef struct tagROSMENUINFO {
7 /* ----------- MENUINFO ----------- */
8 DWORD cbSize;
9 DWORD fMask;
10 DWORD dwStyle;
11 UINT cyMax;
12 HBRUSH hbrBack;
13 DWORD dwContextHelpID;
14 ULONG_PTR dwMenuData;
15 /* ----------- Extra ----------- */
16 HMENU Self; /* Handle of this menu */
17 WORD Flags; /* Menu flags (MF_POPUP, MF_SYSMENU) */
18 UINT FocusedItem; /* Currently focused item */
19 UINT MenuItemCount; /* Number of items in the menu */
20 HWND Wnd; /* Window containing the menu */
21 WORD Width; /* Width of the whole menu */
22 WORD Height; /* Height of the whole menu */
23 HWND WndOwner; /* window receiving the messages for ownerdraw */
24 BOOL TimeToHide; /* Request hiding when receiving a second click in the top-level menu item */
25 } ROSMENUINFO, *PROSMENUINFO;
26
27 /* (other FocusedItem values give the position of the focused item) */
28 #define NO_SELECTED_ITEM 0xffff
29
30 typedef struct tagROSMENUITEMINFO
31 {
32 /* ----------- MENUITEMINFOW ----------- */
33 UINT cbSize;
34 UINT fMask;
35 UINT fType;
36 UINT fState;
37 UINT wID;
38 HMENU hSubMenu;
39 HBITMAP hbmpChecked;
40 HBITMAP hbmpUnchecked;
41 DWORD dwItemData;
42 LPWSTR dwTypeData;
43 UINT cch;
44 HBITMAP hbmpItem;
45 /* ----------- Extra ----------- */
46 RECT Rect; /* Item area (relative to menu window) */
47 UINT XTab; /* X position of text after Tab */
48 } ROSMENUITEMINFO, *PROSMENUITEMINFO;
49
50 typedef struct _SETMENUITEMRECT
51 {
52 UINT uItem;
53 BOOL fByPosition;
54 RECT rcRect;
55 } SETMENUITEMRECT, *PSETMENUITEMRECT;
56
57 DWORD
58 STDCALL
59 NtUserBuildMenuItemList(
60 HMENU hMenu,
61 PVOID Buffer,
62 ULONG nBufSize,
63 DWORD Reserved);
64
65 DWORD
66 STDCALL
67 NtUserCheckMenuItem(
68 HMENU hmenu,
69 UINT uIDCheckItem,
70 UINT uCheck);
71
72 HMENU
73 STDCALL
74 NtUserCreateMenu(BOOL PopupMenu);
75
76 BOOL
77 STDCALL
78 NtUserDeleteMenu(
79 HMENU hMenu,
80 UINT uPosition,
81 UINT uFlags);
82
83 BOOL
84 STDCALL
85 NtUserDestroyMenu(
86 HMENU hMenu);
87
88 DWORD
89 STDCALL
90 NtUserDrawMenuBarTemp(
91 HWND hWnd,
92 HDC hDC,
93 PRECT hRect,
94 HMENU hMenu,
95 HFONT hFont);
96
97 UINT
98 STDCALL
99 NtUserEnableMenuItem(
100 HMENU hMenu,
101 UINT uIDEnableItem,
102 UINT uEnable);
103
104 DWORD
105 STDCALL
106 NtUserInsertMenuItem(
107 HMENU hMenu,
108 UINT uItem,
109 BOOL fByPosition,
110 LPCMENUITEMINFOW lpmii);
111
112 BOOL
113 STDCALL
114 NtUserEndMenu(VOID);
115
116 UINT STDCALL
117 NtUserGetMenuDefaultItem(
118 HMENU hMenu,
119 UINT fByPos,
120 UINT gmdiFlags);
121
122 BOOL
123 STDCALL
124 NtUserGetMenuBarInfo(
125 HWND hwnd,
126 LONG idObject,
127 LONG idItem,
128 PMENUBARINFO pmbi);
129
130 UINT
131 STDCALL
132 NtUserGetMenuIndex(
133 HMENU hMenu,
134 UINT wID);
135
136 BOOL
137 STDCALL
138 NtUserGetMenuItemRect(
139 HWND hWnd,
140 HMENU hMenu,
141 UINT uItem,
142 LPRECT lprcItem);
143
144 HMENU
145 STDCALL
146 NtUserGetSystemMenu(
147 HWND hWnd,
148 BOOL bRevert);
149
150 BOOL
151 STDCALL
152 NtUserHiliteMenuItem(
153 HWND hwnd,
154 HMENU hmenu,
155 UINT uItemHilite,
156 UINT uHilite);
157
158 BOOL
159 STDCALL
160 NtUserMenuInfo(
161 HMENU hmenu,
162 PROSMENUINFO lpmi,
163 BOOL fsog
164 );
165
166 int
167 STDCALL
168 NtUserMenuItemFromPoint(
169 HWND hWnd,
170 HMENU hMenu,
171 DWORD X,
172 DWORD Y);
173
174 BOOL
175 STDCALL
176 NtUserMenuItemInfo(
177 HMENU hMenu,
178 UINT uItem,
179 BOOL fByPosition,
180 PROSMENUITEMINFO lpmii,
181 BOOL fsog
182 );
183
184 BOOL
185 STDCALL
186 NtUserRemoveMenu(
187 HMENU hMenu,
188 UINT uPosition,
189 UINT uFlags);
190
191 BOOL
192 STDCALL
193 NtUserSetMenu(
194 HWND hWnd,
195 HMENU hMenu,
196 BOOL bRepaint);
197
198 BOOL
199 STDCALL
200 NtUserSetMenuContextHelpId(
201 HMENU hmenu,
202 DWORD dwContextHelpId);
203
204 BOOL
205 STDCALL
206 NtUserSetMenuDefaultItem(
207 HMENU hMenu,
208 UINT uItem,
209 UINT fByPos);
210
211 BOOL
212 STDCALL
213 NtUserSetMenuFlagRtoL(
214 HMENU hMenu);
215
216 BOOL
217 STDCALL
218 NtUserSetSystemMenu(
219 HWND hWnd,
220 HMENU hMenu);
221
222 DWORD
223 STDCALL
224 NtUserThunkedMenuInfo(
225 HMENU hMenu,
226 LPCMENUINFO lpcmi);
227
228 DWORD
229 STDCALL
230 NtUserThunkedMenuItemInfo(
231 HMENU hMenu,
232 UINT uItem,
233 BOOL fByPosition,
234 BOOL bInsert,
235 LPMENUITEMINFOW lpmii,
236 PUNICODE_STRING lpszCaption);
237
238 BOOL
239 STDCALL
240 NtUserTrackPopupMenuEx(
241 HMENU hmenu,
242 UINT fuFlags,
243 int x,
244 int y,
245 HWND hwnd,
246 LPTPMPARAMS lptpm);
247
248 #endif /* WIN32K_MENU_H_INCLUDED */
249