mirror of
https://github.com/reactos/reactos.git
synced 2025-02-25 09:50:02 +00:00
disable start menu entries for non-existing folders
svn path=/trunk/; revision=8416
This commit is contained in:
parent
9bcc74655c
commit
11562074f2
2 changed files with 16 additions and 5 deletions
|
@ -1009,7 +1009,7 @@ void StartMenu::CreateSubmenu(int id, LPCTSTR title, CREATORFUNC_INFO creator)
|
||||||
CreateSubmenu(id, StartMenuFolders(), title, creator);
|
CreateSubmenu(id, StartMenuFolders(), title, creator);
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartMenu::CreateSubmenu(int id, int folder_id, LPCTSTR title, CREATORFUNC_INFO creator)
|
bool StartMenu::CreateSubmenu(int id, int folder_id, LPCTSTR title, CREATORFUNC_INFO creator)
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
SpecialFolderPath folder(folder_id, _hwnd);
|
SpecialFolderPath folder(folder_id, _hwnd);
|
||||||
|
@ -1018,12 +1018,17 @@ void StartMenu::CreateSubmenu(int id, int folder_id, LPCTSTR title, CREATORFUNC_
|
||||||
new_folders.push_back(folder);
|
new_folders.push_back(folder);
|
||||||
|
|
||||||
CreateSubmenu(id, new_folders, title, creator);
|
CreateSubmenu(id, new_folders, title, creator);
|
||||||
|
|
||||||
|
return true;
|
||||||
} catch(COMException&) {
|
} catch(COMException&) {
|
||||||
// ignore Exception and don't display anything
|
// ignore Exception and don't display anything
|
||||||
|
CloseOtherSubmenus(id);
|
||||||
|
_buttons[GetSelectionIndex()]._enabled = false; // disable entries for non-existing folders
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartMenu::CreateSubmenu(int id, int folder_id1, int folder_id2, LPCTSTR title, CREATORFUNC_INFO creator)
|
bool StartMenu::CreateSubmenu(int id, int folder_id1, int folder_id2, LPCTSTR title, CREATORFUNC_INFO creator)
|
||||||
{
|
{
|
||||||
StartMenuFolders new_folders;
|
StartMenuFolders new_folders;
|
||||||
|
|
||||||
|
@ -1037,8 +1042,14 @@ void StartMenu::CreateSubmenu(int id, int folder_id1, int folder_id2, LPCTSTR ti
|
||||||
} catch(COMException&) {
|
} catch(COMException&) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!new_folders.empty())
|
if (!new_folders.empty()) {
|
||||||
CreateSubmenu(id, new_folders, title, creator);
|
CreateSubmenu(id, new_folders, title, creator);
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
CloseOtherSubmenus(id);
|
||||||
|
_buttons[GetSelectionIndex()]._enabled = false; // disable entries for non-existing folders
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void StartMenu::CreateSubmenu(int id, const StartMenuFolders& new_folders, LPCTSTR title, CREATORFUNC_INFO creator)
|
void StartMenu::CreateSubmenu(int id, const StartMenuFolders& new_folders, LPCTSTR title, CREATORFUNC_INFO creator)
|
||||||
|
|
|
@ -279,8 +279,8 @@ protected:
|
||||||
bool CloseSubmenus() {return CloseOtherSubmenus();}
|
bool CloseSubmenus() {return CloseOtherSubmenus();}
|
||||||
bool CloseOtherSubmenus(int id=0);
|
bool CloseOtherSubmenus(int id=0);
|
||||||
void CreateSubmenu(int id, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator);
|
void CreateSubmenu(int id, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator);
|
||||||
void CreateSubmenu(int id, int folder, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator);
|
bool CreateSubmenu(int id, int folder, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator);
|
||||||
void CreateSubmenu(int id, int folder1, int folder2, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator);
|
bool CreateSubmenu(int id, int folder1, int folder2, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator);
|
||||||
void CreateSubmenu(int id, const StartMenuFolders& new_folders, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator);
|
void CreateSubmenu(int id, const StartMenuFolders& new_folders, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator);
|
||||||
void ActivateEntry(int id, const ShellEntrySet& entries);
|
void ActivateEntry(int id, const ShellEntrySet& entries);
|
||||||
virtual void CloseStartMenu(int id=0);
|
virtual void CloseStartMenu(int id=0);
|
||||||
|
|
Loading…
Reference in a new issue