IMPLEMENT_DYNAMIC_CLASS(wxStaticBox, wxControl)
BEGIN_EVENT_TABLE(wxStaticBox, wxControl)
- EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground)
+// EVT_ERASE_BACKGROUND(wxStaticBox::OnEraseBackground)
END_EVENT_TABLE()
#endif
m_labelWidget = (WXWidget) 0;
m_backgroundColour = parent->GetBackgroundColour();
m_foregroundColour = parent->GetForegroundColour();
+ m_font = parent->GetFont();
SetName(name);
if (hasLabel)
{
+ XmFontList fontList = (XmFontList) m_font.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);
XmNrightAttachment, XmATTACH_FORM,
NULL);
- m_mainWidget = (Widget) formWidget;
+ m_mainWidget = (WXWidget) frameWidget;
+ m_formWidget = (WXWidget) formWidget;
SetCanAddEventHandler(TRUE);
- AttachWidget (parent, m_mainWidget, (WXWidget) frameWidget, pos.x, pos.y, size.x, size.y);
+ 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;
+}
+
void wxStaticBox::SetLabel(const wxString& label)
{
if (!m_labelWidget)
}
}
-void wxStaticBox::SetSize(int x, int y, int width, int height, int sizeFlags)
+void wxStaticBox::DoSetSize(int x, int y, int width, int height, int sizeFlags)
{
- wxControl::SetSize (x, y, width, height, sizeFlags);
+ wxControl::DoSetSize (x, y, width, height, sizeFlags);
if (m_labelWidget)
{
void wxStaticBox::ChangeBackgroundColour()
{
wxWindow::ChangeBackgroundColour();
+ if (m_labelWidget)
+ DoChangeBackgroundColour(m_labelWidget, m_backgroundColour);
}
void wxStaticBox::ChangeForegroundColour()
{
wxWindow::ChangeForegroundColour();
+ if (m_labelWidget)
+ DoChangeForegroundColour(m_labelWidget, m_foregroundColour);
}