1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-12-15 09:01:12 +01:00

Factor EffectUIHost::Initialize

This commit is contained in:
Paul Licameli
2017-10-27 14:26:40 -04:00
parent 1c84932dfa
commit eb3e5d8f6f
2 changed files with 154 additions and 146 deletions

View File

@@ -856,42 +856,13 @@ int EffectUIHost::ShowModal()
// EffectUIHost implementation
// ============================================================================
bool EffectUIHost::Initialize()
wxPanel *EffectUIHost::BuildButtonBar(wxWindow *parent)
{
EffectPanel *w {};
{
auto vs = std::make_unique<wxBoxSizer>(wxVERTICAL);
{
auto hs = std::make_unique<wxBoxSizer>(wxHORIZONTAL);
Destroy_ptr<EffectPanel> uw{ safenew EffectPanel(this) };
RTL_WORKAROUND(uw.get());
// Try to give the window a sensible default/minimum size
uw->SetMinSize(wxSize(wxMax(600, mParent->GetSize().GetWidth() * 2 / 3),
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 };
if (!mClient->PopulateUI(S1))
{
return false;
}
hs->Add((w = uw.release()), 1, wxEXPAND);
vs->Add(hs.release(), 1, wxEXPAND);
}
wxPanel *buttonPanel = safenew wxPanelWrapper(this, wxID_ANY);
wxPanel *const bar = safenew wxPanelWrapper(buttonPanel, wxID_ANY);
const auto bar = safenew wxPanelWrapper(parent, wxID_ANY);
// This fools NVDA into not saying "Panel" when the dialog gets focus
bar->SetName(wxT("\a"));
bar->SetLabel(wxT("\a"));
bar->SetName(TranslatableString::Inaudible);
bar->SetLabel(TranslatableString::Inaudible);
{
auto bs = std::make_unique<wxBoxSizer>(wxHORIZONTAL);
@@ -944,8 +915,7 @@ bool EffectUIHost::Initialize()
}
else if (mEffect &&
(mEffect->GetType() != EffectTypeAnalyze) &&
(mEffect->GetType() != EffectTypeTool)
)
(mEffect->GetType() != EffectTypeTool) )
{
wxASSERT(bar); // To justify safenew
mPlayToggleBtn = safenew wxButton(bar, kPlayID, _("&Preview"));
@@ -1034,6 +1004,42 @@ bool EffectUIHost::Initialize()
bar->SetSizerAndFit(bs.release());
}
return bar;
}
bool EffectUIHost::Initialize()
{
EffectPanel *w {};
{
auto vs = std::make_unique<wxBoxSizer>(wxVERTICAL);
{
auto hs = std::make_unique<wxBoxSizer>(wxHORIZONTAL);
Destroy_ptr<EffectPanel> uw{ safenew EffectPanel(this) };
RTL_WORKAROUND(uw.get());
// Try to give the window a sensible default/minimum size
uw->SetMinSize(wxSize(wxMax(600, mParent->GetSize().GetWidth() * 2 / 3),
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 };
if (!mClient->PopulateUI(S1))
{
return false;
}
hs->Add((w = uw.release()), 1, wxEXPAND);
vs->Add(hs.release(), 1, wxEXPAND);
}
wxPanel *buttonPanel = safenew wxPanelWrapper(this, wxID_ANY);
const auto bar = BuildButtonBar( buttonPanel );
long buttons;
if ( mEffect && mEffect->ManualPage().empty() && mEffect->HelpPage().empty()) {
buttons = eApplyButton + eCloseButton;

View File

@@ -137,6 +137,8 @@ public:
bool Initialize();
private:
wxPanel *BuildButtonBar( wxWindow *parent );
void OnInitDialog(wxInitDialogEvent & evt);
void OnErase(wxEraseEvent & evt);
void OnPaint(wxPaintEvent & evt);