X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e9576ca53db96b462ed4c0b4bdf47d64c40203e4..af86380553169606c985e0053a1630e9514e18b6:/src/mac/carbon/statbox.cpp diff --git a/src/mac/carbon/statbox.cpp b/src/mac/carbon/statbox.cpp index b239dc738c..cb3b47de90 100644 --- a/src/mac/carbon/statbox.cpp +++ b/src/mac/carbon/statbox.cpp @@ -1,62 +1,76 @@ ///////////////////////////////////////////////////////////////////////////// // Name: statbox.cpp // Purpose: wxStaticBox -// Author: AUTHOR +// Author: Stefan Csomor // Modified by: -// Created: ??/??/98 +// Created: 1998-01-01 // RCS-ID: $Id$ -// Copyright: (c) AUTHOR -// Licence: wxWindows licence +// Copyright: (c) Stefan Csomor +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#ifdef __GNUG__ -#pragma implementation "statbox.h" -#endif +#include "wx/wxprec.h" + +#if wxUSE_STATBOX #include "wx/statbox.h" +#include "wx/mac/uma.h" -#if !USE_SHARED_LIBRARY IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl) -BEGIN_EVENT_TABLE(wxStaticBox, wxControl) - EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground) -END_EVENT_TABLE() - -#endif - -/* - * Static box - */ - -bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, - const wxString& label, - const wxPoint& pos, - const wxSize& size, - long style, - const wxString& name) + +bool wxStaticBox::Create( wxWindow *parent, + wxWindowID id, + const wxString& label, + const wxPoint& pos, + const wxSize& size, + long style, + const wxString& name ) { - SetName(name); + m_macIsUserPane = false; - if (parent) parent->AddChild(this); + if ( !wxControl::Create( parent, id, pos, size, style, wxDefaultValidator, name ) ) + return false; - if ( id == -1 ) - m_windowId = (int)NewControlId(); - else - m_windowId = id; + m_label = label; - m_windowStyle = style; + Rect bounds = wxMacGetBoundsForControl( this, pos, size ); - // TODO: create static box - return FALSE; -} + m_peer = new wxMacControl( this ); + OSStatus err = CreateGroupBoxControl( + MAC_WXHWND(parent->MacGetTopLevelWindowRef()), &bounds, CFSTR(""), + true /*primary*/, m_peer->GetControlRefAddr() ); + verify_noerr( err ); -void wxStaticBox::SetLabel(const wxString& label) -{ - // TODO + MacPostControlCreate( pos, size ); + + return true; } -void wxStaticBox::SetSize(int x, int y, int width, int height, int sizeFlags) +void wxStaticBox::GetBordersForSizer(int *borderTop, int *borderOther) const { - // TODO + static int extraTop = -1; // Uninitted + static int other = 5; + + if ( extraTop == -1 ) + { + // The minimal border used for the top. + // Later on, the staticbox's 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 + GetCharHeight(); + *borderOther = other; } +#endif // wxUSE_STATBOX +