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

#include <DockMenu.h>

Public Member Functions

 DockMenu (char *pszTitle)
 
virtual ~DockMenu ()
 
bool Active (bool bActivate)
 
void Attached (Menu *pMenu)
 
void UpdateFolder ()
 
- Public Member Functions inherited from FolderItem
 FolderItem (Menu *pSubMenu, char *pszTitleANSI, wchar_t *pszTitleUnicode)
 
virtual ~FolderItem ()
 
void Attached (Menu *pMenu)
 
bool Active (bool bActivate)
 
void Invoke ()
 
void Timer (int nTimer)
 
void ShowSubMenu ()
 
- Public Member Functions inherited from MenuItem
 MenuItem (int type, char *pszTitleANSI, wchar_t *pszTitleUnicode, char *pszCommand, char *pszArgument, bool isSelected)
 
virtual ~MenuItem ()
 
virtual LRESULT NcHitTest (int x, int y)
 
int IsOver (int x, int y)
 
virtual void Mouse (UINT nMsg, POINT pt)
 
virtual void Invoke (int button)
 
virtual bool IsActive ()
 
virtual char * GetSortString ()
 
virtual void GetItemRect (RECT *r)
 
virtual void GetTitleRect (RECT *r)
 
virtual UINT GetDrawTextFormat ()
 
virtual void SetTitleANSI (char *pszTitleANSI)
 
virtual void SetTitleUnicode (wchar_t *pszTitleUnicode)
 
void AddToSelectionGroup (int group)
 
void ItemSetTimer ()
 
void ItemKillTimer ()
 
virtual void SetWidth (int nWidth)
 
virtual int GetWidth ()
 
virtual void SetHeight (int nHeight)
 
virtual int GetHeight ()
 
virtual void SetPosition (int nLeft, int nTop)
 
virtual void SetSortPriority (int nSortPriority)
 
virtual int GetSortPriority ()
 
virtual LRESULT Command (WPARAM wParam, LPARAM lParam)
 
virtual bool OnUser (int nMessage, WPARAM wParam, LPARAM lParam, LRESULT &lResult)
 
virtual void Moving ()
 
virtual HWND GetWindow ()
 
void ToggleSelected ()
 

Additional Inherited Members

- Static Public Member Functions inherited from MenuItem
static bool Compare (MenuItem *pM1, MenuItem *pM2)
 
- Public Attributes inherited from FolderItem
UINT m_nTimerId
 
- Public Attributes inherited from MenuItem
char * m_pszTitleANSI
 
wchar_t * m_pszTitleUnicode
 
int itemType
 
char * m_pszCommand
 
char * m_pszArgument
 
char * m_pszOriginalTitleANSI
 
wchar_t * m_pszOriginalTitleUnicode
 
bool m_isSelected
 
int m_selectionGroup
 
int m_currentValue
 
int m_minValue
 
int m_maxValue
 
POINT m_mousePos
 
int m_nSortPriority
 
Menum_pParent
 
Menum_pSubMenu
 
int m_nLeft
 
int m_nTop
 
int m_nWidth
 
int m_nHeight
 
bool m_bActive
 
UINT m_nTimerId
 
int m_nLastMouseButton
 

Constructor & Destructor Documentation

◆ DockMenu()

DockMenu::DockMenu ( char * pszTitle)
56 : FolderItem(NULL, pszTitle, NULL)
57{
58}
FolderItem(Menu *pSubMenu, char *pszTitleANSI, wchar_t *pszTitleUnicode)
Definition FolderItem.cpp:43

◆ ~DockMenu()

DockMenu::~DockMenu ( )
virtual
61{
62 m_pParent->RemoveChild(m_pSubMenu);
63 if (m_pSubMenu) delete m_pSubMenu;
64 m_pSubMenu = NULL;
65}
Menu * m_pSubMenu
Definition MenuItem.h:181
Menu * m_pParent
Definition MenuItem.h:180

Member Function Documentation

◆ Active()

bool DockMenu::Active ( bool bActivate)
virtual

Reimplemented from MenuItem.

