xoblite™ / Blackbox for Windows bb5 | RC6 preview | 0.25.2.14
http://xoblite.net/
ConfigMenu Class Reference

#include <ConfigMenu.h>

Public Member Functions

 ConfigMenu (LPCSTR pszTitle)
 
virtual ~ConfigMenu ()
 
void OnShow (bool fShow)
 
void UpdateFolder ()
 
- Public Member Functions inherited from Menu
 Menu (HINSTANCE hInstance)
 
 ~Menu ()
 
void UpdateMenuWindow ()
 
void DrawMenuItem (HDC hdc, MenuItem *i, bool active)
 
void Show ()
 
void Show (int x, int y)
 
bool Hide (int h)
 
void Mouse (UINT nMsg, int x, int y)
 
void MouseLeave ()
 
void AddMenuItem (MenuItem *m)
 
void DeleteMenuItems ()
 
void TogglePinned ()
 
bool IsPinned ()
 
LRESULT NcHitTest (int x, int y)
 
void Timer (int nTimer)
 
HWND GetWindow ()
 
void SetParent (Menu *pParent)
 
MenuGetParent ()
 
void AddChild (Menu *pChild)
 
void RemoveChild (Menu *pChild)
 
bool IsChildWindow (HWND hWnd)
 
void SetMenuFolderPath (char *pszFolderPath)
 
void Moving ()
 
virtual bool OnUser (int nMessage, WPARAM wParam, LPARAM lParam, LRESULT &lResult)
 
LRESULT Command (WPARAM wParam, LPARAM lParam)
 
virtual void OnTimer (int nTimer)
 
void Activate (int fActive, HWND hWnd)
 
bool IsActive ()
 
void Sort (int beginOffset, int endOffset)
 
void Invalidate ()
 
void Validate ()
 
void ClearSelectionGroup (int group)
 

Additional Inherited Members

- Static Public Member Functions inherited from Menu
static void CALLBACK TrackMouseProc (HWND hWnd, UINT uMsg, UINT_PTR idEvent, DWORD dwTime)
 
- Public Attributes inherited from Menu
HINSTANCE hMenuInstance
 
WIN32_FIND_DATA data
 
HWND hMenuWnd
 
Menum_pParent
 
vector< MenuItem * > m_MenuItems
 
vector< Menu * > m_Children
 
char * m_pszTitle
 
bool isValidated
 
bool isPinned
 
bool mouseIsHovering
 
bool keyboardNavigationInProgress
 
bool m_bMoved
 
char * m_pszFolderPath
 
HDC menuHDC
 
HDC cachedMenuBackground
 
HDC cachedMenuActive
 
bool cachedMenuGradientsExist
 
RECT menuRect
 
RECT menuTitleRect
 
RECT menuFrameRect
 
RECT menuActiveRect
 
RECT menuGripRect
 
int menuX
 
int menuY
 
int menuWidth
 
int menuHeight
 
int menuActiveWidth
 
int menuActiveHeight
 
- Static Public Attributes inherited from Menu
static int m_nInstances = 0
 

Constructor & Destructor Documentation

◆ ConfigMenu()

ConfigMenu::ConfigMenu ( LPCSTR pszTitle)
51{
52 m_pszTitle = pszTitle ? _strdup(pszTitle) : _strdup("");
54}
MenuCommon * pMenuCommon
Definition Blackbox.cpp:41
void UpdateFolder()
Definition ConfigMenu.cpp:71
HINSTANCE hInst
Definition MenuCommon.h:94
Menu(HINSTANCE hInstance)
Definition Menu.cpp:54
char * m_pszTitle
Definition Menu.h:149

◆ ~ConfigMenu()

ConfigMenu::~ConfigMenu ( )
virtual
57{
58 if (m_pszTitle) free(m_pszTitle);
59 m_pszTitle = NULL;
60}

Member Function Documentation

◆ OnShow()

void ConfigMenu::OnShow ( bool fShow)
virtual

Reimplemented from Menu.

65{
66 if (fShow) UpdateFolder();
67}

◆ UpdateFolder()

