+ bool hasLabel = (!label.IsNull() && !label.IsEmpty()) ;
+
+ Widget parentWidget = (Widget) parent->GetClientWidget();
+
+ Widget formWidget = XtVaCreateManagedWidget ((char*) (const char*) name,
+ xmFormWidgetClass, parentWidget,
+ XmNmarginHeight, 0,
+ XmNmarginWidth, 0,
+ NULL);
+
+
+ if (hasLabel)
+ {
+ XmFontList fontList = (XmFontList) m_windowFont.GetFontList(1.0, XtDisplay(parentWidget));
+
+ wxString label1(wxStripMenuCodes(label));
+ XmString text = XmStringCreateSimple ((char*) (const char*) label1);
+ m_labelWidget = (WXWidget) XtVaCreateManagedWidget ((char*) (const char*) label1,
+ xmLabelWidgetClass, formWidget,
+ XmNfontList, fontList,
+ XmNlabelString, text,
+ NULL);
+ XmStringFree (text);
+ }
+
+ Widget frameWidget = XtVaCreateManagedWidget ("frame",
+ xmFrameWidgetClass, formWidget,
+ XmNshadowType, XmSHADOW_IN,
+// XmNmarginHeight, 0,
+// XmNmarginWidth, 0,
+ NULL);
+
+ if (hasLabel)
+ XtVaSetValues ((Widget) m_labelWidget,
+ XmNtopAttachment, XmATTACH_FORM,
+ XmNleftAttachment, XmATTACH_FORM,
+ XmNrightAttachment, XmATTACH_FORM,
+ XmNalignment, XmALIGNMENT_BEGINNING,
+ NULL);
+
+ XtVaSetValues (frameWidget,
+ XmNtopAttachment, hasLabel ? XmATTACH_WIDGET : XmATTACH_FORM,
+ XmNtopWidget, hasLabel ? (Widget) m_labelWidget : formWidget,
+ XmNbottomAttachment, XmATTACH_FORM,
+ XmNleftAttachment, XmATTACH_FORM,
+ XmNrightAttachment, XmATTACH_FORM,
+ NULL);
+
+ m_mainWidget = (WXWidget) frameWidget;
+ m_formWidget = (WXWidget) formWidget;
+
+ SetCanAddEventHandler(TRUE);
+ AttachWidget (parent, (WXWidget) frameWidget, (WXWidget) formWidget, pos.x, pos.y, size.x, size.y);
+ ChangeBackgroundColour();
+
+ return TRUE;
+}
+
+wxStaticBox::~wxStaticBox()
+{
+ DetachWidget(m_formWidget);
+ DetachWidget(m_mainWidget);
+ XtDestroyWidget((Widget) m_mainWidget);
+ if (m_labelWidget)
+ XtDestroyWidget((Widget) m_labelWidget);
+ XtDestroyWidget((Widget) m_formWidget);
+
+ m_mainWidget = (WXWidget) 0;
+ m_labelWidget = (WXWidget) 0;
+ m_formWidget = (WXWidget) 0;