From: Vadim Zeitlin Date: Wed, 28 Dec 2011 13:51:21 +0000 (+0000) Subject: Improve layout in the samples to avoid problems under Mac. X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/d159e96495b96fef891a8ba6652ba249e8283a5d?ds=inline Improve layout in the samples to avoid problems under Mac. Changes the samples to look better under Mac and avoid the worst problems such as overlapping buttons or truncated controls. Closes #11651. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70152 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/samples/clipboard/clipboard.cpp b/samples/clipboard/clipboard.cpp index faaa532c72..6a46a8005f 100644 --- a/samples/clipboard/clipboard.cpp +++ b/samples/clipboard/clipboard.cpp @@ -131,7 +131,7 @@ MyFrame::MyFrame(const wxString& title) wxPanel *panel = new wxPanel( this, -1 ); wxBoxSizer *main_sizer = new wxBoxSizer( wxVERTICAL ); - main_sizer->Add( new wxButton( panel, ID_Write, "Get clipboard text" ) ); + main_sizer->Add( new wxButton( panel, ID_Write, "Get clipboard text" ), 0, wxALL, 5 ); m_textctrl = new wxTextCtrl( panel, ID_Text, "", wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE ); main_sizer->Add( m_textctrl, 1, wxGROW ); diff --git a/samples/collpane/collpane.cpp b/samples/collpane/collpane.cpp index b217d4ba73..b7574d8e4c 100644 --- a/samples/collpane/collpane.cpp +++ b/samples/collpane/collpane.cpp @@ -198,11 +198,16 @@ MyFrame::MyFrame() m_collPane = new wxCollapsiblePane(this, -1, wxT("test!")); wxWindow *win = m_collPane->GetPane(); - m_paneSizer = new wxBoxSizer( wxVERTICAL ); - m_paneSizer->Add( new wxStaticText(win, -1, wxT("Static text") ), 0, wxALIGN_LEFT ); - m_paneSizer->Add( new wxStaticText(win, -1, wxT("Yet another one!") ), 0, wxALIGN_LEFT ); - m_paneSizer->Add( new wxTextCtrl(win, PANE_TEXTCTRL, wxT("Text control"), wxDefaultPosition, wxSize(80,-1) ), 0, wxALIGN_LEFT ); - m_paneSizer->Add( new wxButton(win, PANE_BUTTON, wxT("Press to align right") ), 0, wxALIGN_LEFT ); + m_paneSizer = new wxBoxSizer( wxHORIZONTAL ); + wxBoxSizer* paneSubSizer = new wxBoxSizer( wxVERTICAL ); + m_paneSizer->AddSpacer( 20 ); + m_paneSizer->Add( paneSubSizer, 1 ); + + paneSubSizer->Add( new wxStaticText(win, -1, wxT("Static text") ), 0, wxALIGN_LEFT | wxALL, 3 ); + paneSubSizer->Add( new wxStaticText(win, -1, wxT("Yet another one!") ), 0, wxALIGN_LEFT | wxALL, 3 ); + paneSubSizer->Add( new wxTextCtrl(win, PANE_TEXTCTRL, wxT("Text control"), wxDefaultPosition, wxSize(80,-1) ), 0, wxALIGN_LEFT | wxALL, 3 ); + paneSubSizer->Add( new wxButton(win, PANE_BUTTON, wxT("Press to align right") ), 0, wxALIGN_LEFT | wxALL, 3 ); + win->SetSizer( m_paneSizer ); } diff --git a/samples/combo/combo.cpp b/samples/combo/combo.cpp index e31bcee2e0..28660519d0 100644 --- a/samples/combo/combo.cpp +++ b/samples/combo/combo.cpp @@ -927,7 +927,7 @@ MyFrame::MyFrame(const wxString& title) panel->SetSizer( topSizer ); topSizer->SetSizeHints( panel ); - SetSize(740,400); + Fit(); Centre(); } diff --git a/samples/controls/controls.cpp b/samples/controls/controls.cpp index 8cf794f121..d1e553ba85 100644 --- a/samples/controls/controls.cpp +++ b/samples/controls/controls.cpp @@ -25,6 +25,7 @@ #include "wx/imaglist.h" #include "wx/artprov.h" #include "wx/cshelp.h" +#include "wx/gbsizer.h" #if wxUSE_TOOLTIPS #include "wx/tooltip.h" @@ -731,6 +732,9 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) m_book->SetImageList(imagelist); #endif + // ------------------------------------------------------------------------ + // listbox page + // ------------------------------------------------------------------------ wxPanel *panel = new wxPanel(m_book); m_listbox = new wxListBox( panel, ID_LISTBOX, wxPoint(10,10), wxSize(120,70), @@ -761,6 +765,9 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) panel->SetCursor(wxCursor(wxCURSOR_HAND)); m_book->AddPage(panel, wxT("wxListBox"), true, Image_List); + // ------------------------------------------------------------------------ + // choice page + // ------------------------------------------------------------------------ #if wxUSE_CHOICE panel = new wxPanel(m_book); m_choice = new MyChoice( panel, ID_CHOICE, wxPoint(10,10), wxSize(120,wxDefaultCoord), 5, choices ); @@ -782,6 +789,9 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) m_book->AddPage(panel, wxT("wxChoice"), false, Image_Choice); #endif // wxUSE_CHOICE + // ------------------------------------------------------------------------ + // combo page + // ------------------------------------------------------------------------ panel = new wxPanel(m_book); (void)new wxStaticBox( panel, wxID_ANY, wxT("&Box around combobox"), wxPoint(5, 5), wxSize(150, 100)); @@ -800,6 +810,9 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) (void)new wxCheckBox( panel, ID_COMBO_ENABLE, wxT("&Disable"), wxPoint(20,130), wxSize(140,30) ); m_book->AddPage(panel, wxT("wxComboBox"), false, Image_Combo); + // ------------------------------------------------------------------------ + // radio box + // ------------------------------------------------------------------------ wxString choices2[] = { wxT("First"), wxT("Second"), @@ -809,18 +822,24 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) }; panel = new wxPanel(m_book); - new MyRadioBox(panel, ID_RADIOBOX2, wxT("&That"), - wxPoint(10,160), wxDefaultSize, - WXSIZEOF(choices2), choices2, - 1, wxRA_SPECIFY_ROWS ); + wxGridBagSizer* radio_page_sizer = new wxGridBagSizer(5, 5); + m_radio = new wxRadioBox(panel, ID_RADIOBOX, wxT("T&his"), wxPoint(10,10), wxDefaultSize, WXSIZEOF(choices), choices, 1, wxRA_SPECIFY_COLS ); + MyRadioBox* mybox = new MyRadioBox(panel, ID_RADIOBOX2, wxT("&That"), + wxPoint(10,160), wxDefaultSize, + WXSIZEOF(choices2), choices2, + 1, wxRA_SPECIFY_ROWS ); + + radio_page_sizer->Add( m_radio, wxGBPosition(0,0), wxGBSpan(2,1) ); + radio_page_sizer->Add( mybox, wxGBPosition(2,0), wxGBSpan(2,1) ); #if wxUSE_HELP - for( unsigned int item = 0; item < WXSIZEOF(choices); ++item ) - m_radio->SetItemHelpText( item, wxString::Format( wxT("Help text for \"%s\""), choices[item].c_str() ) ); + for (unsigned int item = 0; item < WXSIZEOF(choices); ++item) + m_radio->SetItemHelpText( item, wxString::Format( wxT("Help text for \"%s\""), + choices[item].c_str() ) ); // erase help text for the second item m_radio->SetItemHelpText( 1, wxT("") ); @@ -828,26 +847,42 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) m_radio->SetHelpText( wxT("Default helptext for wxRadioBox") ); #endif // wxUSE_HELP - (void)new wxButton( panel, ID_RADIOBOX_SEL_NUM, wxT("Select #&2"), wxPoint(180,30), wxSize(140,30) ); - (void)new wxButton( panel, ID_RADIOBOX_SEL_STR, wxT("&Select 'This'"), wxPoint(180,80), wxSize(140,30) ); - m_fontButton = new wxButton( panel, ID_SET_FONT, wxT("Set &more Italic font"), wxPoint(340,30), wxSize(140,30) ); - (void)new wxButton( panel, ID_RADIOBOX_FONT, wxT("Set &Italic font"), wxPoint(340,80), wxSize(140,30) ); - (void)new wxCheckBox( panel, ID_RADIOBOX_ENABLE, wxT("&Disable"), wxPoint(340,130), wxDefaultSize ); - - wxRadioButton *rb = new wxRadioButton( panel, ID_RADIOBUTTON_1, wxT("Radiobutton1"), wxPoint(210,170), wxDefaultSize, wxRB_GROUP ); + wxButton* select_two = new wxButton ( panel, ID_RADIOBOX_SEL_NUM, wxT("Select #&2") ); + wxButton* select_this = new wxButton ( panel, ID_RADIOBOX_SEL_STR, wxT("&Select 'This'") ); + m_fontButton = new wxButton ( panel, ID_SET_FONT, wxT("Set &more Italic font") ); + wxButton* set_italic = new wxButton ( panel, ID_RADIOBOX_FONT, wxT("Set &Italic font") ); + wxCheckBox* disable_cb = new wxCheckBox( panel, ID_RADIOBOX_ENABLE, wxT("&Disable") ); + wxRadioButton *rb = new wxRadioButton( panel, ID_RADIOBUTTON_1, wxT("Radiobutton1"), + wxDefaultPosition, wxDefaultSize, wxRB_GROUP ); + wxRadioButton *rb2 = new wxRadioButton( panel, ID_RADIOBUTTON_2, wxT("&Radiobutton2"), + wxDefaultPosition, wxDefaultSize ); rb->SetValue( false ); - (void)new wxRadioButton( panel, ID_RADIOBUTTON_2, wxT("&Radiobutton2"), wxPoint(340,170), wxDefaultSize ); + + radio_page_sizer->Add( select_two, wxGBPosition(0, 1), wxDefaultSpan, wxALL , 10 ); + radio_page_sizer->Add( select_this, wxGBPosition(1, 1), wxDefaultSpan, wxALL , 10 ); + radio_page_sizer->Add( m_fontButton, wxGBPosition(0, 2), wxDefaultSpan, wxALL , 10 ); + radio_page_sizer->Add( set_italic, wxGBPosition(1, 2), wxDefaultSpan, wxALL , 10 ); + radio_page_sizer->Add( disable_cb, wxGBPosition(2, 2), wxDefaultSpan, wxLEFT | wxRIGHT, 10 ); + radio_page_sizer->Add( rb, wxGBPosition(3, 1), wxDefaultSpan, wxLEFT | wxRIGHT, 10 ); + radio_page_sizer->Add( rb2, wxGBPosition(3, 2), wxDefaultSpan, wxLEFT | wxRIGHT, 10 ); + + panel->SetSizer( radio_page_sizer ); + m_book->AddPage(panel, wxT("wxRadioBox"), false, Image_Radio); + // ------------------------------------------------------------------------ + // gauge and slider + // ------------------------------------------------------------------------ #if wxUSE_SLIDER && wxUSE_GAUGE panel = new wxPanel(m_book); - wxBoxSizer *main_sizer = new wxBoxSizer( wxHORIZONTAL ); - panel->SetSizer( main_sizer ); + wxBoxSizer *gauge_page_vsizer = new wxBoxSizer( wxVERTICAL ); + + wxBoxSizer *gauge_page_first_row_sizer = new wxBoxSizer( wxHORIZONTAL ); wxStaticBoxSizer *gauge_sizer = new wxStaticBoxSizer( wxHORIZONTAL, panel, wxT("&wxGauge and wxSlider") ); - main_sizer->Add( gauge_sizer, 0, wxALL, 5 ); + gauge_page_first_row_sizer->Add( gauge_sizer, 0, wxALL, 5 ); wxBoxSizer *sz = new wxBoxSizer( wxVERTICAL ); gauge_sizer->Add( sz ); m_gauge = new wxGauge( panel, wxID_ANY, 200, wxDefaultPosition, wxSize(155, 30), wxGA_HORIZONTAL|wxNO_BORDER ); @@ -868,7 +903,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) wxStaticBox *sb = new wxStaticBox( panel, wxID_ANY, wxT("&Explanation"), wxDefaultPosition, wxDefaultSize ); //, wxALIGN_CENTER ); wxStaticBoxSizer *wrapping_sizer = new wxStaticBoxSizer( sb, wxVERTICAL ); - main_sizer->Add( wrapping_sizer, 0, wxALL, 5 ); + gauge_page_first_row_sizer->Add( wrapping_sizer, 0, wxALL, 5 ); #ifdef __WXMOTIF__ // No wrapping text in wxStaticText yet :-( @@ -892,7 +927,7 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) wrapping_sizer->Add( m_wrappingText ); wxStaticBoxSizer *non_wrapping_sizer = new wxStaticBoxSizer( wxVERTICAL, panel, wxT("Non-wrapping") ); - main_sizer->Add( non_wrapping_sizer, 0, wxALL, 5 ); + gauge_page_first_row_sizer->Add( non_wrapping_sizer, 0, wxALL, 5 ); m_nonWrappingText = new wxStaticText( panel, wxID_ANY, wxT("This static text has two lines.\nThey do not wrap."), @@ -901,33 +936,51 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) ); non_wrapping_sizer->Add( m_nonWrappingText ); - (void)new wxButton( panel, ID_BTNNEWTEXT, wxT("New text"), wxPoint(450, 160) ); + gauge_page_vsizer->Add( gauge_page_first_row_sizer, 1 ); + wxBoxSizer *gauge_page_second_row_sizer = new wxBoxSizer( wxHORIZONTAL ); + int initialSpinValue = -5; wxString s; s << initialSpinValue; - m_spintext = new wxTextCtrl( panel, wxID_ANY, s, wxPoint(20,160), wxSize(80,wxDefaultCoord) ); + m_spintext = new wxTextCtrl( panel, wxID_ANY, s ); + gauge_page_second_row_sizer->Add( m_spintext, 0, wxALL, 5 ); + #if wxUSE_SPINBTN - m_spinbutton = new wxSpinButton( panel, ID_SPIN, wxPoint(103,160), wxSize(-1, m_spintext->GetSize().y) ); + m_spinbutton = new wxSpinButton( panel, ID_SPIN ); m_spinbutton->SetRange(-40,30); m_spinbutton->SetValue(initialSpinValue); - -#if wxUSE_PROGRESSDLG - m_btnProgress = new wxButton( panel, ID_BTNPROGRESS, wxT("&Show progress dialog"), - wxPoint(300, 160) ); -#endif // wxUSE_PROGRESSDLG + gauge_page_second_row_sizer->Add( m_spinbutton, 0, wxALL, 5 ); #endif // wxUSE_SPINBTN #if wxUSE_SPINCTRL - m_spinctrl = new wxSpinCtrl( panel, ID_SPINCTRL, wxEmptyString, wxPoint(200, 160), wxSize(80, wxDefaultCoord) ); + m_spinctrl = new wxSpinCtrl( panel, ID_SPINCTRL, wxEmptyString ); m_spinctrl->SetRange(-10,30); m_spinctrl->SetValue(15); + gauge_page_second_row_sizer->Add( m_spinctrl, 0, wxALL, 5 ); #endif // wxUSE_SPINCTRL +#if wxUSE_SPINBTN +#if wxUSE_PROGRESSDLG + m_btnProgress = new wxButton( panel, ID_BTNPROGRESS, wxT("&Show progress dialog") ); + gauge_page_second_row_sizer->Add( m_btnProgress, 0, wxALL, 5 ); +#endif // wxUSE_PROGRESSDLG +#endif // wxUSE_SPINBTN + + wxButton* newTextButton = new wxButton( panel, ID_BTNNEWTEXT, wxT("New text")); + gauge_page_second_row_sizer->Add( newTextButton, 0, wxALL, 5 ); + + gauge_page_vsizer->Add(gauge_page_second_row_sizer, 1); + panel->SetSizer( gauge_page_vsizer ); + m_book->AddPage(panel, wxT("wxGauge"), false, Image_Gauge); #endif // wxUSE_SLIDER && wxUSE_GAUGE + // ------------------------------------------------------------------------ + // wxBitmapXXX + // ------------------------------------------------------------------------ + panel = new wxPanel(m_book); #if !defined(__WXMOTIF__) // wxStaticBitmap not working under Motif yet. @@ -988,7 +1041,10 @@ MyPanel::MyPanel( wxFrame *frame, int x, int y, int w, int h ) m_book->AddPage(panel, wxT("wxBitmapXXX")); - // sizer + // ------------------------------------------------------------------------ + // sizer page + // ------------------------------------------------------------------------ + panel = new wxPanel(m_book); wxBoxSizer *sizer = new wxBoxSizer( wxVERTICAL );