mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-09-02 19:26:32 +00:00
disable start menu entries for non-existing folders
svn path=/branches/lean-explorer/; revision=8417
This commit is contained in:
@@ -1008,7 +1008,7 @@ void StartMenu::CreateSubmenu(int id, LPCTSTR title, CREATORFUNC_INFO 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 {
|
||||
SpecialFolderPath folder(folder_id, _hwnd);
|
||||
@@ -1017,12 +1017,17 @@ void StartMenu::CreateSubmenu(int id, int folder_id, LPCTSTR title, CREATORFUNC_
|
||||
new_folders.push_back(folder);
|
||||
|
||||
CreateSubmenu(id, new_folders, title, creator);
|
||||
|
||||
return true;
|
||||
} catch(COMException&) {
|
||||
// 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;
|
||||
|
||||
@@ -1036,8 +1041,14 @@ void StartMenu::CreateSubmenu(int id, int folder_id1, int folder_id2, LPCTSTR ti
|
||||
} catch(COMException&) {
|
||||
}
|
||||
|
||||
if (!new_folders.empty())
|
||||
if (!new_folders.empty()) {
|
||||
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)
|
||||
|
||||
@@ -279,8 +279,8 @@ protected:
|
||||
bool CloseSubmenus() {return CloseOtherSubmenus();}
|
||||
bool CloseOtherSubmenus(int id=0);
|
||||
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);
|
||||
void CreateSubmenu(int id, int folder1, int folder2, LPCTSTR title, CREATORFUNC_INFO creator=s_def_creator);
|
||||
bool CreateSubmenu(int id, int folder, 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 ActivateEntry(int id, const ShellEntrySet& entries);
|
||||
virtual void CloseStartMenu(int id=0);
|
||||
|
||||
Reference in New Issue
Block a user