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

#include <SpecialFolder.h>

Public Member Functions

 SpecialFolder (char *pszTitleANSI, wchar_t *pszTitleUnicode, char *pszPath, int menuType)
 
virtual ~SpecialFolder ()
 
void Invoke (int button)
 
bool Active (bool bActivate)
 
void Attached (Menu *pMenu)
 
- Public Member Functions inherited from FolderItem
 FolderItem (Menu *pSubMenu, char *pszTitleANSI, wchar_t *pszTitleUnicode)
 
virtual ~FolderItem ()
 
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 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 ()
 

Public Attributes

char * m_pszPath
 
int m_MenuType
 
- 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
 

Additional Inherited Members

- Static Public Member Functions inherited from MenuItem
static bool Compare (MenuItem *pM1, MenuItem *pM2)
 

Constructor & Destructor Documentation

◆ SpecialFolder()

SpecialFolder::SpecialFolder ( char * pszTitleANSI,
wchar_t * pszTitleUnicode,
char * pszPath,
int menuType )
42 : FolderItem(NULL, pszTitleANSI, pszTitleUnicode)
43{
44 m_pszPath = pszPath ? _strdup(pszPath) : _strdup("");
45 m_MenuType = menuType;
46}
FolderItem(Menu *pSubMenu, char *pszTitleANSI, wchar_t *pszTitleUnicode)
Definition FolderItem.cpp:43
int m_MenuType
Definition SpecialFolder.h:49
char * m_pszPath
Definition SpecialFolder.h:48

◆ ~SpecialFolder()

SpecialFolder::~SpecialFolder ( )
virtual
49{
50 if (m_pszPath) free(m_pszPath);
51 m_pszPath = NULL;
52
53 if (m_pSubMenu)
54 {
55 m_pParent->RemoveChild(m_pSubMenu);
56 delete m_pSubMenu;
57 }
58 m_pSubMenu = NULL;
59}
Menu * m_pSubMenu
Definition MenuItem.h:181
Menu * m_pParent
Definition MenuItem.h:180

Member Function Documentation

◆ Invoke()

void SpecialFolder::Invoke ( int button)
virtual

Reimplemented from MenuItem.

64{
65 char folder[MAX_LINE_LENGTH], arg[MAX_LINE_LENGTH];
66 strcpy(folder, m_pszPath);
67
68 if (button == 2)
69 {
70// m_pParent->Hide(HIDE_PARENTS);
71 pMenuCommon->HideAfterInvoke(this, button);
72 MenuItem::Invoke(button);
73
74 if (strchr(folder, '|'))
75 {
76 // If this is a merged [path] item we use
77 // the first path when right clicking on it...
78 Tokenize(folder, arg, "|");
79 strcpy(folder, arg); // Note: Just using arg as a temp variable here...
80 }
81
82 if (folder[0] == '\"') StrRemoveEncap(folder);
83 strcpy(arg, "/e,");
84 strcat(arg, folder);
85
86 BBExecute(GetDesktopWindow(), NULL, "explorer.exe", arg, folder, SW_SHOWNORMAL, false);
87 }
88 else if (button == 3)
89 {
90 if (folder[0] == '\"') StrRemoveEncap(folder);
92 }
93}
LPSTR Tokenize(LPCSTR string, LPSTR buf, LPSTR delims)
Definition BBApi.cpp:273
MenuCommon * pMenuCommon
Definition Blackbox.cpp:41
bool CopyStringToClipboard(LPSTR string)
Definition BBApi.cpp:3450
LPSTR StrRemoveEncap(LPSTR string)
Definition BBApi.cpp:406
HINSTANCE BBExecute(HWND Owner, LPCSTR szOperation, LPCSTR szCommand, LPCSTR szArgs, LPCSTR szDirectory, int nShowCmd, bool noErrorMsgs)
Definition BBApi.cpp:1648
#define MAX_LINE_LENGTH
Definition BBApi.h:64
void HideAfterInvoke(MenuItem *item, int button)
Definition MenuCommon.cpp:1812
virtual void Invoke(int button)
Definition MenuItem.cpp:371

◆ Active()

bool SpecialFolder::Active ( bool bActivate)
virtual

Reimplemented from FolderItem.

98{
99 if (m_bActive == bActivate && m_pSubMenu)
100 {
101 if (IsWindowVisible(m_pSubMenu->GetWindow())) return bActivate;
102 }
103
104 if (bActivate)
105 {
106 if (m_pSubMenu)
107 {
108 if (m_pSubMenu->IsPinned()) return FolderItem::Active(bActivate);
109 ShowWindow(m_pSubMenu->GetWindow(), SW_HIDE);
110 m_pParent->RemoveChild(m_pSubMenu);
111 delete m_pSubMenu;
112 }
113
114 m_pSubMenu = new Menu(pMenuCommon->hInst);
115
119
120 m_pSubMenu->Invalidate();
121 m_pSubMenu->Validate();
122
123 m_pParent->AddChild(m_pSubMenu);
124 m_pSubMenu->SetParent(m_pParent);
125 m_pSubMenu->SetMenuFolderPath(m_pszPath);
126 }
127
128 return FolderItem::Active(bActivate);
129}
bool Active(bool bActivate)
Definition FolderItem.cpp:76
HINSTANCE hInst
Definition MenuCommon.h:94
void AddFooterItem(Menu *pMenu, LPSTR pszTitle)
Definition MenuCommon.cpp:813
void InsertFolder(Menu *pMenu, char *pszFolder, int menuType, bool includeSubFolders)
Definition MenuCommon.cpp:843
void AddHeaderItem(Menu *pMenu, LPSTR pszTitle)
Definition MenuCommon.cpp:791
bool m_bActive
Definition MenuItem.h:188
char * m_pszTitleANSI
Definition MenuItem.h:93

◆ Attached()

void SpecialFolder::Attached ( Menu * pMenu)
virtual

Reimplemented from FolderItem.

134{
136}
Menu * pMenu
Definition Blackbox.cpp:40

Member Data Documentation

◆ m_pszPath

char* SpecialFolder::m_pszPath

◆ m_MenuType

int SpecialFolder::m_MenuType