70{
71 if (bActivate && !m_bActive) UpdateFolder();
72 return FolderItem::Active(bActivate);
73}
void UpdateFolder()
Definition DockMenu.cpp:85
bool Active(bool bActivate)
Definition FolderItem.cpp:76
bool m_bActive
Definition MenuItem.h:188

◆ Attached()

void DockMenu::Attached ( Menu * pMenu)
virtual

Reimplemented from MenuItem.

76{
78 m_pSubMenu = new Menu(pMenuCommon->hInst);
79 m_pParent->AddChild(m_pSubMenu);
80 m_pSubMenu->SetParent(m_pParent);
81}
MenuCommon * pMenuCommon
Definition Blackbox.cpp:41
Menu * pMenu
Definition Blackbox.cpp:40
HINSTANCE hInst
Definition MenuCommon.h:94

◆ UpdateFolder()

void DockMenu::UpdateFolder ( )
86{
87 m_pSubMenu->DeleteMenuItems();
89
90 MenuItem* groupItem;
91 char command[50];
92
93 //====================
94
95 Menu* placementSubMenu = MakeMenu("Placement");
96
98 {
99 char itemTitle[128];
100 sprintf_s(itemTitle, sizeof(itemTitle), "<%s>", pSettings->DockPlacement.rcString);
101 groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_EDITSTRING, dockPlacementBroam, pSettings->DockPlacement.rcString, itemTitle, true);
102 }
103 else groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_EDITSTRING, dockPlacementBroam, "Manual xC y50", "<Manual xC y50>", false);
105// pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
106// groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, dockPlacementBroam, "OppositeToolbar", "Opposite Toolbar", (pSettings->DockPlacement.placement == PLACEMENT_OPPOSITE_TOOLBAR));
107// groupItem->AddToSelectionGroup(GROUP_DOCK_PLACEMENT);
108 pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
109 groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, dockPlacementBroam, "TopLeft", "Top Left", (pSettings->DockPlacement.placement == PLACEMENT_TOP_LEFT));
111 groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, dockPlacementBroam, "CenterLeft", "Center Left", (pSettings->DockPlacement.placement == PLACEMENT_CENTER_LEFT));
113 groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, dockPlacementBroam, "BottomLeft", "Bottom Left", (pSettings->DockPlacement.placement == PLACEMENT_BOTTOM_LEFT));
115 pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
116 groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, dockPlacementBroam, "TopCenter", "Top Center", (pSettings->DockPlacement.placement == PLACEMENT_TOP_CENTER));
118 groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, dockPlacementBroam, "BottomCenter", "Bottom Center", (pSettings->DockPlacement.placement == PLACEMENT_BOTTOM_CENTER));
120 pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
121 groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, dockPlacementBroam, "TopRight", "Top Right", (pSettings->DockPlacement.placement == PLACEMENT_TOP_RIGHT));
123 groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, dockPlacementBroam, "CenterRight", "Center Right", (pSettings->DockPlacement.placement == PLACEMENT_CENTER_RIGHT));
125 groupItem = pMenuCommon->CreateMenuItem(placementSubMenu, MENUITEM_COMMAND, dockPlacementBroam, "BottomRight", "Bottom Right", (pSettings->DockPlacement.placement == PLACEMENT_BOTTOM_RIGHT));
127
128 MakeSubmenu(m_pSubMenu, placementSubMenu, "Placement");
129
130 //====================
131
132 Menu* orientationSubMenu = MakeMenu("Orientation");
133
134 groupItem = pMenuCommon->CreateMenuItem(orientationSubMenu, MENUITEM_COMMAND, dockOrientationBroam, "Horizontal", "Horizontal", !pSettings->dockVertical);
136 groupItem = pMenuCommon->CreateMenuItem(orientationSubMenu, MENUITEM_COMMAND, dockOrientationBroam, "Vertical", "Vertical", pSettings->dockVertical);
138
139 MakeSubmenu(m_pSubMenu, orientationSubMenu, "Orientation");
140
141 //====================
142
143 sprintf(command, "\"@xoblite Dock Transparency\" %d 1 255", pSettings->dockTransparencyAlpha);
144 pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_EDITINT, command, NULL, "Transparency:", false);
145
146 pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
147
148 pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, dockBroam, "TogglePuzzlePositioning", "Puzzle positioning", pSettings->dockPuzzlePositioning);
149 pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, dockBroam, "ToggleAlwaysOnTop", "Always on top", pSettings->dockOnTop);
150 if (pSettings->DockPlacement.placement == PLACEMENT_MANUAL) // Manual positioning?
151 {
152 pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_BOOLEAN, dockBroam, "ToggleSnapToEdges", "Snap to screen edges", pSettings->dockSnapToEdges);
153 }
154
155 pMenuCommon->CreateMenuItem(m_pSubMenu, MENUITEM_SEPARATOR, NULL, NULL, NULL, false);
156
158
159 //====================
160
161 int numberOfDockedPlugins = (int)pDock->DockPlugins.size();
162 char gripText[255];
163 sprintf(gripText, "(%d plugin", numberOfDockedPlugins);
164 if (numberOfDockedPlugins != 1) strcat(gripText, "s");
165 strcat(gripText, " docked)");
167
168 m_pSubMenu->Invalidate();
169 m_pSubMenu->Validate();
170}
MenuItem * MakeSubmenu(Menu *ParentMenu, Menu *ChildMenu, LPCSTR Title)
Definition BBApi.cpp:2797
Menu * MakeMenu(LPCSTR HeaderText)
Definition BBApi.cpp:2735
Settings * pSettings
Definition Blackbox.cpp:46
Dock * pDock
Definition Blackbox.cpp:38
char dockOrientationBroam[]
Definition DockMenu.cpp:49
#define GROUP_DOCK_PLACEMENT
Definition DockMenu.cpp:51
#define GROUP_DOCK_ORIENTATION
Definition DockMenu.cpp:52
char dockPlacementBroam[]
Definition DockMenu.cpp:48
char dockBroam[]
Definition DockMenu.cpp:47
#define MENUITEM_EDITINT
Definition MenuItem.h:44
#define MENUITEM_COMMAND
Definition MenuItem.h:42
#define MENUITEM_SEPARATOR
Definition MenuItem.h:47
#define MENUITEM_BOOLEAN
Definition MenuItem.h:45
#define MENUITEM_EDITSTRING
Definition MenuItem.h:43
#define PLACEMENT_CENTER_LEFT
Definition Settings.h:71
#define PLACEMENT_TOP_CENTER
Definition Settings.h:69
#define PLACEMENT_BOTTOM_CENTER
Definition Settings.h:75
#define PLACEMENT_MANUAL
Definition Settings.h:67
#define PLACEMENT_BOTTOM_LEFT
Definition Settings.h:74
#define PLACEMENT_TOP_LEFT
Definition Settings.h:68
#define PLACEMENT_TOP_RIGHT
Definition Settings.h:70
#define PLACEMENT_BOTTOM_RIGHT
Definition Settings.h:76
#define PLACEMENT_CENTER_RIGHT
Definition Settings.h:73
DockPluginsVector DockPlugins
Definition Dock.h:97
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
MenuItem(int type, char *pszTitleANSI, wchar_t *pszTitleUnicode, char *pszCommand, char *pszArgument, bool isSelected)
Definition MenuItem.cpp:42
void AddToSelectionGroup(int group)
Definition MenuItem.cpp:534
char * m_pszTitleANSI
Definition MenuItem.h:93
bool dockSnapToEdges
Definition Settings.h:237
bool dockOnTop
Definition Settings.h:236
bool dockHidden
Definition Settings.h:230
bool dockVertical
Definition Settings.h:234
Placement DockPlacement
Definition Settings.h:231
BYTE dockTransparencyAlpha
Definition Settings.h:238
bool dockPuzzlePositioning
Definition Settings.h:235
int placement
Definition Settings.h:89
char rcString[255]
Definition Settings.h:98