ReactOS  0.4.15-dev-1200-gc3b3fcd
startmenu.h
Go to the documentation of this file.
1 /*
2  * Copyright 2003, 2004 Martin Fuchs
3  *
4  * This library is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU Lesser General Public
6  * License as published by the Free Software Foundation; either
7  * version 2.1 of the License, or (at your option) any later version.
8  *
9  * This library is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  * Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public
15  * License along with this library; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17  */
18 
19 
20  //
21  // Explorer and Desktop clone
22  //
23  // startmenu.h
24  //
25  // Martin Fuchs, 16.08.2003
26  //
27 
28 
29 #define CLASSNAME_STARTMENU TEXT("ReactOSStartmenuClass")
30 #define TITLE_STARTMENU TEXT("Start Menu")
31 
32 
33 #define STARTMENU_WIDTH_MIN 120
34 #define STARTMENU_LINE_HEIGHT(icon_size) (icon_size+4)
35 #define STARTMENU_SEP_HEIGHT(icon_size) (STARTMENU_LINE_HEIGHT(icon_size)/2)
36 #define STARTMENU_TOP_BTN_SPACE 8
37 
38 
39  // private message constants
40 #define PM_STARTMENU_CLOSED (WM_APP+0x11)
41 #define PM_STARTENTRY_LAUNCHED (WM_APP+0x12)
42 
43 #ifndef _LIGHT_STARTMENU
44 #define PM_STARTENTRY_FOCUSED (WM_APP+0x13)
45 #endif
46 
47 #define PM_UPDATE_ICONS (WM_APP+0x14)
48 #define PM_SELECT_ENTRY (WM_APP+0x15)
49 
50 
53 {
55  : _dir(dir), _ignore(ignore)
56  {
57  }
58 
60  {
62  }
63 
66 };
67 
70 
73 {
75 
79 };
80 
81 
83 
84 
85 #ifndef _LIGHT_STARTMENU
86 
91 {
93 
94  StartMenuButton(HWND hwnd, ICON_ID icon_id, bool hasSubmenu)
95  : super(hwnd), _hIcon(hIcon), _hasSubmenu(hasSubmenu) {}
96 
97 protected:
99  virtual void DrawItem(LPDRAWITEMSTRUCT dis);
100 
103 };
104 
105 
109 struct StartMenuCtrl : public Button
110 {
112  UINT id, HICON hIcon=0, bool hasSubmenu=false, DWORD style=WS_VISIBLE|WS_CHILD|BS_OWNERDRAW, DWORD exStyle=0)
114  {
115  *new StartMenuButton(_hwnd, hIcon, hasSubmenu);
116 
118  }
119 };
120 
121 
123 struct StartMenuSeparator : public Static
124 {
126  : Static(parent, NULL, x, y+STARTMENU_SEP_HEIGHT(icon_size)/2-1, w, 2, -1, style, exStyle)
127  {
128  }
129 };
130 
131 #endif
132 
133 
135 
138 {
140 
145  void* _info;
147 };
148 
149 #define STARTMENU_CREATOR(WND_CLASS) WINDOW_CREATOR_INFO(WND_CLASS, StartMenuCreateInfo)
150 
152 
153 
154 #ifdef _LIGHT_STARTMENU
155 
156 struct SMBtnInfo
157 {
158  SMBtnInfo(const StartMenuEntry& entry, int id, bool hasSubmenu=false, bool enabled=true)
159  : _title(entry._title),
160  _icon_id(entry._icon_id),
161  _id(id),
162  _hasSubmenu(hasSubmenu),
163  _enabled(enabled)
164  {
165  }
166 
167  SMBtnInfo(LPCTSTR title, ICON_ID icon_id, int id, bool hasSubmenu=false, bool enabled=true)
168  : _title(title),
169  _icon_id(icon_id),
170  _id(id),
171  _hasSubmenu(hasSubmenu),
172  _enabled(enabled)
173  {
174  }
175 
176  String _title;
177  ICON_ID _icon_id;
178  int _id;
179  bool _hasSubmenu;
180  bool _enabled;
181 };
182 
183 typedef vector<SMBtnInfo> SMBtnVector;
184 
185 extern void DrawStartMenuButton(HDC hdc, const RECT& rect, LPCTSTR title, const SMBtnInfo& btn, bool has_focus, bool pushed, int icon_size);
186 
187 #else
188 
189 extern void DrawStartMenuButton(HDC hdc, const RECT& rect, LPCTSTR title, HICON hIcon,
190  bool hasSubmenu, bool enabled, bool has_focus, bool pushed, int icon_size);
191 
192 #endif
193 
194 
199 struct StartMenu :
200 #ifdef _LIGHT_STARTMENU
201  public ExtContextMenuHandlerT<OwnerDrawParent<Window> >
202 #else
203  public ExtContextMenuHandlerT<OwnerDrawParent<DialogWindow> >
204 #endif
205 {
206 #ifdef _LIGHT_STARTMENU
208 #else
210 #endif
211 
214  ~StartMenu();
215 
216  static HWND Create(int x, int y, const StartMenuFolders&, HWND hwndParent, LPCTSTR title,
217  CREATORFUNC_INFO creator=s_def_creator, void* info=NULL, const String& filter="");
219 
220 protected:
221  // overridden member functions
224  int Command(int id, int code);
225 
226  // window class
227  static BtnWindowClass& GetWndClasss();
228 
229  // data members
230  int _next_id;
233 
235  WindowHandle _submenu;
236 
237  int _border_left; // left border in pixels
238  int _border_top; // top border in pixels
239  int _bottom_max; // limit display area for long start menus
240 
243 
248 
249  StartMenuCreateInfo _create_info; // copy of the original create info
250 
252 
253 #ifdef _LIGHT_STARTMENU
254  SMBtnVector _buttons;
255  int _selected_id;
256  LPARAM _last_mouse_pos;
257 
258  void ResizeToButtons();
259  int ButtonHitTest(POINT pt);
260  void InvalidateSelection();
261  const SMBtnInfo* GetButtonInfo(int id) const;
262  bool SelectButton(int id, bool open_sub=true);
263  bool SelectButtonIndex(int idx, bool open_sub=true);
264  int GetSelectionIndex();
265  virtual void ProcessKey(int vk);
266  bool Navigate(int step);
267  bool OpenSubmenu(bool select_first=false);
268  bool JumpToNextShortcut(char c);
269 #endif
270 
271  // member functions
272  void ResizeButtons(int cx);
273 
274  virtual void AddEntries();
275 
277  ShellEntryMap::iterator AddEntry(const String& title, ICON_ID icon_id=ICID_NONE, int id=-1);
280 
281  void AddShellEntries(const ShellDirectory& dir, int max=-1, const String& ignore="");
282 
283  void AddButton(LPCTSTR title, ICON_ID icon_id=ICID_NONE, bool hasSubmenu=false, int id=-1, bool enabled=true);
284  void AddSeparator();
285 
287  bool CloseOtherSubmenus(int id=0);
288  void CreateSubmenu(int id, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator, void*info=NULL);
289  bool CreateSubmenu(int id, int folder, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator, void*info=NULL);
290  bool CreateSubmenu(int id, int folder1, int folder2, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator, void*info=NULL);
291  void CreateSubmenu(int id, const StartMenuFolders& new_folders, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator, void*info=NULL);
292  void ActivateEntry(int id, const ShellEntrySet& entries);
293  virtual void CloseStartMenu(int id=0);
294 
295  bool GetButtonRect(int id, PRECT prect) const;
296 
297  void DrawFloatingButton(HDC hdc);
298  void GetFloatingButtonRect(LPRECT prect);
299  void GetArrowButtonRects(LPRECT prect_up, LPRECT prect_down, int icon_size);
300 
301  void DrawArrows(HDC hdc, int icon_size);
302 
303  void Paint(PaintCanvas& canvas);
304  void UpdateIcons(/*int idx*/);
305 };
306 
307 
308  // declare shell32's "Run..." dialog export function
309 typedef void (WINAPI* RUNFILEDLG)(HWND hwndOwner, HICON hIcon, LPCSTR lpstrDirectory, LPCSTR lpstrTitle, LPCSTR lpstrDescription, UINT uFlags);
310 
311  //
312  // Flags for RunFileDlg
313  //
314 
315 #define RFF_NOBROWSE 0x01 // Removes the browse button.
316 #define RFF_NODEFAULT 0x02 // No default item selected.
317 #define RFF_CALCDIRECTORY 0x04 // Calculates the working directory from the file name.
318 #define RFF_NOLABEL 0x08 // Removes the edit box label.
319 #define RFF_NOSEPARATEMEM 0x20 // Removes the Separate Memory Space check box (Windows NT only).
320 
321 
322  // declare more previously undocumented shell32 functions
323 typedef void (WINAPI* EXITWINDOWSDLG)(HWND hwndOwner);
326 typedef int (WINAPI* RESTARTWINDOWSDLGEX)(HWND hWndOwner, LPCWSTR lpwstrReason, DWORD uFlags, DWORD uReason);
327 typedef BOOL (WINAPI* SHFINDFILES)(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch);
328 typedef BOOL (WINAPI* SHFINDCOMPUTER)(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch);
329 
330 
333 {
334  typedef StartMenu super;
335 
337  : super(hwnd, icon_size)
338  {
339  }
340 
342  : super(hwnd, create_info, icon_size)
343  {
344  }
345 
346 protected:
347  int Command(int id, int code);
348 
349  static void ShowLaunchDialog(HWND hwndOwner);
350  static void ShowLogoffDialog(HWND hwndOwner);
351  static void ShowRestartDialog(HWND hwndOwner, UINT flags);
352  static void ShowSearchDialog();
353  static void ShowSearchComputer();
354 };
355 
356 
358 {
360 };
361 
362 
365 {
367 
369 
370  static HWND Create(HWND hwndDesktopBar, int icon_size);
371  void TrackStartmenu();
372  void CloseStartMenu(int id=0);
373  bool IsStartMenuVisible() const;
374  int Command(int id, int code);
375 
377 
378 protected:
381 
383 
384  virtual void AddEntries();
385  virtual void ProcessKey(int vk);
386 
387  void Paint(PaintCanvas& canvas);
388 
389 
390  void ReadLogoSize();
391  UINT GetLogoResId();
392 };
393 
394 
397 {
399 
401  : super(hwnd, create_info)
402  {
403  }
404 
405 protected:
406  virtual void AddEntries();
407 };
408 
409 
412 {
414 
416  : super(hwnd, create_info)
417  {
418  }
419 
420 protected:
421  virtual void AddEntries();
422 };
423 
424 
427 {
429 
431  : super(hwnd, create_info)
432  {
433  }
434 
435 protected:
436  virtual void AddEntries();
437 };
438 
439 
440 #define RECENT_DOCS_COUNT 20
441 
442 struct RecentStartMenu : public StartMenu
444 {
445  typedef StartMenu super;
446 
448  : super(hwnd, create_info)
449  {
450  }
451 
452 protected:
453  virtual void AddEntries();
454 };
455 
456 
457 #ifndef _SHELL32_FAVORITES
458 
460 
462 struct FavoritesMenu : public StartMenu
463 {
464  typedef StartMenu super;
465 
467  : super(hwnd, create_info),
468  _bookmarks(*(BookmarkList*)create_info._info)
469  {
470  }
471 
472 protected:
473  virtual int Command(int id, int code);
474  virtual void AddEntries();
475 
478 };
479 
480 #endif
virtual void CloseStartMenu(int id=0)
close all windows of the start menu popup
Definition: startmenu.cpp:1361
static void ShowSearchComputer()
Definition: startmenu.cpp:2068
int Command(int id, int code)
Definition: startmenu.cpp:1691
virtual void AddEntries()
Definition: startmenu.cpp:2173
map< int, BookmarkNode > BookmarkMap
Definition: startmenu.h:459
Definition: window.h:584
static CREATORFUNC_INFO s_def_creator
Definition: startmenu.h:218
#define WS_DISABLED
Definition: pedump.c:621
virtual void AddEntries()
Definition: startmenu.cpp:2200
const DOCKBAR PVOID HWND HWND * hwnd
Definition: tooldock.h:22
ShellEntryMap::iterator AddEntry(const String &title, ICON_ID icon_id, Entry *entry)
Definition: startmenu.cpp:1068
void CreateSubmenu(int id, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator, void *info=NULL)
Definition: startmenu.cpp:1217
#define max(a, b)
Definition: svc.c:63
#define BS_OWNERDRAW
Definition: pedump.c:661
static HICON
Definition: imagelist.c:84
StartMenuFolders _folders
Definition: startmenu.h:141
const CHAR * LPCTSTR
Definition: xmlstorage.h:193
StartMenuHandler super
Definition: startmenu.h:398
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
Definition: fci.c:115
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
SIZE _logo_size
Definition: startmenu.h:382
int _icon_size
Definition: startmenu.h:251
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
HWND _hwndStartButton
Definition: startmenu.h:376
#define GetStockFont(i)
Definition: windowsx.h:283
StartMenu super
Definition: startmenu.h:464
void DrawFloatingButton(HDC hdc)
Definition: startmenu.cpp:816
#define pt(x, y)
Definition: drawing.c:79
StartMenuRoot(HWND hwnd, const StartMenuRootCreateInfo &info)
Definition: startmenu.cpp:1557
ICON_ID
Definition: globals.h:62
int _border_top
Definition: startmenu.h:238
#define STARTMENU_LINE_HEIGHT(icon_size)
Definition: startmenu.h:34
StartMenuCtrl(HWND parent, int x, int y, int w, LPCTSTR title, UINT id, HICON hIcon=0, bool hasSubmenu=false, DWORD style=WS_VISIBLE|WS_CHILD|BS_OWNERDRAW, DWORD exStyle=0)
Definition: startmenu.h:111
int ignore(int trapCode, ppc_trap_frame_t *trap)
Definition: mmuobject.c:296
WORD vk
Definition: input.c:77
StartMenuShellDirs _dirs
Definition: startmenu.h:232
virtual void ProcessKey(int vk)
Definition: startmenu.cpp:1834
list< ShellPath > StartMenuFolders
Definition: startmenu.h:134
WindowHandle _submenu
Definition: startmenu.h:235
separator between start menu entries
Definition: startmenu.h:123
static void ShowRestartDialog(HWND hwndOwner, UINT flags)
Definition: startmenu.cpp:2138
const ITEMIDLIST UNALIGNED * LPCITEMIDLIST
Definition: shtypes.idl:42
static HDC
Definition: imagelist.c:92
void AddShellEntries(const ShellDirectory &dir, int max=-1, const String &ignore="")
Definition: startmenu.cpp:243
#define SetWindowFont(hwnd, hfont, fRedraw)
Definition: windowsx.h:508
BOOL(WINAPI * SHFINDFILES)(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch)
Definition: startmenu.h:327
virtual void DrawItem(LPDRAWITEMSTRUCT dis)
Definition: startmenu.cpp:1541
StartMenuHandler super
Definition: startmenu.h:428
shell folder entry
Definition: shellfs.h:53
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
IShellFolder smart pointer.
Definition: shellclasses.h:593
static WCHAR String[]
Definition: stringtable.c:55
UINT_PTR WPARAM
Definition: windef.h:207
int(WINAPI * RESTARTWINDOWSDLGEX)(HWND hWndOwner, LPCWSTR lpwstrReason, DWORD uFlags, DWORD uReason)
Definition: startmenu.h:326
#define WS_CHILD
Definition: pedump.c:617
int GetStartMenuBtnTextWidth(HDC hdc, LPCTSTR title, HWND hwnd)
Definition: startmenu.cpp:1371
POINT _last_pos
Definition: startmenu.h:244
UINT uFlags
Definition: api.c:59
#define BOOL
Definition: nt_native.h:43
set< Entry * > ShellEntrySet
Definition: startmenu.h:69
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glext.h:7750
& rect
Definition: startmenu.cpp:1413
int(WINAPI * LOGOFFWINDOWSDIALOG)(UINT flags)
Definition: startmenu.h:324
OwnerdrawnButton super
Definition: startmenu.h:92
bool IsStartMenuVisible() const
Definition: startmenu.cpp:1829
void(WINAPI * EXITWINDOWSDLG)(HWND hwndOwner)
Definition: startmenu.h:323
Window::CREATORFUNC_INFO _creator
Definition: startmenu.h:144
virtual void AddEntries()
Definition: startmenu.cpp:2148
StartMenu super
Definition: startmenu.h:445
virtual void AddEntries()
Definition: startmenu.cpp:1757
void ResizeButtons(int cx)
Definition: startmenu.cpp:1019
ICON_ID _icon_id
Definition: startmenu.h:77
virtual void AddEntries()
Definition: startmenu.cpp:209
String _title
Definition: startmenu.h:76
bool CloseOtherSubmenus(int id=0)
Definition: startmenu.cpp:1197
#define FALSE
Definition: types.h:117
static BtnWindowClass & GetWndClasss()
Definition: startmenu.cpp:108
StartMenuHandler super
Definition: startmenu.h:413
static UINT WPARAM LPARAM lparam
Definition: combo.c:716
void DrawArrows(HDC hdc, int icon_size)
Definition: startmenu.cpp:835
void CloseStartMenu(int id=0)
close all windows of the start menu popup
Definition: startmenu.cpp:1821
unsigned int idx
Definition: utils.c:41
RecentStartMenu(HWND hwnd, const StartMenuCreateInfo &create_info)
Definition: startmenu.h:447
bool CloseSubmenus()
Definition: startmenu.h:286
static void ShowLaunchDialog(HWND hwndOwner)
Definition: startmenu.cpp:2107
void GetFloatingButtonRect(LPRECT prect)
Definition: startmenu.cpp:825
smooth NULL
Definition: ftsmooth.c:416
static HWND hwndParent
Definition: cryptui.c:300
ICON_ID _icon_id
Definition: startmenu.h:101
void Paint(PaintCanvas &canvas)
Definition: startmenu.cpp:1785
SettingsMenu(HWND hwnd, const StartMenuCreateInfo &create_info)
Definition: startmenu.h:400
LONG_PTR LPARAM
Definition: windef.h:208
Handling of standard start menu commands.
Definition: startmenu.h:332
int Command(int id, int code)
Definition: startmenu.cpp:1041
StartMenuCreateInfo _create_info
Definition: startmenu.h:249
unsigned int dir
Definition: maze.c:112
const char * LPCSTR
Definition: xmlstorage.h:183
bool GetButtonRect(int id, PRECT prect) const
Definition: startmenu.cpp:781
virtual int Command(int id, int code)
Definition: startmenu.cpp:2269
void(WINAPI * RUNFILEDLG)(HWND hwndOwner, HICON hIcon, LPCSTR lpstrDirectory, LPCSTR lpstrTitle, LPCSTR lpstrDescription, UINT uFlags)
Definition: startmenu.h:309
int Command(int id, int code)
Definition: startmenu.cpp:1849
void ReadLogoSize()
Definition: startmenu.cpp:1581
#define SS_ETCHEDHORZ
Definition: winuser.h:343
void UpdateIcons()
int _bottom_max
Definition: startmenu.h:239
r parent
Definition: btrfs.c:2944
void ActivateEntry(int id, const ShellEntrySet &entries)
Definition: startmenu.cpp:1292
int _border_left
Definition: startmenu.h:237
void AddSeparator()
Definition: startmenu.cpp:1173
int _submenu_id
Definition: startmenu.h:234
Search sub-startmenu.
Definition: startmenu.h:426
int _next_id
Definition: startmenu.h:230
#define WINAPI
Definition: msvc.h:6
const GLubyte * c
Definition: glext.h:8905
window class with gray background color
Definition: window.h:248
unsigned long DWORD
Definition: ntddk_ex.h:95
virtual void AddEntries()
Definition: startmenu.cpp:2224
#define ICON_SIZE_SMALL
Definition: globals.h:169
list< StartMenuDirectory > StartMenuShellDirs
Definition: startmenu.h:68
GLbitfield flags
Definition: glext.h:7161
#define DEFAULT_GUI_FONT
Definition: wingdi.h:908
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
Definition: startmenu.cpp:299
UINT GetLogoResId()
Definition: startmenu.cpp:1806
StartMenuSeparator(HWND parent, int x, int y, int w, DWORD style=WS_VISIBLE|WS_CHILD|WS_DISABLED|SS_ETCHEDHORZ, DWORD exStyle=0)
Definition: startmenu.h:125
static WCHAR reason[MAX_STRING_RESOURCE_LEN]
Definition: object.c:1904
enum StartMenu::SCROLL_MODE _scroll_mode
HDC hdc
Definition: main.c:9
static void ShowLogoffDialog(HWND hwndOwner)
Definition: startmenu.cpp:2113
uint32_t entry
Definition: isohybrid.c:63
void AddButton(LPCTSTR title, ICON_ID icon_id=ICID_NONE, bool hasSubmenu=false, int id=-1, bool enabled=true)
Definition: startmenu.cpp:1137
static HWND Create(int x, int y, const StartMenuFolders &, HWND hwndParent, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator, void *info=NULL, const String &filter="")
Definition: startmenu.cpp:118
Window *(* CREATORFUNC_INFO)(HWND, const void *)
Definition: window.h:67
Definition: inflate.c:139
StartMenuHandler(HWND hwnd, const StartMenuCreateInfo &create_info, int icon_size=ICON_SIZE_SMALL)
Definition: startmenu.h:341
StartMenuDirectory is used to store the base directory of start menus.
Definition: startmenu.h:52
shell file/directory entry
Definition: shellfs.h:30
structor containing information for creating of start menus
Definition: startmenu.h:137
LRESULT Init(LPCREATESTRUCT pcs)
Definition: startmenu.cpp:164
StartMenuDirectory(const ShellDirectory &dir, const String &ignore="")
Definition: startmenu.h:54
bool _floating_btn
Definition: startmenu.h:241
int(WINAPI * RESTARTWINDOWSDLG)(HWND hwndOwner, LPCWSTR reason, UINT flags)
Definition: startmenu.h:325
HICON hIcon
Definition: msconfig.c:44
ShellEntrySet _entries
Definition: startmenu.h:78
void free_subentries()
Definition: entries.cpp:743
unsigned int UINT
Definition: ndis.h:50
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
Definition: startmenu.cpp:1517
void DrawStartMenuButton(HDC hdc, const RECT &rect, LPCTSTR title, HICON hIcon, bool hasSubmenu, bool enabled, bool has_focus, bool pushed, int icon_size)
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
StartMenuHandler super
Definition: startmenu.h:366
StartMenu super
Definition: startmenu.h:334
ShellDirectory _dir
Definition: startmenu.h:64
bool _arrow_btns
Definition: startmenu.h:242
ShellEntryMap _entries
Definition: startmenu.h:231
BrowseMenu(HWND hwnd, const StartMenuCreateInfo &create_info)
Definition: startmenu.h:415
void TrackStartmenu()
Definition: startmenu.cpp:1624
BOOL(WINAPI * SHFINDCOMPUTER)(LPCITEMIDLIST pidlRoot, LPCITEMIDLIST pidlSavedSearch)
Definition: startmenu.h:328
int _scroll_pos
Definition: startmenu.h:246
StartMenuHandler(HWND hwnd, int icon_size=ICON_SIZE_SMALL)
Definition: startmenu.h:336
_Out_opt_ int * cx
Definition: commctrl.h:581
static HWND Create(HWND hwndDesktopBar, int icon_size)
Definition: startmenu.cpp:1608
void Paint(PaintCanvas &canvas)
Definition: startmenu.cpp:870
virtual void AddEntries()
Definition: startmenu.cpp:2187
GLenum GLuint id
Definition: glext.h:5579
StartMenuButton(HWND hwnd, ICON_ID icon_id, bool hasSubmenu)
Definition: startmenu.h:94
Settings sub-startmenu.
Definition: startmenu.h:396
BookmarkMap _entries
Definition: startmenu.h:477
BookmarkList _bookmarks
Definition: startmenu.h:476
int _invisible_lines
Definition: startmenu.h:247
structure holding information about one start menu entry
Definition: startmenu.h:72
StartMenu(HWND hwnd, int icon_size=ICON_SIZE_SMALL)
Definition: startmenu.cpp:47
FavoritesMenu(HWND hwnd, const StartMenuCreateInfo &create_info)
Definition: startmenu.h:466
#define STARTMENU_SEP_HEIGHT(icon_size)
Definition: startmenu.h:35
"Browse Files..." sub-start menu
Definition: startmenu.h:411
LONG_PTR LRESULT
Definition: windef.h:209
void GetArrowButtonRects(LPRECT prect_up, LPRECT prect_down, int icon_size)
Definition: startmenu.cpp:849
Arabic default style
Definition: afstyles.h:93
Bookmarks sub-startmenu.
Definition: startmenu.h:462
#define WS_VISIBLE
Definition: pedump.c:620
ExtContextMenuHandlerT< OwnerDrawParent< DialogWindow > > super
Definition: startmenu.h:209
static char title[]
Definition: ps.c:92
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glext.h:7005
static void ShowSearchDialog()
Definition: startmenu.cpp:2056
base of all file and directory entries
Definition: entries.h:82
_Rep_type::iterator iterator
Definition: _map.h:85
"Recent Files" sub-start menu
Definition: startmenu.h:443
LRESULT WndProc(UINT nmsg, WPARAM wparam, LPARAM lparam)
Definition: startmenu.cpp:1765
static UINT WPARAM wparam
Definition: combo.c:716
Startmenu root window.
Definition: startmenu.h:364
LRESULT Init(LPCREATESTRUCT pcs)
Definition: startmenu.cpp:1696
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
Definition: typeof.h:31
SearchMenu(HWND hwnd, const StartMenuCreateInfo &create_info)
Definition: startmenu.h:430
iconPos iconPos icon_size
Definition: startmenu.cpp:1416
Definition: window.h:572
map< int, StartMenuEntry > ShellEntryMap
Definition: startmenu.h:151