#include "wx/bitmap.h"
#include "wx/button.h"
#include "wx/checkbox.h"
+ #include "wx/radiobox.h"
+ #include "wx/statbox.h"
+ #include "wx/textctrl.h"
#include "wx/sizer.h"
#endif
// control ids
enum
{
- CheckboxPage_Reset = 100,
+ CheckboxPage_Reset = wxID_HIGHEST,
CheckboxPage_ChangeLabel,
CheckboxPage_Check,
CheckboxPage_Uncheck,
class CheckBoxWidgetsPage : public WidgetsPage
{
public:
- CheckBoxWidgetsPage(wxNotebook *notebook, wxImageList *imaglist);
- virtual ~CheckBoxWidgetsPage();
+ CheckBoxWidgetsPage(WidgetsBookCtrl *book, wxImageList *imaglist);
+ virtual ~CheckBoxWidgetsPage(){};
+
+ virtual wxControl *GetWidget() const { return m_checkbox; }
+ virtual void RecreateWidget() { CreateCheckbox(); }
+
+ // lazy creation of the content
+ virtual void CreateContent();
protected:
// event handlers
// implementation
// ============================================================================
-IMPLEMENT_WIDGETS_PAGE(CheckBoxWidgetsPage, wxT("CheckBox"));
+#if defined(__WXUNIVERSAL__)
+ #define FAMILY_CTRLS UNIVERSAL_CTRLS
+#else
+ #define FAMILY_CTRLS NATIVE_CTRLS
+#endif
-CheckBoxWidgetsPage::CheckBoxWidgetsPage(wxNotebook *notebook,
- wxImageList *imaglist)
- : WidgetsPage(notebook)
+IMPLEMENT_WIDGETS_PAGE(CheckBoxWidgetsPage, wxT("CheckBox"), FAMILY_CTRLS );
+
+CheckBoxWidgetsPage::CheckBoxWidgetsPage(WidgetsBookCtrl *book,
+ wxImageList *imaglist)
+ : WidgetsPage(book, imaglist, checkbox_xpm)
{
- imaglist->Add(wxBitmap(checkbox_xpm));
+}
+void CheckBoxWidgetsPage::CreateContent()
+{
wxSizer *sizerTop = new wxBoxSizer(wxHORIZONTAL);
// left pane
- wxStaticBox *box = new wxStaticBox(this, wxID_ANY, _T("&Set style"));
+ wxStaticBox *box = new wxStaticBox(this, wxID_ANY, wxT("&Set style"));
wxSizer *sizerLeft = new wxStaticBoxSizer(box, wxVERTICAL);
m_chkRight = CreateCheckBoxAndAddToSizer
(
sizerLeft,
- _T("&Right aligned"),
+ wxT("&Right aligned"),
CheckboxPage_ChkRight
);
static const wxString kinds[] =
{
- _T("usual &2-state checkbox"),
- _T("&3rd state settable by program"),
- _T("&user-settable 3rd state"),
+ wxT("usual &2-state checkbox"),
+ wxT("&3rd state settable by program"),
+ wxT("&user-settable 3rd state"),
};
- m_radioKind = new wxRadioBox(this, wxID_ANY, _T("&Kind"),
+ m_radioKind = new wxRadioBox(this, wxID_ANY, wxT("&Kind"),
wxDefaultPosition, wxDefaultSize,
WXSIZEOF(kinds), kinds,
1);
sizerLeft->Add(m_radioKind, 0, wxGROW | wxALL, 5);
- wxButton *btn = new wxButton(this, CheckboxPage_Reset, _T("&Reset"));
+ wxButton *btn = new wxButton(this, CheckboxPage_Reset, wxT("&Reset"));
sizerLeft->Add(btn, 0, wxALIGN_CENTRE_HORIZONTAL | wxALL, 15);
// middle pane
- wxStaticBox *box2 = new wxStaticBox(this, wxID_ANY, _T("&Operations"));
+ wxStaticBox *box2 = new wxStaticBox(this, wxID_ANY, wxT("&Operations"));
wxSizer *sizerMiddle = new wxStaticBoxSizer(box2, wxVERTICAL);
sizerMiddle->Add(CreateSizerWithTextAndButton(CheckboxPage_ChangeLabel,
- _T("Change label"),
+ wxT("Change label"),
wxID_ANY,
&m_textLabel),
0, wxALL | wxGROW, 5);
- sizerMiddle->Add(new wxButton(this, CheckboxPage_Check, _T("&Check it")),
+ sizerMiddle->Add(new wxButton(this, CheckboxPage_Check, wxT("&Check it")),
0, wxALL | wxGROW, 5);
- sizerMiddle->Add(new wxButton(this, CheckboxPage_Uncheck, _T("&Uncheck it")),
+ sizerMiddle->Add(new wxButton(this, CheckboxPage_Uncheck, wxT("&Uncheck it")),
0, wxALL | wxGROW, 5);
sizerMiddle->Add(new wxButton(this, CheckboxPage_PartCheck,
- _T("Put in &3rd state")),
+ wxT("Put in &3rd state")),
0, wxALL | wxGROW, 5);
// right pane
wxSizer *sizerRight = new wxBoxSizer(wxHORIZONTAL);
- m_checkbox = new wxCheckBox(this, CheckboxPage_Checkbox, _T("&Check me!"));
+ m_checkbox = new wxCheckBox(this, CheckboxPage_Checkbox, wxT("&Check me!"));
sizerRight->Add(0, 0, 1, wxCENTRE);
sizerRight->Add(m_checkbox, 1, wxCENTRE);
sizerRight->Add(0, 0, 1, wxCENTRE);
Reset();
SetSizer(sizerTop);
-
- sizerTop->Fit(this);
-}
-
-CheckBoxWidgetsPage::~CheckBoxWidgetsPage()
-{
}
void CheckBoxWidgetsPage::Reset()
delete m_checkbox;
- int flags = 0;
+ int flags = ms_defaultFlags;
if ( m_chkRight->IsChecked() )
flags |= wxALIGN_RIGHT;
switch ( m_radioKind->GetSelection() )
{
default:
- wxFAIL_MSG(_T("unexpected radiobox selection"));
+ wxFAIL_MSG(wxT("unexpected radiobox selection"));
// fall through
case CheckboxKind_2State:
void CheckBoxWidgetsPage::OnCheckBox(wxCommandEvent& event)
{
- wxLogMessage(_T("Test checkbox %schecked (value = %d)."),
- event.IsChecked() ? _T("") : _T("un"),
+ wxLogMessage(wxT("Test checkbox %schecked (value = %d)."),
+ event.IsChecked() ? wxT("") : wxT("un"),
(int)m_checkbox->Get3StateValue());
}