X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/0e528b997e87057723d1b823dd86e3f69ebb672b..ef6bd27b357788fa1ea5126824e72e1e277e8e4e:/samples/controls/controls.cpp diff --git a/samples/controls/controls.cpp b/samples/controls/controls.cpp index 6bc15448f9..6429aa80dd 100644 --- a/samples/controls/controls.cpp +++ b/samples/controls/controls.cpp @@ -49,22 +49,18 @@ #ifdef __WIN16__ // Win16 doesn't have them - #ifndef wxUSE_SPINBTN + #ifdef wxUSE_SPINBTN #undef wxUSE_SPINBTN + #endif #define wxUSE_SPINBTN 0 #else - #if !defined(wxUSE_SPINBTN) - #define wxUSE_SPINBTN 1 + #ifndef wxUSE_SPINBTN + #define wxUSE_SPINBTN 1 #endif #endif // __WIN16__ #include "wx/progdlg.h" -// VZ: this is a temp. hack, will remove soon -#ifndef wxUSE_SPINCTRL -#define wxUSE_SPINCTRL 1 -#endif - #if wxUSE_SPINCTRL #include "wx/spinctrl.h" #endif // wxUSE_SPINCTRL @@ -166,6 +162,8 @@ public: void OnSize( wxSizeEvent& event ); void OnMove( wxMoveEvent& event ); + MyPanel *GetPanel() const { return m_panel; } + private: void UpdateStatusBar(const wxPoint& pos, const wxSize& size) { @@ -175,7 +173,7 @@ private: SetStatusText(msg, 1); } - wxPanel *m_panel; + MyPanel *m_panel; DECLARE_EVENT_TABLE() }; @@ -209,10 +207,21 @@ enum bool MyApp::OnInit() { + // parse the cmd line + int x = 50, + y = 50; + if ( argc == 2 ) + { + wxSscanf(argv[1], "%d", &x); + wxSscanf(argv[2], "%d", &y); + } + // Create the main frame window MyFrame *frame = new MyFrame((wxFrame *) NULL, "Controls wxWindows App", - 50, 50, 530, 420); + x, y, 540, 430); + + frame->SetSizeHints( 500, 425 ); // Give it an icon // The wxICON() macros loads an icon from a resource under Windows @@ -220,7 +229,8 @@ bool MyApp::OnInit() frame->SetIcon( wxICON(mondrian) ); - wxMenu *file_menu = new wxMenu("", wxMENU_TEAROFF ); + wxMenu *file_menu = new wxMenu("", wxMENU_TEAROFF); + file_menu->Append(MINIMAL_ABOUT, "&About\tF1"); file_menu->AppendSeparator(); file_menu->Append(MINIMAL_QUIT, "E&xit\tAlt-X", "Quit controls sample"); @@ -248,6 +258,8 @@ bool MyApp::OnInit() frame->Show(TRUE); frame->SetCursor(wxCursor(wxCURSOR_HAND)); + frame->GetPanel()->m_notebook->SetSelection(3); + SetTopWindow(frame); return TRUE; @@ -475,8 +487,10 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) m_choiceSorted = new wxChoice( panel, ID_CHOICE_SORTED, wxPoint(10,70), wxSize(120,-1), 5, choices, wxCB_SORT ); +#ifndef __WXMOTIF__ SetControlClientData("choice", m_choice); SetControlClientData("choice", m_choiceSorted); +#endif m_choice->SetSelection(2); m_choice->SetBackgroundColour( "red" ); @@ -491,7 +505,9 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) 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 wxStaticBox( panel, -1, "Box around combobox", + wxPoint(5, 5), wxSize(150, 100)); + m_combo = new wxComboBox( panel, ID_COMBO, "This", wxPoint(20,20), 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) ); @@ -512,6 +528,11 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) 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 ); + +#if wxUSE_TOOLTIPS + m_radio->SetToolTip("Ever seen a radiobox?"); +#endif // wxUSE_TOOLTIPS + (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) ); @@ -571,7 +592,8 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) #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)); + 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)); @@ -581,11 +603,25 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) wxMemoryDC dc; dc.SelectObject( bitmap ); dc.SetPen(*wxGREEN_PEN); + dc.Clear(); dc.DrawEllipse(5, 5, 90, 90); - dc.DrawText("Bitmap", 20, 20); + dc.DrawText("Bitmap", 30, 40); dc.SelectObject( wxNullBitmap ); (void)new wxBitmapButton(panel, -1, bitmap, wxPoint(100, 20)); + + wxBitmap bmp1(wxTheApp->GetStdIcon(wxICON_INFORMATION)), + bmp2(wxTheApp->GetStdIcon(wxICON_WARNING)), + bmp3(wxTheApp->GetStdIcon(wxICON_QUESTION)); + wxBitmapButton *bmpBtn = new wxBitmapButton + ( + panel, -1, + bmp1, + wxPoint(30, 50) + ); + bmpBtn->SetBitmapSelected(bmp2); + bmpBtn->SetBitmapFocus(bmp3); + (void)new wxButton(panel, ID_BUTTON_LABEL, "Toggle label", wxPoint(250, 20)); m_label = new wxStaticText(panel, -1, "Label with some long text", wxPoint(250, 60), wxDefaultSize, @@ -701,6 +737,8 @@ void MyPanel::OnChangeColour(wxCommandEvent& WXUNUSED(event)) void MyPanel::OnListBox( wxCommandEvent &event ) { +// GetParent()->Move(100, 100); + wxListBox *listbox = event.GetId() == ID_LISTBOX ? m_listbox : m_listboxSorted;