/////////////////////////////////////////////////////////////////////////////
-// 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
#include "wx/motif/private.h"
-IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl)
-
BEGIN_EVENT_TABLE(wxStaticBox, wxControl)
//EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground)
END_EVENT_TABLE()
if( !CreateControl( parent, id, pos, size, style,
wxDefaultValidator, name ) )
return false;
+ m_labelWidget = (WXWidget) 0;
+ PreCreation();
Widget parentWidget = (Widget) parent->GetClientWidget();
// 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()
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;
+ }
+}