#if !defined( __WXMSW__ ) || defined( __WIN95__ )
#include "wx/spinbutt.h"
#endif
+#include "wx/tglbtn.h"
#include "wx/notebook.h"
#include "wx/imaglist.h"
#include "wx/tooltip.h"
#endif
-#if defined(__WXGTK__) || defined(__WXMOTIF__)
+#if defined(__WXGTK__) || defined(__WXMOTIF__) || defined(__WXMAC__)
#define USE_XPM
#endif
*m_choiceSorted;
wxComboBox *m_combo;
wxRadioBox *m_radio;
- wxGauge *m_gauge;
+ wxGauge *m_gauge,
+ *m_gaugeVert;
wxSlider *m_slider;
wxButton *m_fontButton;
wxButton *m_lbSelectNum;
int majorDim = 1,
long style = wxRA_HORIZONTAL,
const wxValidator& validator = wxDefaultValidator,
- const wxString& name = wxComboBoxNameStr)
+ const wxString& name = wxRadioBoxNameStr)
: wxRadioBox(parent, id, title, pos, size, n, choices, majorDim,
style, validator, name) { }
// other
//----------------------------------------------------------------------
-static void SetControlClientData(const char *name,
+static void SetControlClientData(const wxChar *name,
wxControlWithItems *control);
IMPLEMENT_APP(MyApp)
y = 50;
if ( argc == 3 )
{
- wxSscanf(argv[1], "%d", &x);
- wxSscanf(argv[2], "%d", &y);
+ //wxSscanf(argv[1], "%d", &x);
+ //wxSscanf(argv[2], "%d", &y);
}
// Create the main frame window
#if wxUSE_SPINCTRL
EVT_SPINCTRL (ID_SPINCTRL, MyPanel::OnSpinCtrl)
#endif // wxUSE_SPINCTRL
-EVT_BUTTON (ID_BUTTON_LABEL, MyPanel::OnUpdateLabel)
+#if wxUSE_TOGGLEBTN
+EVT_TOGGLEBUTTON(ID_BUTTON_LABEL, MyPanel::OnUpdateLabel)
+#endif // wxUSE_TOGGLEBTN
EVT_CHECKBOX (ID_CHANGE_COLOUR, MyPanel::OnChangeColour)
EVT_BUTTON (ID_BUTTON_TEST1, MyPanel::OnTestButton)
EVT_BUTTON (ID_BUTTON_TEST2, MyPanel::OnTestButton)
wxBitmap bmp(s_iconNames[n]);
if ( !bmp.Ok() || (imagelist->Add(bmp) == -1) )
{
- wxLogWarning("Couldn't load the image '%s' for the notebook page %d.",
+ wxLogWarning(wxT("Couldn't load the image '%s' for the notebook page %d."),
s_iconNames[n], n);
}
}
wxPoint(10,90), wxSize(120,70),
5, choices, wxLB_SORT );
- SetControlClientData("listbox", m_listbox);
- SetControlClientData("listbox", m_listboxSorted);
+ SetControlClientData(wxT("listbox"), m_listbox);
+ SetControlClientData(wxT("listbox"), m_listboxSorted);
m_listbox->SetCursor(*wxCROSS_CURSOR);
#if wxUSE_TOOLTIPS
m_choiceSorted = new wxChoice( panel, ID_CHOICE_SORTED, wxPoint(10,70), wxSize(120,-1),
5, choices, wxCB_SORT );
- SetControlClientData("choice", m_choice);
- SetControlClientData("choice", m_choiceSorted);
+ SetControlClientData(wxT("choice"), m_choice);
+ SetControlClientData(wxT("choice"), m_choiceSorted);
m_choice->SetSelection(2);
m_choice->SetBackgroundColour( "red" );
m_notebook->AddPage(panel, "wxRadioBox", FALSE, Image_Radio);
panel = new wxPanel(m_notebook);
- (void)new wxStaticBox( panel, -1, "&wxGauge and wxSlider", wxPoint(10,10), wxSize(200,130) );
+ (void)new wxStaticBox( panel, -1, "&wxGauge and wxSlider", wxPoint(10,10), wxSize(222,130) );
m_gauge = new wxGauge( panel, -1, 200, wxPoint(18,50), wxSize(155, 30), wxGA_HORIZONTAL|wxNO_BORDER );
m_gauge->SetBackgroundColour(*wxGREEN);
m_gauge->SetForegroundColour(*wxRED);
- m_slider = new wxSlider( panel, ID_SLIDER, 0, 0, 200, wxPoint(18,90), wxSize(155,-1), wxSL_LABELS );
- (void)new wxStaticBox( panel, -1, "&Explanation", wxPoint(220,10), wxSize(270,130) );
+ m_gaugeVert = new wxGauge( panel, -1, 100,
+ wxPoint(195,35), wxSize(30, 90),
+ wxGA_VERTICAL | wxGA_SMOOTH | wxNO_BORDER );
+ m_slider = new wxSlider( panel, ID_SLIDER, 0, 0, 200, wxPoint(18,90), wxSize(155,-1),
+ wxSL_AUTOTICKS | wxSL_LABELS );
+ m_slider->SetTickFreq(40, 0);
+ (void)new wxStaticBox( panel, -1, "&Explanation", wxPoint(230,10), wxSize(270,130) );
#ifdef __WXMOTIF__
// No wrapping text in wxStaticText yet :-(
(void)new wxStaticText( panel, -1,
"Drag the slider!",
- wxPoint(228,30),
+ wxPoint(250,30),
wxSize(240, -1)
);
#else
"\n"
"This is also supposed to demonstrate how\n"
"to use static controls.\n",
- wxPoint(228,25),
+ wxPoint(250,25),
wxSize(240, 110)
);
#endif
(
panel, -1,
bmp1,
- wxPoint(30, 50)
+ wxPoint(30, 70)
);
+
bmpBtn->SetBitmapSelected(bmp2);
bmpBtn->SetBitmapFocus(bmp3);
- (void)new wxButton(panel, ID_BUTTON_LABEL, "&Toggle label", wxPoint(250, 20));
+#if wxUSE_TOGGLEBTN
+ (void)new wxToggleButton(panel, ID_BUTTON_LABEL,
+ "&Toggle label", wxPoint(250, 20));
+#endif // wxUSE_TOGGLEBTN
+
m_label = new wxStaticText(panel, -1, "Label with some long text",
wxPoint(250, 60), wxDefaultSize,
wxALIGN_RIGHT /*| wxST_NO_AUTORESIZE*/);
}
}
- *m_text << "Notebook selection is being changed from " << selOld << "\n";
+ *m_text << "Notebook selection is being changed from " << selOld
+ << " to " << event.GetSelection()
+ << " (current page from notebook is "
+ << m_notebook->GetSelection() << ")\n";
}
void MyPanel::OnPageChanged( wxNotebookEvent &event )
{
- *m_text << "Notebook selection is " << event.GetSelection() << "\n";
+ *m_text << "Notebook selection is now " << event.GetSelection()
+ << " (from notebook: " << m_notebook->GetSelection() << ")\n";
}
void MyPanel::OnTestButton(wxCommandEvent& event)
m_text->SetFont( *wxITALIC_FONT );
}
-void MyPanel::OnUpdateLabel( wxCommandEvent &WXUNUSED(event) )
+void MyPanel::OnUpdateLabel( wxCommandEvent &event )
{
- static bool s_long = TRUE;
-
- s_long = !s_long;
- m_label->SetLabel(s_long ? "Very very very very very long text." : "Shorter text.");
+ m_label->SetLabel(event.GetInt() ? "Very very very very very long text."
+ : "Shorter text.");
}
void MyPanel::OnSliderUpdate( wxCommandEvent &WXUNUSED(event) )
{
m_gauge->SetValue( m_slider->GetValue() );
+ m_gaugeVert->SetValue( m_slider->GetValue() / 2 );
}
#if wxUSE_SPINCTRL
event.Skip();
}
-static void SetControlClientData(const char *name,
+static void SetControlClientData(const wxChar *name,
wxControlWithItems *control)
{
size_t count = control->GetCount();
for ( size_t n = 0; n < count; n++ )
{
wxString s;
- s.Printf("%s client data for '%s'",
+ s.Printf(wxT("%s client data for '%s'"),
name, control->GetString(n).c_str());
control->SetClientObject(n, new wxStringClientData(s));