X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/4b5f3fe655deeb91d5d3abe8fad30c4a1cae63dc..8aa4edd248534c4c1879c93d363d1b7fb8e8c5c6:/src/motif/statbox.cpp?ds=sidebyside diff --git a/src/motif/statbox.cpp b/src/motif/statbox.cpp index 7d9cbd0c8e..5d8bf67b59 100644 --- a/src/motif/statbox.cpp +++ b/src/motif/statbox.cpp @@ -53,6 +53,7 @@ bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, m_labelWidget = (WXWidget) 0; m_backgroundColour = parent->GetBackgroundColour(); m_foregroundColour = parent->GetForegroundColour(); + m_windowFont = parent->GetFont(); SetName(name); @@ -78,10 +79,13 @@ bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, 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); @@ -110,15 +114,21 @@ bool wxStaticBox::Create(wxWindow *parent, wxWindowID id, 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); +} + void wxStaticBox::SetLabel(const wxString& label) { if (!m_labelWidget) @@ -189,10 +199,14 @@ void wxStaticBox::ChangeFont(bool keepOriginalSize) 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); }