News:

Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!

Main Menu

Set program's arguments won't work

Started by machine392, March 05, 2015, 05:55:29 AM

Previous topic - Next topic

machine392

When I click on "Set program's arguments" under "Project" in the toolbar, nothing happens. Nothing pops up. Any ideas on how to fix this? I need to work on an assignment which involves command line arguments. Thx

Jenna

Do you use a project or just a single file ?


Jenna

Quote from: machine392 on March 05, 2015, 06:14:00 AM
single file
There it does not work.
The whole "Project"-menu should be disabled in my opinion if no project is active.
I fix this if I find the time (and don't forget it).

Pecan

Quote from: jens on March 05, 2015, 06:26:46 AM
Quote from: machine392 on March 05, 2015, 06:14:00 AM
single file
There it does not work.
The whole "Project"-menu should be disabled in my opinion if no project is active.
I fix this if I find the time (and don't forget it).

This may save you some headaches:
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)