X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/02e8b2f9fbdfcd25080c42082d637da257c20094..f5e5bd660712f91193b9363c24283c7c74ca8bba:/src/motif/control.cpp diff --git a/src/motif/control.cpp b/src/motif/control.cpp index 4e708a5c14..91758e606a 100644 --- a/src/motif/control.cpp +++ b/src/motif/control.cpp @@ -31,6 +31,7 @@ wxControl::wxControl() m_backgroundColour = *wxWHITE; m_foregroundColour = *wxBLACK; m_callback = 0; + m_inSetValue = FALSE; } wxControl::~wxControl() @@ -47,81 +48,83 @@ wxControl::~wxControl() void wxControl::SetLabel(const wxString& label) { - if (!GetMainWidget()) - return; - - wxStripMenuCodes((char*) (const char*) label, wxBuffer); - - XmString text = XmStringCreateSimple (wxBuffer); - XtVaSetValues ((Widget) GetMainWidget(), - XmNlabelString, text, - XmNlabelType, XmSTRING, - NULL); - XmStringFree (text); + Widget widget = (Widget) GetLabelWidget() ; + if (!widget) + return; + + wxStripMenuCodes((char*) (const char*) label, wxBuffer); + + XmString text = XmStringCreateSimple (wxBuffer); + XtVaSetValues (widget, + XmNlabelString, text, + XmNlabelType, XmSTRING, + NULL); + XmStringFree (text); } wxString wxControl::GetLabel() const { - if (!GetMainWidget()) - return wxEmptyString; - - XmString text; - char *s; - XtVaGetValues ((Widget) GetMainWidget(), - XmNlabelString, &text, - NULL); - - if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s)) + Widget widget = (Widget) GetLabelWidget() ; + if (!widget) + 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; + wxString str(s); + XtFree (s); + XmStringFree(text); + return str; } - else + else { - XmStringFree(text); - return wxEmptyString; + // XmStringFree(text); + return wxEmptyString; } } void wxControl::ProcessCommand (wxCommandEvent & event) { - // Tries: - // 1) A callback function (to become obsolete) - // 2) OnCommand, starting at this window and working up parent hierarchy - // 3) OnCommand then calls ProcessEvent to search the event tables. - if (m_callback) + // Tries: + // 1) A callback function (to become obsolete) + // 2) OnCommand, starting at this window and working up parent hierarchy + // 3) OnCommand then calls ProcessEvent to search the event tables. + if (m_callback) { - (void) (*(m_callback)) (*this, event); + (void) (*(m_callback)) (*this, event); } else { - GetEventHandler()->OnCommand(*this, event); + GetEventHandler()->OnCommand(*this, event); } } void wxControl::Centre (int direction) { - int x, y, width, height, panel_width, panel_height, new_x, new_y; - - wxWindow *parent = (wxWindow *) GetParent (); - if (!parent) - return; - - parent->GetClientSize (&panel_width, &panel_height); - GetSize (&width, &height); - GetPosition (&x, &y); - - new_x = x; - new_y = y; - - if (direction & wxHORIZONTAL) - new_x = (int) ((panel_width - width) / 2); - - if (direction & wxVERTICAL) - new_y = (int) ((panel_height - height) / 2); - - SetSize (new_x, new_y, width, height); + int x, y, width, height, panel_width, panel_height, new_x, new_y; + + wxWindow *parent = (wxWindow *) GetParent (); + if (!parent) + return; + + parent->GetClientSize (&panel_width, &panel_height); + GetSize (&width, &height); + GetPosition (&x, &y); + + new_x = x; + new_y = y; + + if (direction & wxHORIZONTAL) + new_x = (int) ((panel_width - width) / 2); + + if (direction & wxVERTICAL) + new_y = (int) ((panel_height - height) / 2); + + SetSize (new_x, new_y, width, height); }