mirror of
https://github.com/cookiengineer/audacity
synced 2025-09-15 15:50:54 +02:00
EffectUIHost::Initialize uses ShuttleGui
This commit is contained in:
parent
eb3e5d8f6f
commit
c28c170cc0
@ -1009,44 +1009,48 @@ wxPanel *EffectUIHost::BuildButtonBar(wxWindow *parent)
|
|||||||
|
|
||||||
bool EffectUIHost::Initialize()
|
bool EffectUIHost::Initialize()
|
||||||
{
|
{
|
||||||
EffectPanel *w {};
|
|
||||||
{
|
{
|
||||||
auto vs = std::make_unique<wxBoxSizer>(wxVERTICAL);
|
auto gAudioIO = AudioIO::Get();
|
||||||
{
|
mDisableTransport = !gAudioIO->IsAvailable(mProject);
|
||||||
auto hs = std::make_unique<wxBoxSizer>(wxHORIZONTAL);
|
mPlaying = gAudioIO->IsStreamActive(); // not exactly right, but will suffice
|
||||||
|
mCapturing = gAudioIO->IsStreamActive() && gAudioIO->GetNumCaptureChannels() > 0;
|
||||||
|
}
|
||||||
|
|
||||||
Destroy_ptr<EffectPanel> uw{ safenew EffectPanel(this) };
|
EffectPanel *w {};
|
||||||
|
ShuttleGui S{ this, eIsCreating };
|
||||||
|
{
|
||||||
|
S.StartHorizontalLay( wxEXPAND );
|
||||||
|
{
|
||||||
|
Destroy_ptr<EffectPanel> uw{ safenew EffectPanel( S.GetParent() ) };
|
||||||
RTL_WORKAROUND(uw.get());
|
RTL_WORKAROUND(uw.get());
|
||||||
|
|
||||||
// Try to give the window a sensible default/minimum size
|
// Try to give the window a sensible default/minimum size
|
||||||
uw->SetMinSize(wxSize(wxMax(600, mParent->GetSize().GetWidth() * 2 / 3),
|
uw->SetMinSize(wxSize(wxMax(600, mParent->GetSize().GetWidth() * 2 / 3),
|
||||||
mParent->GetSize().GetHeight() / 2));
|
mParent->GetSize().GetHeight() / 2));
|
||||||
|
|
||||||
auto gAudioIO = AudioIO::Get();
|
|
||||||
mDisableTransport = !gAudioIO->IsAvailable(mProject);
|
|
||||||
mPlaying = gAudioIO->IsStreamActive(); // not exactly right, but will suffice
|
|
||||||
mCapturing = gAudioIO->IsStreamActive() && gAudioIO->GetNumCaptureChannels() > 0;
|
|
||||||
|
|
||||||
ShuttleGui S1{ uw.get(), eIsCreating };
|
ShuttleGui S1{ uw.get(), eIsCreating };
|
||||||
if (!mClient->PopulateUI(S1))
|
if (!mClient->PopulateUI(S1))
|
||||||
{
|
{
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
hs->Add((w = uw.release()), 1, wxEXPAND);
|
S.Prop( 1 )
|
||||||
vs->Add(hs.release(), 1, wxEXPAND);
|
.Position(wxEXPAND)
|
||||||
|
.AddWindow((w = uw.release()));
|
||||||
}
|
}
|
||||||
|
S.EndHorizontalLay();
|
||||||
|
|
||||||
wxPanel *buttonPanel = safenew wxPanelWrapper(this, wxID_ANY);
|
S.StartPanel();
|
||||||
const auto bar = BuildButtonBar( buttonPanel );
|
{
|
||||||
|
const auto bar = BuildButtonBar( S.GetParent() );
|
||||||
|
|
||||||
long buttons;
|
long buttons;
|
||||||
if ( mEffect && mEffect->ManualPage().empty() && mEffect->HelpPage().empty()) {
|
if ( mEffect && mEffect->ManualPage().empty() && mEffect->HelpPage().empty()) {
|
||||||
buttons = eApplyButton + eCloseButton;
|
buttons = eApplyButton | eCloseButton;
|
||||||
this->SetAcceleratorTable(wxNullAcceleratorTable);
|
this->SetAcceleratorTable(wxNullAcceleratorTable);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
buttons = eApplyButton + eCloseButton + eHelpButton;
|
buttons = eApplyButton | eCloseButton | eHelpButton;
|
||||||
wxAcceleratorEntry entries[1];
|
wxAcceleratorEntry entries[1];
|
||||||
#if defined(__WXMAC__)
|
#if defined(__WXMAC__)
|
||||||
// Is there a standard shortcut on Mac?
|
// Is there a standard shortcut on Mac?
|
||||||
@ -1058,13 +1062,12 @@ bool EffectUIHost::Initialize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (mEffect && mEffect->mUIDebug) {
|
if (mEffect && mEffect->mUIDebug) {
|
||||||
buttons += eDebugButton;
|
buttons |= eDebugButton;
|
||||||
}
|
}
|
||||||
|
|
||||||
buttonPanel->SetSizer(CreateStdButtonSizer(buttonPanel, buttons, bar).release());
|
S.AddStandardButtons(buttons, bar);
|
||||||
vs->Add(buttonPanel, 0, wxEXPAND);
|
}
|
||||||
|
S.EndPanel();
|
||||||
SetSizer(vs.release());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Layout();
|
Layout();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user