Index: src/src/projectmanagerui.cpp
===================================================================
--- src/src/projectmanagerui.cpp (revision 10131)
+++ src/src/projectmanagerui.cpp (working copy)
@@ -181,8 +181,42 @@
EVT_MENU(idMenuViewFileMasks, ProjectManagerUI::OnViewFileMasks)
EVT_MENU(idMenuFindFile, ProjectManagerUI::OnFindFile)
EVT_IDLE( ProjectManagerUI::OnIdle)
-END_EVENT_TABLE()
+ EVT_UPDATE_UI(idMenuAddFile, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuAddFilesRecursively, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuRemoveFile, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuAddFilePopup, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuAddFilesRecursivelyPopup, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuRemoveFolderFilesPopup, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuOpenFolderFilesPopup, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuRemoveFilePopup, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuRenameFile, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuSaveProject, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuSaveFile, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuCloseProject, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuCloseFile, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuOpenFile, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuProjectNotes, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuProjectProperties, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuFileProperties, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuTreeOptionsCompile, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuTreeOptionsLink, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuTreeProjectProperties, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuTreeFileProperties, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuGotoFile, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuExecParams, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuViewCategorize, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuViewUseFolders, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuViewHideFolderName, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuViewCategorizePopup, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuViewUseFoldersPopup, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuViewHideFolderNamePopup, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuViewFileMasks, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuFindFile, ProjectManagerUI::OnUpdateUI)
+ EVT_UPDATE_UI(idMenuProjectTreeProps, ProjectManagerUI::OnUpdateUI)
+
+ END_EVENT_TABLE()
+
ProjectManagerUI::ProjectManagerUI() :
m_pTree(nullptr),
m_TreeFreezeCounter(0),
@@ -483,7 +517,21 @@
{
if (menu->GetMenuItemCount())
menu->AppendSeparator();
- menu->Append(idMenuAddFile, _("Add files..."), _("Add files to the project"));
+//- menu->Append(idMenuAddFile, _("Add files..."), _("Add files to the project"));
+
+ // FIXME (ph#): 2014/10/13 fix wxMSW enable/disable menu bug.
+ // wxWidgets is not allowing enable/disable of any items on the &Project menu.
+ // Nor is it allowing accelerators to be added.
+ // The workaround is to add a bmp to the first menu item.
+ // The situation is still peculiar in that an the OnUpdateUI() function
+ // cannot issue an event.Skip() else the menu item will revert to
+ // the the state in which it was created, niz. always enabled.
+ // Note: this is the only menu panel built by a call from main.cpp.
+
+ wxMenuItem* pAddFiles = new wxMenuItem(menu, idMenuAddFile, _T("Add files..."), _T("Add files to the project"));
+ pAddFiles->SetBitmap(wxArtProvider::GetBitmap(wxART_FILE_OPEN));
+ menu->Append(pAddFiles);
+
menu->Append(idMenuAddFilesRecursively, _("Add files recursively..."), _("Add files recursively to the project"));
menu->Append(idMenuRemoveFile, _("Remove files..."), _("Remove files from the project"));
@@ -2126,12 +2174,22 @@
void ProjectManagerUI::OnUpdateUI(wxUpdateUIEvent& event)
{
- event.Skip();
+ // FIXME (ph#): 2014/10/13 fix enable/disable Project menu items
+ // If event.Skip() is used here, the menu item will always revert to
+ // the status it had when built, niz, enabled
+ // Note: this is the only menu panel built via a call from
+ // main.cpp (ie. a different wxEvtHandler).
+
+ if (Manager::IsAppShuttingDown())
+ return;
+ event.Enable(Manager::Get()->GetProjectManager()->GetActiveProject() != 0);
+ //-event.Skip();
}
void ProjectManagerUI::OnIdle(wxIdleEvent& event)
{
event.Skip();
+
}
void ProjectManagerUI::OnRenameFile(cb_unused wxCommandEvent& event)