void ConfigMenu::UpdateFolder ( )
72{
75 MenuItem* pMenuItem;
76
77 //====================
78
79 // The "Configuration" menu serves as a container for all the element submenus...
80
81 //====================
82
83 Menu* designSubMenu = MakeMenu("Design");
84
85// Menu* designChildMenu = MakeMenu("Themes");
86// pMenuCommon->InsertFolder(designChildMenu, pSettings->themesFolder, FOLDER_THEMES, false);
87// MakeSubmenu(designSubMenu, designChildMenu, "Themes");
88 pMenuItem = new SpecialFolder("Themes", NULL, pSettings->themesFolder, FOLDER_THEMES);
90 designSubMenu->AddMenuItem(pMenuItem);
91
92// designChildMenu = MakeMenu("Styles");
93// pMenuCommon->InsertFolder(designChildMenu, pSettings->stylesFolder, FOLDER_STYLES, true);
94// MakeSubmenu(designSubMenu, designChildMenu, "Styles");
95 pMenuItem = new SpecialFolder("Styles", NULL, pSettings->stylesFolder, FOLDER_STYLES);
97 designSubMenu->AddMenuItem(pMenuItem);
98
99// designChildMenu = MakeMenu("Wallpapers");
100// pMenuCommon->InsertFolder(designChildMenu, pSettings->wallpapersFolder, FOLDER_PATH, false);
101// MakeSubmenu(designSubMenu, designChildMenu, "Wallpapers");
102 pMenuItem = new SpecialFolder("Wallpapers", NULL, pSettings->wallpapersFolder, FOLDER_PATH);
104 designSubMenu->AddMenuItem(pMenuItem);
105
106 pMenuCommon->CreateMenuItem(designSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
107 pMenuCommon->CreateMenuItem(designSubMenu, MENUITEM_COMMAND, "@xoblite Random Style", NULL, "Random style...", false);
108 pMenuCommon->CreateMenuItem(designSubMenu, MENUITEM_COMMAND, "@xoblite Random Wallpaper", NULL, "Random wallpaper...", false);
109
110 pMenuCommon->CreateMenuItem(designSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
111 pMenuCommon->CreateMenuItem(designSubMenu, MENUITEM_COMMAND, "@xoblite Edit", pSettings->styleFile, "Edit current style", false);
112 pMenuCommon->CreateMenuItem(designSubMenu, MENUITEM_COMMAND, "@xoblite About Style", NULL, "About current style...", false);
113
114 pMenuCommon->CreateMenuItem(designSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
115 pMenuItem = new SpecialFolder("Current theme folder", NULL, pSettings->SF_currentThemePath, FOLDER_PATH);
117 designSubMenu->AddMenuItem(pMenuItem);
118 pMenuItem = new SpecialFolder("Default theme folder", NULL, pSettings->SF_blackboxPath, FOLDER_PATH);
120 designSubMenu->AddMenuItem(pMenuItem);
121
122 MakeSubmenu(this, designSubMenu, "Design");
123
124 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
125
126 //====================
127
128 pMenuItem = new MenuConfig("Menu");
130 AddMenuItem(pMenuItem);
131
132 pMenuItem = new ToolbarMenu("Toolbar");
134 AddMenuItem(pMenuItem);
135
136 pMenuItem = new DockMenu("Dock");
138 AddMenuItem(pMenuItem);
139
140 pMenuItem = new ConsoleMenu("Console");
142 AddMenuItem(pMenuItem);
143
144 pMenuItem = new DesktopMenu("Desktop");
146 AddMenuItem(pMenuItem);
147
148 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
149
150 //====================
151
152 pMenuItem = new HotkeysMenu("Hotkeys");
154 AddMenuItem(pMenuItem);
155
156 pMenuItem = new FolderItem(new WorkspacesMenu("Workspaces"), "Workspaces", NULL);
158 AddMenuItem(pMenuItem);
159
160 PluginMenu *PlugMenu = new PluginMenu("Plugins");
162 AddMenuItem(PlugMenu);
163
164 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
165
166 //====================
167
168 pMenuItem = new GlobalConfig("Global");
170 AddMenuItem(pMenuItem);
171
172 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
173
174 //====================
175
176 pMenuCommon->CreateMenuItem(this, MENUITEM_COMMAND, "@xoblite Reconfigure", NULL, "Reconfigure", false);
177 pMenuCommon->CreateMenuItem(this, MENUITEM_COMMAND, "@xoblite Restart", NULL, "Restart", false);
178 pMenuCommon->CreateMenuItem(this, MENUITEM_COMMAND, "@xoblite Quit", NULL, "Quit", false);
179
180 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
181
182 Menu* shutdownSubMenu = MakeMenu("Session");
183 pMenuCommon->CreateMenuItem(shutdownSubMenu, MENUITEM_COMMAND, "[lockworkstation]", NULL, "Lock workstation", false);
184 pMenuCommon->CreateMenuItem(shutdownSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
185 pMenuCommon->CreateMenuItem(shutdownSubMenu, MENUITEM_COMMAND, "[standby]", NULL, "Standby [sleep]", false);
186 pMenuCommon->CreateMenuItem(shutdownSubMenu, MENUITEM_COMMAND, "[hibernate]", NULL, "Hibernate [suspend]", false);
187 pMenuCommon->CreateMenuItem(shutdownSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
188 pMenuCommon->CreateMenuItem(shutdownSubMenu, MENUITEM_COMMAND, "[logoff]", NULL, "Log off", false);
189 pMenuCommon->CreateMenuItem(shutdownSubMenu, MENUITEM_COMMAND, "[reboot]", NULL, "Restart [reboot]", false);
190 pMenuCommon->CreateMenuItem(shutdownSubMenu, MENUITEM_COMMAND, "[shutdown]", NULL, "Shutdown", false);
191 MakeSubmenu(this, shutdownSubMenu, "Session");
192
193 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
194
195 pMenuCommon->CreateMenuItem(this, MENUITEM_COMMAND, "@xoblite Edit", pSettings->xobrcFile, "Edit xoblite.rc", false);
196
197 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
198
199 pMenuCommon->CreateMenuItem(this, MENUITEM_COMMAND, "@xoblite About", NULL, "About xoblite...", false);
200
201 //====================
202/*
203 // Extract currently running xoblite version...
204 // (make sure the correct version encoding is used, currently "000004b0" = language neutral)
205 ULONG* size = 0;
206 void* versionPtr;
207 UINT bytes;
208 DWORD number = GetFileVersionInfoSize("Blackbox.exe", size);
209 char temp[MAX_LINE_LENGTH];
210 GetFileVersionInfo("Blackbox.exe", NULL, number, (LPVOID)temp);
211 VerQueryValue(temp, TEXT("\\StringFileInfo\\000004b0\\FileVersion"), &versionPtr, &bytes);
212 strcpy(temp, (LPCSTR)versionPtr);
213 if ((temp[strlen(temp)-1] == '\n') || (temp[strlen(temp)-1] == '\r')) temp[strlen(temp)-1] = '\0'; // Failsafe
214 pMenuCommon->AddFooterItem(this, temp);
215*/
216 char version[255];
217 strcpy(version, "xoblite ");
218 strcat(version, (LPSTR)GetBBVersion());
219 pMenuCommon->AddFooterItem(this, version);
220
221 Invalidate();
222 Validate();
223}
MenuItem * MakeSubmenu(Menu *ParentMenu, Menu *ChildMenu, LPCSTR Title)
Definition BBApi.cpp:2797
LPCSTR GetBBVersion()
Definition BBApi.cpp:105
Menu * MakeMenu(LPCSTR HeaderText)
Definition BBApi.cpp:2735
Settings * pSettings
Definition Blackbox.cpp:46
#define FOLDER_THEMES
Definition FolderItem.h:39
#define FOLDER_PATH
Definition FolderItem.h:37
#define FOLDER_STYLES
Definition FolderItem.h:38
#define MENUITEM_COMMAND
Definition MenuItem.h:42
#define MENUITEM_SEPARATOR
Definition MenuItem.h:47
void AddFooterItem(Menu *pMenu, LPSTR pszTitle)
Definition MenuCommon.cpp:813
MenuItem * CreateMenuItem(Menu *pMenu, int itemType, char *pszCommand, char *pszArgument, char *pszTitle, bool isSelected)
Definition MenuCommon.cpp:1065
void AddHeaderItem(Menu *pMenu, LPSTR pszTitle)
Definition MenuCommon.cpp:791
int m_nSubmenuHeight
Definition MenuCommon.h:104
void Validate()
Definition Menu.cpp:1325
void DeleteMenuItems()
Definition Menu.cpp:1095
void Invalidate()
Definition Menu.cpp:1318
void AddMenuItem(MenuItem *m)
Definition Menu.cpp:1061
virtual void SetHeight(int nHeight)
Definition MenuItem.h:121
char SF_currentThemePath[MAX_PATH]
Definition Settings.h:385
char wallpapersFolder[MAX_PATH]
Definition Settings.h:321
char SF_blackboxPath[MAX_PATH]
Definition Settings.h:377
char stylesFolder[MAX_PATH]
Definition Settings.h:320
char themesFolder[MAX_PATH]
Definition Settings.h:319
char styleFile[MAX_LINE_LENGTH]
Definition Settings.h:324
char xobrcFile[MAX_LINE_LENGTH]
Definition Settings.h:405