mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-10 09:01:13 +02:00
Distinct button bars for graphical and textual modes
This bit the textual mode plain old text based buttons and retains the bitmap buttons for graphical mode. It also allowed me to remove the manual accelerator table building (no access keys in GUI mode) which was a good thing as I really didn't know if the was gonna work for non-English keyboards anyway.
This commit is contained in:
parent
cd94cceb8a
commit
7b6cbeec22
@ -158,6 +158,7 @@ public:
|
|||||||
|
|
||||||
virtual void SetUIHost(EffectUIHostInterface *host) = 0;
|
virtual void SetUIHost(EffectUIHostInterface *host) = 0;
|
||||||
virtual bool PopulateUI(wxWindow *parent) = 0;
|
virtual bool PopulateUI(wxWindow *parent) = 0;
|
||||||
|
virtual bool IsGraphicalUI() = 0;
|
||||||
virtual bool ValidateUI() = 0;
|
virtual bool ValidateUI() = 0;
|
||||||
virtual bool HideUI() = 0;
|
virtual bool HideUI() = 0;
|
||||||
virtual bool CloseUI() = 0;
|
virtual bool CloseUI() = 0;
|
||||||
|
@ -2148,52 +2148,11 @@ bool EffectUIHost::Initialize()
|
|||||||
mCapturing = gAudioIO->IsStreamActive() && gAudioIO->GetNumCaptureChannels() > 0;
|
mCapturing = gAudioIO->IsStreamActive() && gAudioIO->GetNumCaptureChannels() > 0;
|
||||||
|
|
||||||
wxPanel *bar = new wxPanel(this, wxID_ANY);
|
wxPanel *bar = new wxPanel(this, wxID_ANY);
|
||||||
wxBoxSizer *bs = new wxBoxSizer(wxHORIZONTAL);
|
|
||||||
bar->SetSizer(bs);
|
|
||||||
|
|
||||||
mMenuBtn = new wxBitmapButton(bar, kMenuID, CreateBitmap(effect_menu_xpm, true, false));
|
|
||||||
SetLabelAndTip(mMenuBtn, _("&Manage"));
|
|
||||||
bs->Add(mMenuBtn);
|
|
||||||
|
|
||||||
mOnBM = CreateBitmap(effect_on_xpm, true, false);
|
|
||||||
mOffBM = CreateBitmap(effect_off_xpm, true, false);
|
|
||||||
mOffDisabledBM = CreateBitmap(effect_off_disabled_xpm, true, false);
|
|
||||||
mPowerBtn = new wxBitmapButton(bar, kPowerID, mOnBM);
|
|
||||||
mPowerBtn->SetBitmapDisabled(mOffDisabledBM);
|
|
||||||
bs->Add(mPowerBtn);
|
|
||||||
|
|
||||||
bs->Add(5, 5);
|
|
||||||
|
|
||||||
mPlayBM = CreateBitmap(effect_play_xpm, true, false);
|
|
||||||
mPlayDisabledBM = CreateBitmap(effect_play_disabled_xpm, true, false);
|
|
||||||
mStopBM = CreateBitmap(effect_stop_xpm, true, false);
|
|
||||||
mStopDisabledBM = CreateBitmap(effect_stop_disabled_xpm, true, false);
|
|
||||||
mPlayBtn = new wxBitmapButton(bar, kPlayID, mPlayBM);
|
|
||||||
mPlayBtn->SetBitmapDisabled(mPlayDisabledBM);
|
|
||||||
bs->Add(mPlayBtn);
|
|
||||||
|
|
||||||
mRewindBtn = new wxBitmapButton(bar, kRewindID, CreateBitmap(effect_rewind_xpm, true, true));
|
|
||||||
mRewindBtn->SetBitmapDisabled(CreateBitmap(effect_rewind_disabled_xpm, true, true));
|
|
||||||
SetLabelAndTip(mRewindBtn, _("Skip &backward"));
|
|
||||||
bs->Add(mRewindBtn);
|
|
||||||
|
|
||||||
mFFwdBtn = new wxBitmapButton(bar, kFFwdID, CreateBitmap(effect_ffwd_xpm, true, true));
|
|
||||||
mFFwdBtn->SetBitmapDisabled(CreateBitmap(effect_ffwd_disabled_xpm, true, true));
|
|
||||||
SetLabelAndTip(mFFwdBtn, _("Skip &forward"));
|
|
||||||
bs->Add(mFFwdBtn);
|
|
||||||
|
|
||||||
// All done...generate and set the accelerator table
|
|
||||||
SetLabelAndTip(NULL);
|
|
||||||
|
|
||||||
bar->SetSizerAndFit(bs);
|
|
||||||
|
|
||||||
wxSizer *s = CreateStdButtonSizer(this, eApplyButton | eCloseButton, bar);
|
wxSizer *s = CreateStdButtonSizer(this, eApplyButton | eCloseButton, bar);
|
||||||
|
|
||||||
mApplyBtn = (wxButton *) FindWindowById(wxID_APPLY);
|
mApplyBtn = (wxButton *) FindWindowById(wxID_APPLY);
|
||||||
mCloseBtn = (wxButton *) FindWindowById(wxID_CANCEL);
|
mCloseBtn = (wxButton *) FindWindowById(wxID_CANCEL);
|
||||||
|
|
||||||
UpdateControls();
|
|
||||||
|
|
||||||
hs->Add(w, 1, wxEXPAND);
|
hs->Add(w, 1, wxEXPAND);
|
||||||
vs->Add(hs, 1, wxEXPAND);
|
vs->Add(hs, 1, wxEXPAND);
|
||||||
vs->Add(s, 0, wxEXPAND | wxALIGN_CENTER_VERTICAL);
|
vs->Add(s, 0, wxEXPAND | wxALIGN_CENTER_VERTICAL);
|
||||||
@ -2204,6 +2163,93 @@ bool EffectUIHost::Initialize()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mIsGUI = mClient->IsGraphicalUI();
|
||||||
|
|
||||||
|
wxBoxSizer *bs = new wxBoxSizer(wxHORIZONTAL);
|
||||||
|
bar->SetSizer(bs);
|
||||||
|
|
||||||
|
wxBitmapButton *bb;
|
||||||
|
|
||||||
|
if (!mIsGUI)
|
||||||
|
{
|
||||||
|
mMenuBtn = new wxButton(bar, kMenuID, _("&Manage"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mMenuBtn = new wxBitmapButton(bar, kMenuID, CreateBitmap(effect_menu_xpm, true, false));
|
||||||
|
}
|
||||||
|
mMenuBtn->SetToolTip(_("Manage presets and options"));
|
||||||
|
bs->Add(mMenuBtn);
|
||||||
|
|
||||||
|
if (!mIsGUI)
|
||||||
|
{
|
||||||
|
mPowerToggleBtn = new wxButton(bar, kPowerID, _("Turn Power &On"));
|
||||||
|
mPowerToggleBtn->SetToolTip(_("Power effect on or off (enable or disable"));
|
||||||
|
bs->Add(mPowerToggleBtn);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mOnBM = CreateBitmap(effect_on_xpm, true, false);
|
||||||
|
mOffBM = CreateBitmap(effect_off_xpm, true, false);
|
||||||
|
mOffDisabledBM = CreateBitmap(effect_off_disabled_xpm, true, false);
|
||||||
|
bb = new wxBitmapButton(bar, kPowerID, mOnBM);
|
||||||
|
bb->SetBitmapDisabled(mOffDisabledBM);
|
||||||
|
mPowerBtn = bb;
|
||||||
|
mPowerBtn->SetToolTip(_("Power effect on or off (enable or disable"));
|
||||||
|
bs->Add(mPowerBtn);
|
||||||
|
}
|
||||||
|
|
||||||
|
bs->Add(5, 5);
|
||||||
|
|
||||||
|
if (!mIsGUI)
|
||||||
|
{
|
||||||
|
mPlayToggleBtn = new wxButton(bar, kPlayID, _("Start &Playback"));
|
||||||
|
mPlayToggleBtn->SetToolTip(_("Start and stop playback"));
|
||||||
|
bs->Add(mPlayToggleBtn);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
mPlayBM = CreateBitmap(effect_play_xpm, true, false);
|
||||||
|
mPlayDisabledBM = CreateBitmap(effect_play_disabled_xpm, true, false);
|
||||||
|
mStopBM = CreateBitmap(effect_stop_xpm, true, false);
|
||||||
|
mStopDisabledBM = CreateBitmap(effect_stop_disabled_xpm, true, false);
|
||||||
|
bb = new wxBitmapButton(bar, kPlayID, mPlayBM);
|
||||||
|
bb->SetBitmapDisabled(mPlayDisabledBM);
|
||||||
|
mPlayBtn = bb;
|
||||||
|
mPlayBtn->SetToolTip(_("Start and stop playback"));
|
||||||
|
bs->Add(mPlayBtn);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mIsGUI)
|
||||||
|
{
|
||||||
|
mRewindBtn = new wxButton(bar, kRewindID, _("Skip &Backward"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bb = new wxBitmapButton(bar, kRewindID, CreateBitmap(effect_rewind_xpm, true, true));
|
||||||
|
bb->SetBitmapDisabled(CreateBitmap(effect_rewind_disabled_xpm, true, true));
|
||||||
|
mRewindBtn = bb;
|
||||||
|
}
|
||||||
|
mRewindBtn->SetToolTip(_("Skip backward"));
|
||||||
|
bs->Add(mRewindBtn);
|
||||||
|
|
||||||
|
if (!mIsGUI)
|
||||||
|
{
|
||||||
|
mFFwdBtn = new wxButton(bar, kFFwdID, _("Skip &Forward"));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bb = new wxBitmapButton(bar, kFFwdID, CreateBitmap(effect_ffwd_xpm, true, true));
|
||||||
|
bb->SetBitmapDisabled(CreateBitmap(effect_ffwd_disabled_xpm, true, true));
|
||||||
|
mFFwdBtn = bb;
|
||||||
|
}
|
||||||
|
mFFwdBtn->SetToolTip(_("Skip forward"));
|
||||||
|
bs->Add(mFFwdBtn);
|
||||||
|
|
||||||
|
UpdateControls();
|
||||||
|
|
||||||
|
bar->Layout();
|
||||||
|
bar->Fit();
|
||||||
Layout();
|
Layout();
|
||||||
Fit();
|
Fit();
|
||||||
Center();
|
Center();
|
||||||
@ -2705,91 +2751,88 @@ wxBitmap EffectUIHost::CreateBitmap(const char *xpm[], bool up, bool pusher)
|
|||||||
return mod;
|
return mod;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We use an accelerator table in addition to the normal "&" mnemonic
|
|
||||||
// so that they work on Windows and GTK...no accelerators on OSX and
|
|
||||||
// the wxBitmapButton under GTK didn't seem to like the mnemonics.
|
|
||||||
//
|
|
||||||
// On Windows, this also keeps the focus from jumping to the associated
|
|
||||||
// button, forcing keyboard users to have to constantly TAB back to the
|
|
||||||
// control they were on. This problem appears to be related to the use
|
|
||||||
// of wxBitmapButton and how it is currently implemented in wx2.8.12.
|
|
||||||
//
|
|
||||||
// I'm hoping that when we transition to wx3 all of this can go away.
|
|
||||||
void EffectUIHost::SetLabelAndTip(wxBitmapButton *btn, const wxString & label, bool setAccel)
|
|
||||||
{
|
|
||||||
if (btn != NULL)
|
|
||||||
{
|
|
||||||
size_t pos = label.Find(wxT('&'));
|
|
||||||
if (pos != wxNOT_FOUND && pos < label.Length() - 1)
|
|
||||||
{
|
|
||||||
wxChar c = wxToupper(label[pos + 1]);
|
|
||||||
if (setAccel)
|
|
||||||
{
|
|
||||||
mAccels.Add(wxAcceleratorEntry(wxACCEL_ALT, c, btn->GetId()));
|
|
||||||
}
|
|
||||||
#if defined(__WXMAC__)
|
|
||||||
btn->SetName(label);
|
|
||||||
#else
|
|
||||||
btn->SetLabel(label);
|
|
||||||
#endif
|
|
||||||
btn->SetToolTip(wxStripMenuCodes(label)
|
|
||||||
#if !defined(__WXMAC__)
|
|
||||||
+ wxT(" (ALT+") + c + wxT(")")
|
|
||||||
#endif
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
wxAcceleratorEntry *entries = new wxAcceleratorEntry[mAccels.GetCount()];
|
|
||||||
for (size_t i = 0, cnt = mAccels.GetCount(); i < cnt; i++)
|
|
||||||
{
|
|
||||||
entries[i] = mAccels[i];
|
|
||||||
}
|
|
||||||
SetAcceleratorTable(wxAcceleratorTable(mAccels.GetCount(), entries));
|
|
||||||
delete [] entries;
|
|
||||||
mAccels.Empty();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void EffectUIHost::UpdateControls()
|
void EffectUIHost::UpdateControls()
|
||||||
{
|
{
|
||||||
mApplyBtn->Enable(!mCapturing);
|
mApplyBtn->Enable(!mCapturing);
|
||||||
mPowerBtn->Enable(!mCapturing);
|
|
||||||
mPlayBtn->Enable(!mCapturing);
|
|
||||||
mRewindBtn->Enable(!mCapturing);
|
mRewindBtn->Enable(!mCapturing);
|
||||||
mFFwdBtn->Enable(!mCapturing);
|
mFFwdBtn->Enable(!mCapturing);
|
||||||
|
|
||||||
|
wxBitmapButton *bb;
|
||||||
|
|
||||||
if (mPlaying)
|
if (mPlaying)
|
||||||
{
|
{
|
||||||
mPlayBtn->SetBitmapLabel(mStopBM);
|
if (!mIsGUI)
|
||||||
mPlayBtn->SetBitmapDisabled(mStopDisabledBM);
|
{
|
||||||
/* i18n-hint: The access key "&P" should be the same in
|
/* i18n-hint: The access key "&P" should be the same in
|
||||||
"Stop &Playback" and "Start &Playback" */
|
"Stop &Playback" and "Start &Playback" */
|
||||||
SetLabelAndTip(mPlayBtn, _("Stop &Playback"), false);
|
mPlayToggleBtn->SetLabel(_("Stop &Playback"));
|
||||||
|
//mPlayToggleBtn->SetValue(true);
|
||||||
|
mPlayToggleBtn->Enable(!mCapturing);
|
||||||
|
mPlayToggleBtn->Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bb = (wxBitmapButton *) mPlayBtn;
|
||||||
|
bb->SetBitmapLabel(mStopBM);
|
||||||
|
bb->SetBitmapDisabled(mStopDisabledBM);
|
||||||
|
mPlayBtn->Enable(!mCapturing);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mPlayBtn->SetBitmapLabel(mPlayBM);
|
if (!mIsGUI)
|
||||||
mPlayBtn->SetBitmapDisabled(mPlayDisabledBM);
|
{
|
||||||
/* i18n-hint: The access key "&P" should be the same in
|
/* i18n-hint: The access key "&P" should be the same in
|
||||||
"Stop &Playback" and "Start &Playback" */
|
"Stop &Playback" and "Start &Playback" */
|
||||||
SetLabelAndTip(mPlayBtn, _("Start &Playback"), false);
|
mPlayToggleBtn->SetLabel(_("Start &Playback"));
|
||||||
|
//mPlayToggleBtn->SetValue(false);
|
||||||
|
mPlayToggleBtn->Enable(!mCapturing);
|
||||||
|
mPlayToggleBtn->Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bb = (wxBitmapButton *) mPlayBtn;
|
||||||
|
bb->SetBitmapLabel(mPlayBM);
|
||||||
|
bb->SetBitmapDisabled(mPlayDisabledBM);
|
||||||
|
mPlayBtn->Enable(!mCapturing);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mPowerOn)
|
if (mPowerOn)
|
||||||
{
|
{
|
||||||
mPowerBtn->SetBitmapLabel(mOnBM);
|
if (!mIsGUI)
|
||||||
/* i18n-hint: The access key "&O" should be the same in
|
{
|
||||||
"Turn Power &Off" and "Turn Power &On" */
|
/* i18n-hint: The access key "&O" should be the same in
|
||||||
SetLabelAndTip(mPowerBtn, _("Turn Power &Off"), false);
|
"Turn Power &Off" and "Turn Power &On" */
|
||||||
|
mPowerToggleBtn->SetLabel(_("Turn Power &Off"));
|
||||||
|
//mPowerToggleBtn->SetValue(true);
|
||||||
|
mPowerToggleBtn->Enable(!mCapturing);
|
||||||
|
mPowerToggleBtn->Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bb = (wxBitmapButton *) mPowerBtn;
|
||||||
|
bb->SetBitmapLabel(mOnBM);
|
||||||
|
mPowerBtn->Enable(!mCapturing);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mPowerBtn->SetBitmapLabel(mOffBM);
|
if (!mIsGUI)
|
||||||
/* i18n-hint: The access key "&O" should be the same in
|
{
|
||||||
"Turn Power &Off" and "Turn Power &On" */
|
/* i18n-hint: The access key "&O" should be the same in
|
||||||
SetLabelAndTip(mPowerBtn, _("Turn Power &On"), false);
|
"Turn Power &Off" and "Turn Power &On" */
|
||||||
|
mPowerToggleBtn->SetLabel(_("Turn Power &On"));
|
||||||
|
//mPowerToggleBtn->SetValue(false);
|
||||||
|
mPowerToggleBtn->Enable(!mCapturing);
|
||||||
|
mPowerToggleBtn->Refresh();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
bb = (wxBitmapButton *) mPowerBtn;
|
||||||
|
bb->SetBitmapLabel(mOffBM);
|
||||||
|
mPowerBtn->Enable(!mCapturing);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include <wx/dynarray.h>
|
#include <wx/dynarray.h>
|
||||||
#include <wx/intl.h>
|
#include <wx/intl.h>
|
||||||
#include <wx/string.h>
|
#include <wx/string.h>
|
||||||
|
#include <wx/tglbtn.h>
|
||||||
|
|
||||||
class wxDialog;
|
class wxDialog;
|
||||||
class wxWindow;
|
class wxWindow;
|
||||||
@ -519,7 +520,6 @@ private:
|
|||||||
|
|
||||||
void UpdateControls();
|
void UpdateControls();
|
||||||
wxBitmap CreateBitmap(const char *xpm[], bool up, bool pusher);
|
wxBitmap CreateBitmap(const char *xpm[], bool up, bool pusher);
|
||||||
void SetLabelAndTip(wxBitmapButton *btn, const wxString & label = wxEmptyString, bool setAccel = true);
|
|
||||||
void LoadUserPresets();
|
void LoadUserPresets();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
@ -530,13 +530,18 @@ private:
|
|||||||
wxArrayString mUserPresets;
|
wxArrayString mUserPresets;
|
||||||
bool mInitialized;
|
bool mInitialized;
|
||||||
|
|
||||||
|
bool mIsGUI;
|
||||||
|
|
||||||
wxButton *mApplyBtn;
|
wxButton *mApplyBtn;
|
||||||
wxButton *mCloseBtn;
|
wxButton *mCloseBtn;
|
||||||
wxBitmapButton *mMenuBtn;
|
wxButton *mMenuBtn;
|
||||||
wxBitmapButton *mPowerBtn;
|
wxButton *mPowerBtn;
|
||||||
wxBitmapButton *mPlayBtn;
|
wxButton *mPlayBtn;
|
||||||
wxBitmapButton *mRewindBtn;
|
wxButton *mRewindBtn;
|
||||||
wxBitmapButton *mFFwdBtn;
|
wxButton *mFFwdBtn;
|
||||||
|
|
||||||
|
wxButton *mPowerToggleBtn;
|
||||||
|
wxButton *mPlayToggleBtn;
|
||||||
|
|
||||||
wxBitmap mPlayBM;
|
wxBitmap mPlayBM;
|
||||||
wxBitmap mPlayDisabledBM;
|
wxBitmap mPlayDisabledBM;
|
||||||
|
@ -2158,6 +2158,11 @@ bool VSTEffect::PopulateUI(wxWindow *parent)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool VSTEffect::IsGraphicalUI()
|
||||||
|
{
|
||||||
|
return mGui;
|
||||||
|
}
|
||||||
|
|
||||||
bool VSTEffect::ValidateUI()
|
bool VSTEffect::ValidateUI()
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
|
@ -132,6 +132,7 @@ class VSTEffect : public EffectClientInterface,
|
|||||||
|
|
||||||
virtual void SetUIHost(EffectUIHostInterface *host);
|
virtual void SetUIHost(EffectUIHostInterface *host);
|
||||||
virtual bool PopulateUI(wxWindow *parent);
|
virtual bool PopulateUI(wxWindow *parent);
|
||||||
|
virtual bool IsGraphicalUI();
|
||||||
virtual bool ValidateUI();
|
virtual bool ValidateUI();
|
||||||
virtual bool HideUI();
|
virtual bool HideUI();
|
||||||
virtual bool CloseUI();
|
virtual bool CloseUI();
|
||||||
|
@ -1988,6 +1988,11 @@ bool AudioUnitEffect::PopulateUI(wxWindow *parent)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool AudioUnitEffect::IsGraphicalUI()
|
||||||
|
{
|
||||||
|
return !mIsGeneric;
|
||||||
|
}
|
||||||
|
|
||||||
bool AudioUnitEffect::ValidateUI()
|
bool AudioUnitEffect::ValidateUI()
|
||||||
{
|
{
|
||||||
#if 0
|
#if 0
|
||||||
|
@ -106,6 +106,7 @@ public:
|
|||||||
|
|
||||||
virtual void SetUIHost(EffectUIHostInterface *host);
|
virtual void SetUIHost(EffectUIHostInterface *host);
|
||||||
virtual bool PopulateUI(wxWindow *parent);
|
virtual bool PopulateUI(wxWindow *parent);
|
||||||
|
virtual bool IsGraphicalUI();
|
||||||
virtual bool ValidateUI();
|
virtual bool ValidateUI();
|
||||||
virtual bool HideUI();
|
virtual bool HideUI();
|
||||||
virtual bool CloseUI();
|
virtual bool CloseUI();
|
||||||
|
@ -1356,6 +1356,11 @@ bool LadspaEffect::PopulateUI(wxWindow *parent)
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool LadspaEffect::IsGraphicalUI()
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool LadspaEffect::ValidateUI()
|
bool LadspaEffect::ValidateUI()
|
||||||
{
|
{
|
||||||
if (!mParent->Validate())
|
if (!mParent->Validate())
|
||||||
|
@ -103,6 +103,7 @@ public:
|
|||||||
|
|
||||||
virtual void SetUIHost(EffectUIHostInterface *host);
|
virtual void SetUIHost(EffectUIHostInterface *host);
|
||||||
virtual bool PopulateUI(wxWindow *parent);
|
virtual bool PopulateUI(wxWindow *parent);
|
||||||
|
virtual bool IsGraphicalUI();
|
||||||
virtual bool ValidateUI();
|
virtual bool ValidateUI();
|
||||||
virtual bool HideUI();
|
virtual bool HideUI();
|
||||||
virtual bool CloseUI();
|
virtual bool CloseUI();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user