Author Topic: Set program's arguments won't work  (Read 5925 times)

Offline machine392

  • Single posting newcomer
  • *
  • Posts: 2
Set program's arguments won't work
« on: March 05, 2015, 05:55:29 am »
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

Offline Jenna

  • Administrator
  • Lives here!
  • *****
  • Posts: 7255
Re: Set program's arguments won't work
« Reply #1 on: March 05, 2015, 06:07:34 am »
Do you use a project or just a single file ?

Offline machine392

  • Single posting newcomer
  • *
  • Posts: 2
Re: Set program's arguments won't work
« Reply #2 on: March 05, 2015, 06:14:00 am »
single file

Offline Jenna

  • Administrator
  • Lives here!
  • *****
  • Posts: 7255
Re: Set program's arguments won't work
« Reply #3 on: March 05, 2015, 06:26:46 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).

Offline Pecan

  • Plugin developer
  • Lives here!
  • ****
  • Posts: 2778
Re: Set program's arguments won't work
« Reply #4 on: March 05, 2015, 08:01:48 pm »
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:
Code
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)