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

#include <WorkspacesMenu.h>

Public Member Functions

 WorkspacesMenu (const char *pszTitle)
 
virtual ~WorkspacesMenu ()
 
void OnShow (bool fShow)
 
bool OnUser (int nMessage, WPARAM wParam, LPARAM lParam, LRESULT &lResult)
 
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 ()
 
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

◆ WorkspacesMenu()

WorkspacesMenu::WorkspacesMenu ( const char * pszTitle)
49{
50 m_pszTitle = pszTitle ? _strdup(pszTitle) : _strdup("");
51}
MenuCommon * pMenuCommon
Definition Blackbox.cpp:41
HINSTANCE hInst
Definition MenuCommon.h:94
Menu(HINSTANCE hInstance)
Definition Menu.cpp:54
char * m_pszTitle
Definition Menu.h:149

◆ ~WorkspacesMenu()

WorkspacesMenu::~WorkspacesMenu ( )
virtual
54{
55 if (m_pszTitle) free(m_pszTitle);
56 m_pszTitle = NULL;
57}

Member Function Documentation

◆ OnShow()

void WorkspacesMenu::OnShow ( bool fShow)
virtual

Reimplemented from Menu.

62{
63 if (fShow) UpdateFolder();
64}
void UpdateFolder()
Definition WorkspacesMenu.cpp:92

◆ OnUser()

bool WorkspacesMenu::OnUser ( int nMessage,
WPARAM wParam,
LPARAM lParam,
LRESULT & lResult )
virtual

Reimplemented from Menu.

69{
70 if (nMessage == BB_DESKTOPINFO)
71 {
72 DesktopInfo *pDesktopInfo = (DesktopInfo*)lParam;
73
74 char desktopNameANSI[MAX_LINE_LENGTH];
75 strcpy(desktopNameANSI, pDesktopInfo->name);
76 strcat(desktopNameANSI, "\0"); // Just in case...
77 wchar_t desktopNameUnicode[MAX_LINE_LENGTH];
78 MultiByteToWideChar(CP_UTF8, 0, desktopNameANSI, strlen(desktopNameANSI)+1, desktopNameUnicode, MAX_LINE_LENGTH);
79
80 WorkspacesMenuItem *item = new WorkspacesMenuItem(desktopNameANSI, desktopNameUnicode, pDesktopInfo->number);
82 AddMenuItem(item);
83
84 return true;
85 }
86
87 return Menu::OnUser(nMessage, wParam, lParam, lResult);
88}
#define BB_DESKTOPINFO
Definition BBApi.h:179
#define MAX_LINE_LENGTH
Definition BBApi.h:64
char name[32]
Definition BBApi.h:646
int number
Definition BBApi.h:648
int m_nSubmenuHeight
Definition MenuCommon.h:104
virtual bool OnUser(int nMessage, WPARAM wParam, LPARAM lParam, LRESULT &lResult)
Definition Menu.cpp:1268
void AddMenuItem(MenuItem *m)
Definition Menu.cpp:1061
virtual void SetHeight(int nHeight)
Definition MenuItem.h:121

◆ UpdateFolder()

void WorkspacesMenu::UpdateFolder ( )
93{
95
97
98 WorkspacesMenuItem *item = new WorkspacesMenuItem("Minimized windows", L"Minimized windows", 255);
100 AddMenuItem(item);
101
102 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
103
104 SendMessage(GetBBWnd(), BB_LISTDESKTOPS, (WPARAM)GetWindow(), 0);
105
106 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
107
108 pMenuCommon->CreateMenuItem(this, MENUITEM_COMMAND, "@xoblite RestoreAll", NULL, "Restore all windows...", false);
109 pMenuCommon->CreateMenuItem(this, MENUITEM_COMMAND, "@xoblite MinimizeAll", NULL, "Minimize all windows...", false);
110
111 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
112
113 pMenuCommon->CreateMenuItem(this, MENUITEM_COMMAND, "@xoblite Workspaces", "GatherWindows", "Gather all windows...", false);
114
115 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
116
117 pMenuCommon->CreateMenuItem(this, MENUITEM_COMMAND, "@xoblite Workspaces", "New", "New workspace", false);
118 pMenuCommon->CreateMenuItem(this, MENUITEM_COMMAND, "@xoblite Workspaces", "Remove", "Remove last workspace", false);
119
120 pMenuCommon->CreateMenuItem(this, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
121
122 pMenuCommon->CreateMenuItem(this, MENUITEM_BOOLEAN, "@xoblite Workspaces", "ToggleMousewheelChanging", "Mousewheel changing", pSettings->mousewheelChanging);
123 pMenuCommon->CreateMenuItem(this, MENUITEM_BOOLEAN, "@xoblite Workspaces", "ToggleFollowActive", "Follow active task", pSettings->followActive);
124 pMenuCommon->CreateMenuItem(this, MENUITEM_BOOLEAN, "@xoblite Workspaces", "ToggleWallpaperPerWorkspace", "Wallpaper per workspace", pSettings->wallpaperPerWorkspace);
125
126 pMenuCommon->AddFooterItem(this, "");
127
128 Invalidate();
129 Validate();
130}
Settings * pSettings
Definition Blackbox.cpp:46
HWND GetBBWnd()
Definition BBApi.cpp:128
#define BB_LISTDESKTOPS
Definition BBApi.h:180
#define MENUITEM_COMMAND
Definition MenuItem.h:42
#define MENUITEM_SEPARATOR
Definition MenuItem.h:47
#define MENUITEM_BOOLEAN
Definition MenuItem.h:45
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
HWND GetWindow()
Definition Menu.cpp:1183
void Validate()
Definition Menu.cpp:1325
void DeleteMenuItems()
Definition Menu.cpp:1095
void Invalidate()
Definition Menu.cpp:1318
bool mousewheelChanging
Definition Settings.h:308
bool followActive
Definition Settings.h:309
bool wallpaperPerWorkspace
Definition Settings.h:310