X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/53701799b4f51179f9d1ebdc9afc0a1922a36974..ef826e249610b0930a11039e30f15bad70c4d7f4:/src/common/sizer.cpp diff --git a/src/common/sizer.cpp b/src/common/sizer.cpp index 98086b6804..f6ef4e0cbc 100644 --- a/src/common/sizer.cpp +++ b/src/common/sizer.cpp @@ -36,10 +36,6 @@ #include "wx/notebook.h" #endif -#ifdef __WXMAC__ -# include "wx/mac/uma.h" -#endif - //--------------------------------------------------------------------------- IMPLEMENT_CLASS(wxSizerItem, wxObject) @@ -99,7 +95,7 @@ void wxSizerItem::Init() m_sizer = NULL; m_show = true; m_userData = NULL; - m_zoneRect = wxRect( 0, 0, 0, 0 ); + m_zoneRect = wxRect(0,0,0,0); } void wxSizerItem::Init(const wxSizerFlags& flags) @@ -119,7 +115,7 @@ wxSizerItem::wxSizerItem( int width, int height, int proportion, int flag, int b , m_proportion( proportion ) , m_border( border ) , m_flag( flag ) - , m_zoneRect( 0, 0, 0, 0 ) + , m_zoneRect() , m_show( true ) , m_userData( userData ) { @@ -132,7 +128,7 @@ wxSizerItem::wxSizerItem( wxWindow *window, int proportion, int flag, int border , m_proportion( proportion ) , m_border( border ) , m_flag( flag ) - , m_zoneRect( 0, 0, 0, 0 ) + , m_zoneRect() , m_show( true ) , m_userData( userData ) { @@ -152,7 +148,7 @@ wxSizerItem::wxSizerItem( wxSizer *sizer, int proportion, int flag, int border, , m_proportion( proportion ) , m_border( border ) , m_flag( flag ) - , m_zoneRect( 0, 0, 0, 0 ) + , m_zoneRect() , m_show( true ) , m_ratio( 0.0 ) , m_userData( userData ) @@ -363,7 +359,7 @@ int wxSizerItem::GetOption() const //--------------------------------------------------------------------------- wxSizer::wxSizer() - : m_minSize( wxSize( 0, 0 ) ) + :m_minSize() { } @@ -1473,11 +1469,12 @@ wxSize wxBoxSizer::CalcMin() { wxSizerItem *item = node->GetData(); - if (item->IsShown()) + if ( item->IsShown() ) + { item->CalcMin(); // result is stored in the item - if (item->IsShown() && item->GetProportion() != 0) m_stretchable += item->GetProportion(); + } node = node->GetNext(); } @@ -1570,49 +1567,19 @@ wxStaticBoxSizer::wxStaticBoxSizer( wxStaticBox *box, int orient ) wxASSERT_MSG( box, wxT("wxStaticBoxSizer needs a static box") ); } +wxStaticBoxSizer::wxStaticBoxSizer(int orient, wxWindow *win, const wxString& s) + : wxBoxSizer(orient), + m_staticBox(new wxStaticBox(win, wxID_ANY, s)) +{ +} + static void GetStaticBoxBorders( wxStaticBox *box, int *borderTop, int *borderOther) { // this has to be done platform by platform as there is no way to // guess the thickness of a wxStaticBox border -#ifdef __WXCOCOA__ - box->GetBordersForSizer(borderTop,borderOther); -#elif defined(__WXMAC__) - - static int extraTop = -1; // Uninitted - static int other = 5; - - if ( extraTop == -1 ) - { - // The minimal border used for the top. Later on the staticbox' - // font height is added to this. - extraTop = 0; - - if ( UMAGetSystemVersion() >= 0x1030 /*Panther*/ ) - { - // As indicated by the HIG, Panther needs an extra border of 11 - // pixels (otherwise overlapping occurs at the top). The "other" - // border has to be 11. - extraTop = 11; - other = 11; - } - - } - - *borderTop = extraTop + box->GetCharHeight(); - *borderOther = other; - -#else -#ifdef __WXGTK__ - if ( box->GetLabel().empty() ) - *borderTop = 5; - else -#endif // __WXGTK__ - *borderTop = box->GetCharHeight(); - - *borderOther = 5; -#endif // __WXCOCOA__ + box->GetBordersForSizer(borderTop, borderOther); } void wxStaticBoxSizer::RecalcSizes() @@ -1660,12 +1627,18 @@ void wxStaticBoxSizer::ShowItems( bool show ) wxStdDialogButtonSizer::wxStdDialogButtonSizer() : wxBoxSizer(wxHORIZONTAL) { + // Vertical buttons with lots of space on either side + // looks rubbish on WinCE, so let's not do this for now. + // If we are going to use vertical buttons, we should + // put the sizer to the right of other controls in the dialog, + // and that's beyond the scope of this sizer. +#ifndef __WXWINCE__ bool is_pda = (wxSystemSettings::GetScreenType() <= wxSYS_SCREEN_PDA); - // If we have a PDA screen, put yes/no button over // all other buttons, otherwise on the left side. if (is_pda) m_orient = wxVERTICAL; +#endif m_buttonAffirmative = NULL; m_buttonApply = NULL; @@ -1693,6 +1666,7 @@ void wxStdDialogButtonSizer::AddButton(wxButton *mybutton) m_buttonCancel = mybutton; break; case wxID_HELP: + case wxID_CONTEXT_HELP: m_buttonHelp = mybutton; break; default: @@ -1715,7 +1689,7 @@ void wxStdDialogButtonSizer::SetCancelButton( wxButton *button ) m_buttonCancel = button; } -void wxStdDialogButtonSizer::Finalise() +void wxStdDialogButtonSizer::Realize() { #ifdef __WXMAC__ Add(0, 0, 0, wxLEFT, 6); @@ -1781,7 +1755,7 @@ void wxStdDialogButtonSizer::Finalise() // do the same thing for GTK1 and Windows platforms // and assume any platform not accounted for here will use // Windows style - Add(0, 0, 0, wxLEFT, 9); + // Add(0, 0, 0, wxLEFT, 5); // Not sure what this was for but it unbalances the dialog if (m_buttonHelp) Add((wxWindow*)m_buttonHelp, 0, wxALIGN_CENTRE | wxLEFT | wxRIGHT, m_buttonHelp->ConvertDialogToPixels(wxSize(4, 0)).x); @@ -1800,7 +1774,7 @@ void wxStdDialogButtonSizer::Finalise() } if (m_buttonCancel){ - Add((wxWindow*)m_buttonCancel, 0, wxALIGN_CENTRE | wxLEFT, m_buttonCancel->ConvertDialogToPixels(wxSize(4, 0)).x); + Add((wxWindow*)m_buttonCancel, 0, wxALIGN_CENTRE | wxLEFT | wxRIGHT, m_buttonCancel->ConvertDialogToPixels(wxSize(4, 0)).x); // Cancel or help should be default // m_buttonCancel->SetDefaultButton(); } @@ -1838,7 +1812,7 @@ void wxBookCtrlSizer::RecalcSizes() wxSize wxBookCtrlSizer::CalcMin() { - wxSize sizeBorder = m_bookctrl->CalcSizeFromPage(wxSize(0, 0)); + wxSize sizeBorder = m_bookctrl->CalcSizeFromPage(wxSize(0,0)); sizeBorder.x += 5; sizeBorder.y += 5;