X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/f6045f99ba2bf267172a11f262fea8dedb0a75ee..3aabb24c0881db85a8f2c6b4dd6691b717577307:/src/motif/control.cpp diff --git a/src/motif/control.cpp b/src/motif/control.cpp index 310c2c6861..e488c043aa 100644 --- a/src/motif/control.cpp +++ b/src/motif/control.cpp @@ -27,6 +27,8 @@ #pragma message enable nosimpint #endif +#include "wx/motif/private.h" + IMPLEMENT_ABSTRACT_CLASS(wxControl, wxWindow) BEGIN_EVENT_TABLE(wxControl, wxWindow) @@ -62,16 +64,23 @@ bool wxControl::Create( wxWindow *parent, return ret; } -wxControl::~wxControl() +bool wxControl::CreateControl(wxWindow *parent, + wxWindowID id, + const wxPoint& pos, + const wxSize& size, + long style, + const wxValidator& validator, + const wxString& name) { - // If we delete an item, we should initialize the parent panel, - // because it could now be invalid. - wxPanel *panel = wxDynamicCast(GetParent(), wxPanel); - if (panel) - { - if ( (wxControl *)panel->GetDefaultItem() == this) - panel->SetDefaultItem((wxButton*) NULL); - } + if( !wxControlBase::CreateControl( parent, id, pos, size, style, + validator, name ) ) + return FALSE; + + m_backgroundColour = parent->GetBackgroundColour(); + m_foregroundColour = parent->GetForegroundColour(); + m_font = parent->GetFont(); + + return TRUE; } void wxControl::SetLabel(const wxString& label) @@ -80,14 +89,12 @@ void wxControl::SetLabel(const wxString& label) if (!widget) return; - wxStripMenuCodes((char*) (const char*) label, wxBuffer); + wxXmString label_str(wxStripMenuCodes(label)); - XmString text = XmStringCreateSimple (wxBuffer); XtVaSetValues (widget, - XmNlabelString, text, + XmNlabelString, label_str(), XmNlabelType, XmSTRING, NULL); - XmStringFree (text); } wxString wxControl::GetLabel() const @@ -97,23 +104,11 @@ wxString wxControl::GetLabel() const return wxEmptyString; XmString text; - char *s; XtVaGetValues (widget, XmNlabelString, &text, NULL); - if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s)) - { - wxString str(s); - XtFree (s); - XmStringFree(text); - return str; - } - else - { - // XmStringFree(text); - return wxEmptyString; - } + return wxXmStringToString( text ); } bool wxControl::ProcessCommand(wxCommandEvent & event)