... reduces direct dependencies of ToolManager.cpp.
This frees four files from cycles:
DeviceToolBar
EditToolBar
MeterToolBar
MixerToolBar
Leaving 66 files still in the big s.c.c.
... New files, but (almost) empty; don't use the global variable gAudioIO,
but use one of two accessor function names (which are the same function for
now).
AudioIOBase will have fewer dependencies than AudioIO -- in particular, no
dependency on tracks.
It won't include StartStream. It will contain functions to query the
present state of streams, and device capabilities.
... and break its compile dependency on CommandManager.h by letting it install
callbacks.
This also removes Objective-C mixed code from CommmandManager.
This also eliminates four inclusions of Project.h!
Capture handler state is also global, not per project, though the
CommandManager's callbacks still do depend on the active project.
... Unnecessary because transitively included.
But each .cpp file still includes its own .h file near the top to ensure
that it compiles indenendently, even if it is reincluded transitively later.
... except Audacity.h
This forces us to make each header contain all forward declarations or nested
headers that it requires, rather than depend on context.
Worth doing for users with wide screens, who want to use the toolbar at full screen width.
Both toolbars can now expand to a little over 2000 pixels width.
Note that the max sizes affect what is drawn. You can make the toolbars wider still, but the sliders inside them won't continue to lengthen.
The third argument of ASlider constructors already provided suitable accessibility names. So removed the unnecessary calls to SetName which set unsuitable names.
This fixes the problem on GTK where the text was unreadable when
using a "dark" theme.
And fixes the double display of the real tooltip and the tip panel
being displayed at the same time on GTK and OSX. It seems that
the "disabling/reenabling" of tooltips doesn't take affect right
away anymore...maybe it never did.
It had been causing problems in Unity for a while now and they
were missing on OSX as well in wx3. So, the old menu Open/Close
method of hiding has been removed and replaced with an event
filter/monitor which looks for wxEVT_CHAR_HOOK events to pass
key events to the handler that has the keyboard captured.
It was producing "ghost" windows on OSX in wx3. These were
supposed to be hidden, but they weren't any longer and after
reviewing TipPanel, I realized that there was a separate
code path for OSX entirely...must've gone back to some of the
earliest versions.
Now all platforms use the same bit of code.