mirror of
https://github.com/cookiengineer/audacity
synced 2025-12-15 09:01:12 +01:00
Factor EffectUIHost::Initialize
This commit is contained in:
@@ -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;
|
||||
|
||||
@@ -137,6 +137,8 @@ public:
|
||||
bool Initialize();
|
||||
|
||||
private:
|
||||
wxPanel *BuildButtonBar( wxWindow *parent );
|
||||
|
||||
void OnInitDialog(wxInitDialogEvent & evt);
|
||||
void OnErase(wxEraseEvent & evt);
|
||||
void OnPaint(wxPaintEvent & evt);
|
||||
|
||||
Reference in New Issue
Block a user