-MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) :
- wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) )
-{
- m_text = new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE );
- m_text->SetBackgroundColour("yellow");
-
- m_notebook = new wxNotebook( this, ID_NOTEBOOK, wxPoint(0,0), wxSize(200,150) );
-
- wxString choices[] =
- {
- "This",
- "is a",
- "wonderful",
- "example.",
- };
-
- // image ids and names
- enum
- {
- Image_List, Image_Choice, Image_Combo, Image_Text, Image_Radio, Image_Max
- };
-
- const char *aIconNames[] =
- {
- "list.xpm", "choice.xpm", "combo.xpm", "text.xpm", "radio.xpm"
- };
-
- wxASSERT( WXSIZEOF(aIconNames) == Image_Max ); // keep in sync
-
- // TODO should find the dir from path to program
- wxString strIconDir = "icons/";
-
- // fill the image list
- wxImageList *imagelist = new wxImageList(32, 32);
- for ( size_t n = 0; n < Image_Max; n++ )
- {
- imagelist->Add(wxBitmap(strIconDir + aIconNames[n]));
- }
-
- m_notebook->SetImageList(imagelist);
-
- wxPanel *panel = new wxPanel(m_notebook);
- m_listbox = new wxListBox( panel, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), 4, choices );
- m_listbox->SetBackgroundColour("red");
- (void)new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
- (void)new wxButton( panel, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
- wxButton *btn = new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
- btn->SetBackgroundColour("green");
- (void)new wxButton( panel, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
- (void)new wxButton( panel, ID_LISTBOX_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
- (void)new wxButton( panel, ID_LISTBOX_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
- (void)new wxCheckBox( panel, ID_LISTBOX_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
- m_notebook->AddPage(panel, "wxList", FALSE, Image_List);
-
- panel = new wxPanel(m_notebook);
- m_choice = new wxChoice( panel, ID_CHOICE, wxPoint(10,10), wxSize(120,-1), 4, choices );
- (void)new wxButton( panel, ID_CHOICE_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
- (void)new wxButton( panel, ID_CHOICE_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
- (void)new wxButton( panel, ID_CHOICE_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
- (void)new wxButton( panel, ID_CHOICE_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
- (void)new wxButton( panel, ID_CHOICE_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
- (void)new wxButton( panel, ID_CHOICE_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
- (void)new wxCheckBox( panel, ID_CHOICE_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
- m_notebook->AddPage(panel, "wxChoice", FALSE, Image_Choice);
-
- panel = new wxPanel(m_notebook);
- m_combo = new wxComboBox( panel, ID_COMBO, "This", wxPoint(10,10), wxSize(120,-1), 4, choices );
- (void)new wxButton( panel, ID_COMBO_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
- (void)new wxButton( panel, ID_COMBO_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
- (void)new wxButton( panel, ID_COMBO_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
- (void)new wxButton( panel, ID_COMBO_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
- (void)new wxButton( panel, ID_COMBO_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
- (void)new wxButton( panel, ID_COMBO_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
- (void)new wxCheckBox( panel, ID_COMBO_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
- m_notebook->AddPage(panel, "wxComboBox", FALSE, Image_Combo);
-
- wxTextCtrl *text = new wxTextCtrl( m_notebook, ID_TEXT, "Write text here.", wxPoint(10,10), wxSize(120,100), wxTE_MULTILINE );
- m_notebook->AddPage(text, "wxTextCtrl" , FALSE, Image_Text);
-
- panel = new wxPanel(m_notebook);
- m_radio = new wxRadioBox( panel, ID_RADIOBOX, "This", wxPoint(10,10), wxSize(-1,-1), 4, choices );
- (void)new wxButton( panel, ID_RADIOBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
- (void)new wxButton( panel, ID_RADIOBOX_SEL_STR, "Select 'This'", wxPoint(180,80), wxSize(140,30) );
- (void)new wxButton( panel, ID_RADIOBOX_FONT, "Set Italic font", wxPoint(180,130), wxSize(140,30) );
- (void)new wxCheckBox( panel, ID_RADIOBOX_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
- m_fontButton = new wxButton( panel, ID_SET_FONT, "Set more Italic font", wxPoint(340,30), wxSize(160,30) );
- m_notebook->AddPage(panel, "wxRadioBox", FALSE, Image_Radio);
+MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h )
+ : wxPanel( frame, -1, wxPoint(x, y), wxSize(w, h) ),
+ m_text(NULL), m_notebook(NULL)
+{
+ // SetBackgroundColour("cadet blue");
+
+ m_text = new wxTextCtrl( this, -1, "This is the log window.\n", wxPoint(0,50), wxSize(100,50), wxTE_MULTILINE );
+ // m_text->SetBackgroundColour("wheat");
+
+ delete wxLog::SetActiveTarget(new wxLogStderr);
+
+ m_notebook = new wxNotebook( this, ID_NOTEBOOK, wxPoint(0,0), wxSize(200,150) );
+
+ wxString choices[] =
+ {
+ "This",
+ "is one of my",
+ "really",
+ "wonderful",
+ "examples."
+ };
+
+#ifdef USE_XPM
+ // image ids
+ enum
+ {
+ Image_List, Image_Choice, Image_Combo, Image_Text, Image_Radio, Image_Gauge, Image_Max
+ };
+
+ // fill the image list
+ wxImageList *imagelist = new wxImageList(32, 32);
+
+ imagelist-> Add( wxBitmap( list_xpm ));
+ imagelist-> Add( wxBitmap( choice_xpm ));
+ imagelist-> Add( wxBitmap( combo_xpm ));
+ imagelist-> Add( wxBitmap( text_xpm ));
+ imagelist-> Add( wxBitmap( radio_xpm ));
+ imagelist-> Add( wxBitmap( gauge_xpm ));
+ m_notebook->SetImageList(imagelist);
+#elif defined(__WXMSW__)
+ // load images from resources
+ enum
+ {
+ Image_List, Image_Choice, Image_Combo, Image_Text, Image_Radio, Image_Gauge, Image_Max
+ };
+ wxImageList *imagelist = new wxImageList(16, 16, FALSE, Image_Max);
+
+ static const char *s_iconNames[Image_Max] =
+ {
+ "list", "choice", "combo", "text", "radio", "gauge"
+ };
+
+ for ( size_t n = 0; n < Image_Max; n++ )
+ {
+ wxBitmap bmp(s_iconNames[n]);
+ if ( !bmp.Ok() || (imagelist->Add(bmp) == -1) )
+ {
+ wxLogWarning("Couldn't load the image '%s' for the notebook page %d.",
+ s_iconNames[n], n);
+ }
+ }
+
+ m_notebook->SetImageList(imagelist);
+#else
+
+ // No images for now
+#define Image_List -1
+#define Image_Choice -1
+#define Image_Combo -1
+#define Image_Text -1
+#define Image_Radio -1
+#define Image_Gauge -1
+#define Image_Max -1
+
+#endif
+
+ wxButton *button = (wxButton*) NULL; /* who did this ? */
+ wxPanel *panel = (wxPanel*) NULL;
+
+ panel = new wxPanel(m_notebook);
+ m_listbox = new wxListBox( panel, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), 5, choices, wxLB_ALWAYS_SB );
+ m_listbox->SetCursor(*wxCROSS_CURSOR);
+#if wxUSE_TOOLTIPS
+ m_listbox->SetToolTip( "This is a list box" );
+#endif // wxUSE_TOOLTIPS
+
+ m_lbSelectNum = new wxButton( panel, ID_LISTBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
+ m_lbSelectThis = new wxButton( panel, ID_LISTBOX_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
+ (void)new wxButton( panel, ID_LISTBOX_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
+ (void)new wxButton( panel, ID_LISTBOX_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
+ (void)new wxButton( panel, ID_LISTBOX_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
+ button = new wxButton( panel, ID_LISTBOX_FONT, "Set &Italic font", wxPoint(340,130), wxSize(140,30) );
+#if wxUSE_TOOLTIPS
+ button->SetToolTip( "Press here to set italic font" );
+#endif // wxUSE_TOOLTIPS
+
+ m_checkbox = new wxCheckBox( panel, ID_LISTBOX_ENABLE, "&Disable", wxPoint(20,130) );
+ m_checkbox->SetValue(FALSE);
+#if wxUSE_TOOLTIPS
+ m_checkbox->SetToolTip( "Click here to disable the listbox" );
+#endif // wxUSE_TOOLTIPS
+ m_notebook->AddPage(panel, "wxListBox", TRUE, Image_List);
+
+ panel = new wxPanel(m_notebook);
+ m_choice = new wxChoice( panel, ID_CHOICE, wxPoint(10,10), wxSize(120,-1), 5, choices );
+ m_choice->SetBackgroundColour( "red" );
+ (void)new wxButton( panel, ID_CHOICE_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
+ (void)new wxButton( panel, ID_CHOICE_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
+ (void)new wxButton( panel, ID_CHOICE_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
+ (void)new wxButton( panel, ID_CHOICE_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
+ (void)new wxButton( panel, ID_CHOICE_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
+ (void)new wxButton( panel, ID_CHOICE_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
+ (void)new wxCheckBox( panel, ID_CHOICE_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
+
+ m_notebook->AddPage(panel, "wxChoice", FALSE, Image_Choice);
+
+ panel = new wxPanel(m_notebook);
+ m_combo = new wxComboBox( panel, ID_COMBO, "This", wxPoint(10,10), wxSize(120,-1), 5, choices, wxCB_READONLY );
+ (void)new wxButton( panel, ID_COMBO_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
+ (void)new wxButton( panel, ID_COMBO_SEL_STR, "Select 'This'", wxPoint(340,30), wxSize(140,30) );
+ (void)new wxButton( panel, ID_COMBO_CLEAR, "Clear", wxPoint(180,80), wxSize(140,30) );
+ (void)new wxButton( panel, ID_COMBO_APPEND, "Append 'Hi!'", wxPoint(340,80), wxSize(140,30) );
+ (void)new wxButton( panel, ID_COMBO_DELETE, "Delete selected item", wxPoint(180,130), wxSize(140,30) );
+ (void)new wxButton( panel, ID_COMBO_FONT, "Set Italic font", wxPoint(340,130), wxSize(140,30) );
+ (void)new wxCheckBox( panel, ID_COMBO_ENABLE, "Disable", wxPoint(20,130), wxSize(140,30) );
+ m_notebook->AddPage(panel, "wxComboBox", FALSE, Image_Combo);
+
+ wxString choices2[] =
+ {
+ "First", "Second",
+ /* "Third",
+ "Fourth", "Fifth", "Sixth",
+ "Seventh", "Eighth", "Nineth", "Tenth" */
+ };
+
+ panel = new wxPanel(m_notebook);
+ (void)new wxRadioBox( panel, ID_RADIOBOX, "That", wxPoint(10,160), wxSize(-1,-1), WXSIZEOF(choices2), choices2, 1, wxRA_SPECIFY_ROWS );
+ m_radio = new wxRadioBox( panel, ID_RADIOBOX, "This", wxPoint(10,10), wxSize(-1,-1), WXSIZEOF(choices), choices, 1, wxRA_SPECIFY_COLS );
+ (void)new wxButton( panel, ID_RADIOBOX_SEL_NUM, "Select #2", wxPoint(180,30), wxSize(140,30) );
+ (void)new wxButton( panel, ID_RADIOBOX_SEL_STR, "Select 'This'", wxPoint(180,80), wxSize(140,30) );
+ m_fontButton = new wxButton( panel, ID_SET_FONT, "Set more Italic font", wxPoint(340,30), wxSize(140,30) );
+ (void)new wxButton( panel, ID_RADIOBOX_FONT, "Set Italic font", wxPoint(340,80), wxSize(140,30) );
+ (void)new wxCheckBox( panel, ID_RADIOBOX_ENABLE, "Disable", wxPoint(340,130), wxSize(140,30) );
+ wxRadioButton *rb = new wxRadioButton( panel, ID_RADIOBUTTON_1, "Radiobutton1", wxPoint(210,170), wxSize(110,30), wxRB_GROUP );
+ rb->SetValue( FALSE );
+ (void)new wxRadioButton( panel, ID_RADIOBUTTON_2, "Radiobutton2", wxPoint(340,170), wxSize(110,30) );
+ 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) );
+ m_gauge = new wxGauge( panel, -1, 200, wxPoint(18,50), wxSize(155, 30) );
+ 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) );
+#ifdef __WXMOTIF__
+ // No wrapping text in wxStaticText yet :-(
+ (void)new wxStaticText( panel, -1,
+ "Drag the slider!",
+ wxPoint(228,30),
+ wxSize(240, -1)
+ );
+#else
+ (void)new wxStaticText( panel, -1,
+ "In order see the gauge (aka progress bar)\n"
+ "control do something you have to drag the\n"
+ "handle of the slider to the right.\n"
+ "\n"
+ "This is also supposed to demonstrate how\n"
+ "to use static controls.\n",
+ wxPoint(228,25),
+ wxSize(240, 110)
+ );
+#endif
+ int initialSpinValue = -5;
+ wxString s;
+ s << initialSpinValue;
+ m_spintext = new wxTextCtrl( panel, -1, s, wxPoint(20,160), wxSize(80,-1) );
+#ifndef wxUSE_SPINBUTTON
+ m_spinbutton = new wxSpinButton( panel, ID_SPIN, wxPoint(103,159), wxSize(-1,-1) );
+ m_spinbutton->SetRange(-10,30);
+ m_spinbutton->SetValue(initialSpinValue);
+
+ m_btnProgress = new wxButton( panel, ID_BTNPROGRESS, "Show progress dialog",
+ wxPoint(208, 159) );
+#endif
+ m_notebook->AddPage(panel, "wxGauge", FALSE, Image_Gauge);
+
+ panel = new wxPanel(m_notebook);
+
+#ifndef __WXMOTIF__ // wxStaticBitmap not working under Motif yet. MB
+ wxIcon icon = wxTheApp->GetStdIcon(wxICON_INFORMATION);
+ wxStaticBitmap *bmpStatic = new wxStaticBitmap(panel, -1, icon, wxPoint(10, 10));
+
+ bmpStatic = new wxStaticBitmap(panel, -1, wxNullIcon, wxPoint(50, 10));
+ bmpStatic->SetIcon(wxTheApp->GetStdIcon(wxICON_QUESTION));
+#endif
+
+ wxBitmap bitmap( 100, 100 );
+ wxMemoryDC dc;
+ dc.SelectObject( bitmap );
+ dc.SetPen(*wxGREEN_PEN);
+ dc.DrawEllipse(5, 5, 90, 90);
+ dc.DrawText("Bitmap", 20, 20);
+ dc.SelectObject( wxNullBitmap );
+
+ wxBitmapButton *bmpBtn = new wxBitmapButton
+ (
+ panel,
+ -1,
+ bitmap,
+ wxPoint(100, 20)
+ );
+ bmpBtn = NULL; // suppress warning
+
+ new wxButton(panel, -1, "Another button", wxPoint(250, 20));
+
+ m_notebook->AddPage(panel, "wxBitmapXXX");