mirror of
https://github.com/cookiengineer/audacity
synced 2025-11-15 01:23:52 +01:00
Revert fix for bug 1119, which made bad dependency cycles
This reverts commit4475dee373. This reverts commit18cbc2e574.
This commit is contained in:
@@ -7,16 +7,12 @@
|
||||
|
||||
#ifdef __WXMAC__
|
||||
|
||||
#include "WindowMenus.h"
|
||||
|
||||
#include "../CommonCommandFlags.h"
|
||||
#include "../Menus.h"
|
||||
#include "../Project.h"
|
||||
#include "../commands/CommandContext.h"
|
||||
|
||||
#include <wx/frame.h>
|
||||
#include <wx/menu.h>
|
||||
#include <wx/menuitem.h>
|
||||
|
||||
#undef USE_COCOA
|
||||
|
||||
@@ -61,68 +57,7 @@ void DoMacMinimize(AudacityProject *project)
|
||||
namespace WindowActions {
|
||||
|
||||
// exported helper functions
|
||||
|
||||
// Refreshes the Window menu in all projects
|
||||
void Refresh()
|
||||
{
|
||||
// Must do it in all projects
|
||||
for (auto thisProject : AllProjects{})
|
||||
{
|
||||
// Need the projects frame, but this should always be successful
|
||||
wxFrame *frame = thisProject->GetFrame();
|
||||
wxASSERT(frame != NULL);
|
||||
if (!frame)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// This can happen if we are called before the menubar is set in the frame
|
||||
wxMenuBar *bar = frame->GetMenuBar();
|
||||
if (!bar)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// Should always find the Window menu
|
||||
int pos = bar->FindMenu(wxT("Window"));
|
||||
wxASSERT(pos != wxNOT_FOUND);
|
||||
if (pos == wxNOT_FOUND)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
// We can not get the menu proper
|
||||
wxMenu *menu = bar->GetMenu(pos);
|
||||
|
||||
// Remove all existing window items
|
||||
for (auto item : menu->GetMenuItems())
|
||||
{
|
||||
if (item->GetId() >= WindowActions::ID_BASE)
|
||||
{
|
||||
menu->Destroy(item);
|
||||
}
|
||||
}
|
||||
|
||||
// Add all projects to this project's Window menu
|
||||
for (auto project : AllProjects{})
|
||||
{
|
||||
int itemId = WindowActions::ID_BASE + project->GetProjectNumber();
|
||||
wxString itemName = project->GetFrame()->GetTitle();
|
||||
bool isActive = (GetActiveProject() == project.get());
|
||||
|
||||
// This should never really happen, but a menu item must have a name
|
||||
if (itemName.empty())
|
||||
{
|
||||
itemName = _("<untitled>");
|
||||
}
|
||||
|
||||
// Add it to the menu and check it if it's the active project
|
||||
wxMenuItem *item = menu->Append(itemId, itemName);
|
||||
item->SetCheckable(true);
|
||||
item->Check(isActive);
|
||||
}
|
||||
}
|
||||
}
|
||||
// none
|
||||
|
||||
// Menu handler functions
|
||||
|
||||
@@ -187,9 +122,9 @@ namespace {
|
||||
using namespace MenuTable;
|
||||
BaseItemSharedPtr WindowMenu()
|
||||
{
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// poor imitation of the Mac Windows Menu
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
// poor imitation of the Mac Windows Menu
|
||||
//////////////////////////////////////////////////////////////////////////
|
||||
static BaseItemSharedPtr menu{
|
||||
( FinderScope{ findCommandHandler },
|
||||
Menu( wxT("Window"), XO("&Window"),
|
||||
@@ -209,16 +144,7 @@ BaseItemSharedPtr WindowMenu()
|
||||
* windows un-hidden */
|
||||
Command( wxT("MacBringAllToFront"), XXO("&Bring All to Front"),
|
||||
FN(OnMacBringAllToFront), AlwaysEnabledFlag )
|
||||
),
|
||||
|
||||
Section( "",
|
||||
Special( wxT("PopulateWindowsStep"),
|
||||
[](AudacityProject &, wxMenu &theMenu)
|
||||
{
|
||||
// Should something be done here???
|
||||
} )
|
||||
)
|
||||
|
||||
) ) };
|
||||
return menu;
|
||||
}
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
#include "../Audacity.h"
|
||||
|
||||
#include "../commands/CommandManager.h"
|
||||
|
||||
#ifdef __WXMAC__
|
||||
|
||||
/// Namespace for functions for window management (mac only?)
|
||||
namespace WindowActions {
|
||||
|
||||
// Range of assigned menu IDs
|
||||
static const wxWindowID ID_BASE = 30000;
|
||||
static const wxWindowID ID_LAST = 30999;
|
||||
|
||||
// Exported helper functions
|
||||
void Refresh();
|
||||
};
|
||||
|
||||
#else
|
||||
|
||||
// Not WXMAC.
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user