Improve guards in button pages of widgets sample

Add guards for wxCommandLinkButton.
Move CheckBoxes outside wxHAS_BITMAPTOGGLEBUTTON guard.
Remove wxHAS_ANY_BUTTON check, this is always defined with wxUSE_TOGGLEBTN.
This commit is contained in:
Maarten Bent
2019-01-31 20:12:23 +01:00
parent 8f3b87dce7
commit bf0a8ffd74
2 changed files with 27 additions and 24 deletions

View File

@@ -456,7 +456,9 @@ void ButtonWidgetsPage::CreateButton()
bool showsBitmap = false; bool showsBitmap = false;
if ( m_chkBitmapOnly->GetValue() ) if ( m_chkBitmapOnly->GetValue() )
{ {
#if wxUSE_COMMANDLINKBUTTON
m_chkCommandLink->SetValue(false); // wxCommandLinkButton cannot be "Bitmap only" m_chkCommandLink->SetValue(false); // wxCommandLinkButton cannot be "Bitmap only"
#endif
showsBitmap = true; showsBitmap = true;
@@ -537,7 +539,9 @@ void ButtonWidgetsPage::CreateButton()
m_chkTextAndBitmap->Enable(!m_chkBitmapOnly->IsChecked()); m_chkTextAndBitmap->Enable(!m_chkBitmapOnly->IsChecked());
m_chkBitmapOnly->Enable(!m_chkTextAndBitmap->IsChecked()); m_chkBitmapOnly->Enable(!m_chkTextAndBitmap->IsChecked());
#if wxUSE_COMMANDLINKBUTTON
m_chkCommandLink->Enable(!m_chkBitmapOnly->IsChecked()); m_chkCommandLink->Enable(!m_chkBitmapOnly->IsChecked());
#endif
m_chkUseBitmapClass->Enable(showsBitmap); m_chkUseBitmapClass->Enable(showsBitmap);
m_chkUsePressed->Enable(showsBitmap); m_chkUsePressed->Enable(showsBitmap);

View File

@@ -117,16 +117,18 @@ protected:
// the controls // the controls
// ------------ // ------------
wxCheckBox *m_chkFit,
*m_chkDisable;
#if wxUSE_MARKUP #if wxUSE_MARKUP
wxCheckBox *m_chkUseMarkup; wxCheckBox *m_chkUseMarkup;
#endif // wxUSE_MARKUP #endif // wxUSE_MARKUP
#ifdef wxHAS_BITMAPTOGGLEBUTTON #ifdef wxHAS_BITMAPTOGGLEBUTTON
// the check/radio boxes for styles // the check/radio boxes for styles
wxCheckBox *m_chkBitmapOnly, wxCheckBox *m_chkBitmapOnly,
*m_chkTextAndBitmap, *m_chkTextAndBitmap,
*m_chkFit, *m_chkUseBitmapClass;
*m_chkUseBitmapClass,
*m_chkDisable;
// more checkboxes for wxBitmapToggleButton only // more checkboxes for wxBitmapToggleButton only
wxCheckBox *m_chkUsePressed, wxCheckBox *m_chkUsePressed,
@@ -142,11 +144,7 @@ protected:
#endif // wxHAS_BITMAPTOGGLEBUTTON #endif // wxHAS_BITMAPTOGGLEBUTTON
// the checkbox itself and the sizer it is in // the checkbox itself and the sizer it is in
#ifdef wxHAS_ANY_BUTTON
wxToggleButton *m_toggle; wxToggleButton *m_toggle;
#else
wxToggleButtonBase *m_toggle;
#endif // wxHAS_ANY_BUTTON
wxSizer *m_sizerToggle; wxSizer *m_sizerToggle;
// the text entries for command parameters // the text entries for command parameters
@@ -187,16 +185,18 @@ ToggleWidgetsPage::ToggleWidgetsPage(WidgetsBookCtrl *book,
wxImageList *imaglist) wxImageList *imaglist)
:WidgetsPage(book, imaglist, toggle_xpm) :WidgetsPage(book, imaglist, toggle_xpm)
{ {
m_chkFit =
m_chkDisable = (wxCheckBox *)NULL;
#if wxUSE_MARKUP #if wxUSE_MARKUP
m_chkUseMarkup = (wxCheckBox *)NULL; m_chkUseMarkup = (wxCheckBox *)NULL;
#endif // wxUSE_MARKUP #endif // wxUSE_MARKUP
#ifdef wxHAS_BITMAPTOGGLEBUTTON #ifdef wxHAS_BITMAPTOGGLEBUTTON
// init everything // init everything
m_chkBitmapOnly = m_chkBitmapOnly =
m_chkTextAndBitmap = m_chkTextAndBitmap =
m_chkFit =
m_chkUseBitmapClass = m_chkUseBitmapClass =
m_chkDisable =
m_chkUsePressed = m_chkUsePressed =
m_chkUseFocused = m_chkUseFocused =
m_chkUseCurrent = m_chkUseCurrent =
@@ -225,18 +225,20 @@ void ToggleWidgetsPage::CreateContent()
#ifdef wxHAS_BITMAPTOGGLEBUTTON #ifdef wxHAS_BITMAPTOGGLEBUTTON
m_chkBitmapOnly = CreateCheckBoxAndAddToSizer(sizerLeft, "&Bitmap only"); m_chkBitmapOnly = CreateCheckBoxAndAddToSizer(sizerLeft, "&Bitmap only");
m_chkTextAndBitmap = CreateCheckBoxAndAddToSizer(sizerLeft, "Text &and bitmap"); m_chkTextAndBitmap = CreateCheckBoxAndAddToSizer(sizerLeft, "Text &and bitmap");
m_chkFit = CreateCheckBoxAndAddToSizer(sizerLeft, "&Fit exactly");
#endif // wxHAS_BITMAPTOGGLEBUTTON #endif // wxHAS_BITMAPTOGGLEBUTTON
#if wxUSE_MARKUP #if wxUSE_MARKUP
m_chkUseMarkup = CreateCheckBoxAndAddToSizer(sizerLeft, "Interpret &markup"); m_chkUseMarkup = CreateCheckBoxAndAddToSizer(sizerLeft, "Interpret &markup");
#endif // wxUSE_MARKUP #endif // wxUSE_MARKUP
m_chkFit = CreateCheckBoxAndAddToSizer(sizerLeft, "&Fit exactly");
m_chkDisable = CreateCheckBoxAndAddToSizer(sizerLeft, "Disable");
#ifdef wxHAS_BITMAPTOGGLEBUTTON #ifdef wxHAS_BITMAPTOGGLEBUTTON
m_chkUseBitmapClass = CreateCheckBoxAndAddToSizer(sizerLeft, m_chkUseBitmapClass = CreateCheckBoxAndAddToSizer(sizerLeft,
"Use wxBitmapToggleButton"); "Use wxBitmapToggleButton");
m_chkUseBitmapClass->SetValue(true); m_chkUseBitmapClass->SetValue(true);
m_chkDisable = CreateCheckBoxAndAddToSizer(sizerLeft, "Disable");
sizerLeft->AddSpacer(5); sizerLeft->AddSpacer(5);
@@ -329,15 +331,18 @@ void ToggleWidgetsPage::CreateContent()
void ToggleWidgetsPage::Reset() void ToggleWidgetsPage::Reset()
{ {
#ifdef wxHAS_BITMAPTOGGLEBUTTON
m_chkBitmapOnly->SetValue(false);
m_chkFit->SetValue(true); m_chkFit->SetValue(true);
m_chkTextAndBitmap->SetValue(false); m_chkDisable->SetValue(false);
#if wxUSE_MARKUP #if wxUSE_MARKUP
m_chkUseMarkup->SetValue(false); m_chkUseMarkup->SetValue(false);
#endif // wxUSE_MARKUP #endif // wxUSE_MARKUP
#ifdef wxHAS_BITMAPTOGGLEBUTTON
m_chkBitmapOnly->SetValue(false);
m_chkTextAndBitmap->SetValue(false);
m_chkUseBitmapClass->SetValue(true); m_chkUseBitmapClass->SetValue(true);
m_chkDisable->SetValue(false);
m_chkUsePressed->SetValue(true); m_chkUsePressed->SetValue(true);
m_chkUseFocused->SetValue(true); m_chkUseFocused->SetValue(true);
@@ -381,6 +386,7 @@ void ToggleWidgetsPage::CreateToggle()
} }
int flags = GetAttrs().m_defaultFlags; int flags = GetAttrs().m_defaultFlags;
#ifdef wxHAS_BITMAPTOGGLEBUTTON #ifdef wxHAS_BITMAPTOGGLEBUTTON
switch ( m_radioHAlign->GetSelection() ) switch ( m_radioHAlign->GetSelection() )
{ {
@@ -418,9 +424,7 @@ void ToggleWidgetsPage::CreateToggle()
flags |= wxBU_BOTTOM; flags |= wxBU_BOTTOM;
break; break;
} }
#endif // wxHAS_BITMAPTOGGLEBUTTON
#ifdef wxHAS_BITMAPTOGGLEBUTTON
bool showsBitmap = false; bool showsBitmap = false;
if ( m_chkBitmapOnly->GetValue() ) if ( m_chkBitmapOnly->GetValue() )
{ {
@@ -437,7 +441,6 @@ void ToggleWidgetsPage::CreateToggle()
btgl = new wxToggleButton(this, TogglePage_Picker, ""); btgl = new wxToggleButton(this, TogglePage_Picker, "");
btgl->SetBitmapLabel(CreateBitmap("normal", wxART_INFORMATION)); btgl->SetBitmapLabel(CreateBitmap("normal", wxART_INFORMATION));
} }
#ifdef wxHAS_ANY_BUTTON
if ( m_chkUsePressed->GetValue() ) if ( m_chkUsePressed->GetValue() )
btgl->SetBitmapPressed(CreateBitmap("pushed", wxART_HELP)); btgl->SetBitmapPressed(CreateBitmap("pushed", wxART_HELP));
if ( m_chkUseFocused->GetValue() ) if ( m_chkUseFocused->GetValue() )
@@ -446,7 +449,6 @@ void ToggleWidgetsPage::CreateToggle()
btgl->SetBitmapCurrent(CreateBitmap("hover", wxART_WARNING)); btgl->SetBitmapCurrent(CreateBitmap("hover", wxART_WARNING));
if ( m_chkUseDisabled->GetValue() ) if ( m_chkUseDisabled->GetValue() )
btgl->SetBitmapDisabled(CreateBitmap("disabled", wxART_MISSING_IMAGE)); btgl->SetBitmapDisabled(CreateBitmap("disabled", wxART_MISSING_IMAGE));
#endif // wxHAS_ANY_BUTTON
m_toggle = btgl; m_toggle = btgl;
} }
else // normal button else // normal button
@@ -459,7 +461,6 @@ void ToggleWidgetsPage::CreateToggle()
m_toggle->SetValue(value); m_toggle->SetValue(value);
#ifdef wxHAS_BITMAPTOGGLEBUTTON #ifdef wxHAS_BITMAPTOGGLEBUTTON
#ifdef wxHAS_ANY_BUTTON
if ( !showsBitmap && m_chkTextAndBitmap->GetValue() ) if ( !showsBitmap && m_chkTextAndBitmap->GetValue() )
{ {
showsBitmap = true; showsBitmap = true;
@@ -481,7 +482,6 @@ void ToggleWidgetsPage::CreateToggle()
if ( m_chkUseDisabled->GetValue() ) if ( m_chkUseDisabled->GetValue() )
m_toggle->SetBitmapDisabled(wxArtProvider::GetIcon(wxART_MISSING_IMAGE, wxART_BUTTON)); m_toggle->SetBitmapDisabled(wxArtProvider::GetIcon(wxART_MISSING_IMAGE, wxART_BUTTON));
} }
#endif // wxHAS_ANY_BUTTON
m_chkUseBitmapClass->Enable(showsBitmap); m_chkUseBitmapClass->Enable(showsBitmap);
m_chkTextAndBitmap->Enable(!m_chkBitmapOnly->IsChecked()); m_chkTextAndBitmap->Enable(!m_chkBitmapOnly->IsChecked());
@@ -490,9 +490,10 @@ void ToggleWidgetsPage::CreateToggle()
m_chkUseFocused->Enable(showsBitmap); m_chkUseFocused->Enable(showsBitmap);
m_chkUseCurrent->Enable(showsBitmap); m_chkUseCurrent->Enable(showsBitmap);
m_chkUseDisabled->Enable(showsBitmap); m_chkUseDisabled->Enable(showsBitmap);
m_toggle->Enable(!m_chkDisable->IsChecked());
#endif // wxHAS_BITMAPTOGGLEBUTTON #endif // wxHAS_BITMAPTOGGLEBUTTON
m_toggle->Enable(!m_chkDisable->IsChecked());
AddButtonToSizer(); AddButtonToSizer();
m_sizerToggle->Layout(); m_sizerToggle->Layout();
@@ -500,7 +501,6 @@ void ToggleWidgetsPage::CreateToggle()
void ToggleWidgetsPage::AddButtonToSizer() void ToggleWidgetsPage::AddButtonToSizer()
{ {
#ifdef wxHAS_BITMAPTOGGLEBUTTON
if ( m_chkFit->GetValue() ) if ( m_chkFit->GetValue() )
{ {
m_sizerToggle->AddStretchSpacer(1); m_sizerToggle->AddStretchSpacer(1);
@@ -508,7 +508,6 @@ void ToggleWidgetsPage::AddButtonToSizer()
m_sizerToggle->AddStretchSpacer(1); m_sizerToggle->AddStretchSpacer(1);
} }
else // take up the entire space else // take up the entire space
#endif // wxHAS_BITMAPTOGGLEBUTTON
{ {
m_sizerToggle->Add(m_toggle, wxSizerFlags(1).Expand().Border()); m_sizerToggle->Add(m_toggle, wxSizerFlags(1).Expand().Border());
} }