virtual ~ButtonWidgetsPage(){};
virtual wxControl *GetWidget() const { return m_button; }
+ virtual void RecreateWidget() { CreateButton(); }
protected:
// event handlers
label = m_textLabel->GetValue();
}
- int flags = 0;
+ int flags = ms_defaultFlags;
switch ( m_radioHAlign->GetSelection() )
{
case ButtonHAlign_Left:
virtual ~CheckBoxWidgetsPage(){};
virtual wxControl *GetWidget() const { return m_checkbox; }
+ virtual void RecreateWidget() { CreateCheckbox(); }
protected:
// event handlers
delete m_checkbox;
- int flags = 0;
+ int flags = ms_defaultFlags;
if ( m_chkRight->IsChecked() )
flags |= wxALIGN_RIGHT;
ComboboxWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
virtual wxControl *GetWidget() const { return m_combobox; }
+ virtual void RecreateWidget() { CreateCombo(); }
protected:
// event handlers
void ComboboxWidgetsPage::CreateCombo()
{
- int flags = 0;
+ int flags = ms_defaultFlags;
if ( m_chkSort->GetValue() )
flags |= wxCB_SORT;
virtual ~GaugeWidgetsPage();
virtual wxControl *GetWidget() const { return m_gauge; }
+ virtual void RecreateWidget() { CreateGauge(); }
protected:
// event handlers
void GaugeWidgetsPage::CreateGauge()
{
- int flags = 0;
+ int flags = ms_defaultFlags;
if ( m_chkVert->GetValue() )
flags |= wxGA_VERTICAL;
ListboxWidgetsPage(wxBookCtrlBase *book, wxImageList *imaglist);
virtual wxControl *GetWidget() const { return m_lbox; }
+ virtual void RecreateWidget() { CreateLbox(); }
protected:
// event handlers
void ListboxWidgetsPage::CreateLbox()
{
- int flags = 0;
+ int flags = ms_defaultFlags;
switch ( m_radioSelMode->GetSelection() )
{
default:
virtual ~NotebookWidgetsPage();
virtual wxControl *GetWidget() const { return m_notebook; }
+ virtual void RecreateWidget() { CreateNotebook(); }
protected:
// event handlers
void NotebookWidgetsPage::CreateNotebook()
{
- int flags;
+ int flags = ms_defaultFlags;
switch ( m_radioOrient->GetSelection() )
{
default:
// fall through
case Orient_Top:
- flags = wxBK_TOP;
+ flags |= wxBK_TOP;
break;
case Orient_Bottom:
- flags = wxBK_BOTTOM;
+ flags |= wxBK_BOTTOM;
break;
case Orient_Left:
- flags = wxBK_LEFT;
+ flags |= wxBK_LEFT;
break;
case Orient_Right:
- flags = wxBK_RIGHT;
+ flags |= wxBK_RIGHT;
break;
}
virtual ~RadioWidgetsPage(){};
virtual wxControl *GetWidget() const { return m_radio; }
+ virtual void RecreateWidget() { CreateRadio(); }
protected:
// event handlers
int flags = m_chkVert->GetValue() ? wxRA_VERTICAL
: wxRA_HORIZONTAL;
+ flags |= ms_defaultFlags;
+
#ifdef wxRA_LEFTTORIGHT
switch ( m_radioDir->GetSelection() )
{
virtual ~SliderWidgetsPage(){};
virtual wxControl *GetWidget() const { return m_slider; }
+ virtual void RecreateWidget() { CreateSlider(); }
protected:
// event handlers
void SliderWidgetsPage::CreateSlider()
{
- int flags = 0;
+ int flags = ms_defaultFlags;
if ( m_chkInverse->GetValue() )
{
virtual wxControl *GetWidget() const { return m_spinbtn; }
virtual wxControl *GetWidget2() const { return m_spinctrl; }
+ virtual void RecreateWidget() { CreateSpin(); }
protected:
// event handlers
void SpinBtnWidgetsPage::CreateSpin()
{
- int flags = 0;
+ int flags = ms_defaultFlags;
bool isVert = m_chkVert->GetValue();
if ( isVert )
virtual ~StaticWidgetsPage(){};
virtual wxControl *GetWidget() const { return m_statText; }
+ virtual void RecreateWidget() { CreateStatic(); }
protected:
// event handlers
}
int flagsBox = 0,
- flagsText = 0;
+ flagsText = ms_defaultFlags;
if ( !m_chkAutoResize->GetValue() )
{
virtual ~TextWidgetsPage(){};
virtual wxControl *GetWidget() const { return m_text; }
+ virtual void RecreateWidget() { CreateText(); }
protected:
// create an info text contorl
void TextWidgetsPage::CreateText()
{
- int flags = 0;
+ int flags = ms_defaultFlags;
switch ( m_radioTextLines->GetSelection() )
{
default:
{
Widgets_ClearLog = 100,
Widgets_Quit,
+
#if wxUSE_TOOLTIPS
Widgets_SetTooltip,
#endif // wxUSE_TOOLTIPS
Widgets_SetFgColour,
Widgets_SetBgColour,
Widgets_SetFont,
- Widgets_Enable
+ Widgets_Enable,
+
+ Widgets_BorderNone,
+ Widgets_BorderStatic,
+ Widgets_BorderSimple,
+ Widgets_BorderRaised,
+ Widgets_BorderSunken,
+ Widgets_BorderDouble,
+ Widgets_BorderDefault
};
// ----------------------------------------------------------------------------
void OnSetBgCol(wxCommandEvent& event);
void OnSetFont(wxCommandEvent& event);
void OnEnable(wxCommandEvent& event);
+ void OnSetBorder(wxCommandEvent& event);
#endif // wxUSE_MENUS
// initialize the book: add all pages to it
EVT_MENU(Widgets_SetFont, WidgetsFrame::OnSetFont)
EVT_MENU(Widgets_Enable, WidgetsFrame::OnEnable)
+ EVT_MENU_RANGE(Widgets_BorderNone, Widgets_BorderDefault,
+ WidgetsFrame::OnSetBorder)
+
EVT_MENU(wxID_EXIT, WidgetsFrame::OnExit)
END_EVENT_TABLE()
menuWidget->Append(Widgets_SetBgColour, _T("Set &background...\tCtrl-B"));
menuWidget->Append(Widgets_SetFont, _T("Set f&ont...\tCtrl-O"));
menuWidget->AppendCheckItem(Widgets_Enable, _T("&Enable/disable\tCtrl-E"));
+
+ wxMenu *menuBorders = new wxMenu;
+ menuBorders->AppendRadioItem(Widgets_BorderDefault, _T("De&fault\tCtrl-Shift-9"));
+ menuBorders->AppendRadioItem(Widgets_BorderNone, _T("&None\tCtrl-Shift-0"));
+ menuBorders->AppendRadioItem(Widgets_BorderSimple, _T("&Simple\tCtrl-Shift-1"));
+ menuBorders->AppendRadioItem(Widgets_BorderDouble, _T("&Double\tCtrl-Shift-2"));
+ menuBorders->AppendRadioItem(Widgets_BorderStatic, _T("Stati&c\tCtrl-Shift-3"));
+ menuBorders->AppendRadioItem(Widgets_BorderRaised, _T("&Raised\tCtrl-Shift-4"));
+ menuBorders->AppendRadioItem(Widgets_BorderSunken, _T("S&unken\tCtrl-Shift-5"));
+ menuWidget->AppendSubMenu(menuBorders, _T("Set &border"));
+
menuWidget->AppendSeparator();
menuWidget->Append(wxID_EXIT, _T("&Quit\tCtrl-Q"));
mbar->Append(menuWidget, _T("&Widget"));
page->GetWidget()->Enable(event.IsChecked());
}
+void WidgetsFrame::OnSetBorder(wxCommandEvent& event)
+{
+ int border;
+ switch ( event.GetId() )
+ {
+ case Widgets_BorderNone: border = wxBORDER_NONE; break;
+ case Widgets_BorderStatic: border = wxBORDER_STATIC; break;
+ case Widgets_BorderSimple: border = wxBORDER_SIMPLE; break;
+ case Widgets_BorderRaised: border = wxBORDER_RAISED; break;
+ case Widgets_BorderSunken: border = wxBORDER_SUNKEN; break;
+ case Widgets_BorderDouble: border = wxBORDER_DOUBLE; break;
+
+ default:
+ wxFAIL_MSG( _T("unknown border style") );
+ // fall through
+
+ case Widgets_BorderDefault: border = wxBORDER_DEFAULT; break;
+ }
+
+ WidgetsPage::ms_defaultFlags &= ~wxBORDER_MASK;
+ WidgetsPage::ms_defaultFlags |= border;
+
+ WidgetsPage *page = wxStaticCast(m_book->GetCurrentPage(), WidgetsPage);
+ page->RecreateWidget();
+}
+
#endif // wxUSE_MENUS
// ----------------------------------------------------------------------------
// WidgetsPageInfo
// ----------------------------------------------------------------------------
-WidgetsPageInfo *WidgetsPage::ms_widgetPages = NULL;
-
WidgetsPageInfo::WidgetsPageInfo(Constructor ctor, const wxChar *label)
: m_label(label)
{
// WidgetsPage
// ----------------------------------------------------------------------------
+int WidgetsPage::ms_defaultFlags = wxBORDER_DEFAULT;
+WidgetsPageInfo *WidgetsPage::ms_widgetPages = NULL;
+
WidgetsPage::WidgetsPage(wxBookCtrlBase *book)
: wxPanel(book, wxID_ANY,
wxDefaultPosition, wxDefaultSize,
// some pages show 2 controls, in this case override this one as well
virtual wxControl *GetWidget2() const { return NULL; }
+ // recreate the control shown by this page
+ //
+ // this is currently used only to take into account the border flags
+ virtual void RecreateWidget() = 0;
+
+ // the default flags for the widget, currently only contains border flags
+ static int ms_defaultFlags;
+
protected:
// several helper functions for page creation