X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/14f355c2b5c71fc7c3d680aea366582d2ac60f7b..cc4d5638c66a409e421420ed7110917755a66788:/src/motif/statbox.cpp diff --git a/src/motif/statbox.cpp b/src/motif/statbox.cpp index 0c3d210a5e..be5679b748 100644 --- a/src/motif/statbox.cpp +++ b/src/motif/statbox.cpp @@ -1,26 +1,21 @@ ///////////////////////////////////////////////////////////////////////////// -// Name: statbox.cpp +// Name: src/motif/statbox.cpp // Purpose: wxStaticBox // Author: Julian Smart // Modified by: // Created: 17/09/98 -// RCS-ID: $Id$ // Copyright: (c) Julian Smart // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// -#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA) -#pragma implementation "statbox.h" -#endif - -#ifdef __VMS -#define XtDisplay XTDISPLAY -#endif - -#include "wx/defs.h" +// For compilers that support precompilation, includes "wx.h". +#include "wx/wxprec.h" #include "wx/statbox.h" -#include "wx/utils.h" + +#ifndef WX_PRECOMP + #include "wx/utils.h" +#endif #ifdef __VMS__ #pragma message disable nosimpint @@ -33,8 +28,6 @@ #include "wx/motif/private.h" -IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl) - BEGIN_EVENT_TABLE(wxStaticBox, wxControl) //EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground) END_EVENT_TABLE() @@ -93,6 +86,8 @@ bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, if( !CreateControl( parent, id, pos, size, style, wxDefaultValidator, name ) ) return false; + m_labelWidget = (WXWidget) 0; + PreCreation(); Widget parentWidget = (Widget) parent->GetClientWidget(); @@ -102,29 +97,28 @@ bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, // XmNshadowType, XmSHADOW_IN, NULL); - bool hasLabel = (!label.IsNull() && !label.IsEmpty()) ; - if (hasLabel) + if (!label.empty()) { - WXFontType fontType = m_font.GetFontType( XtDisplay( parentWidget ) ); - wxString label1(wxStripMenuCodes(label)); + wxString label1(GetLabelText(label)); wxXmString text(label1); + Display* dpy = XtDisplay( parentWidget ); m_labelWidget = (WXWidget) XtVaCreateManagedWidget ("staticboxlabel", xmLabelWidgetClass, (Widget)m_mainWidget, - wxFont::GetFontTag(), fontType, + wxFont::GetFontTag(), m_font.GetFontTypeC(dpy), XmNlabelString, text(), #if wxCHECK_MOTIF_VERSION( 2, 0 ) XmNframeChildType, XmFRAME_TITLE_CHILD, #else - XmNchildType, XmFRAME_TITLE_CHILD, + XmNchildType, XmFRAME_TITLE_CHILD, #endif NULL); } - + + PostCreation(); AttachWidget (parent, m_mainWidget, NULL, pos.x, pos.y, size.x, size.y); - ChangeBackgroundColour(); - return TRUE; + return true; } wxStaticBox::~wxStaticBox() @@ -144,3 +138,27 @@ void wxStaticBox::SetLabel( const wxString& label ) sk.Restore(); } + +void wxStaticBox::GetBordersForSizer(int *borderTop, int *borderOther) const +{ + Dimension shadow, border; + + XtVaGetValues( (Widget) GetMainWidget(), + XmNshadowThickness, &shadow, + XmNborderWidth, &border, + NULL); + + *borderOther = shadow + border; + + if( GetLabelWidget() ) + { + XtWidgetGeometry preferred; + XtQueryGeometry( (Widget) GetLabelWidget(), NULL, &preferred ); + + *borderTop = preferred.height; + } + else + { + *borderTop = shadow; + } +}