X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a4294b7832a5aed3c1cccc06aecd227d43da8830..54c13c66d2c465ae00fc4e59c29312bb16eccdc4:/src/motif/control.cpp diff --git a/src/motif/control.cpp b/src/motif/control.cpp index 64369b26d2..70fa4f3d3c 100644 --- a/src/motif/control.cpp +++ b/src/motif/control.cpp @@ -6,7 +6,7 @@ // Created: 17/09/98 // RCS-ID: $Id$ // Copyright: (c) Julian Smart -// Licence: wxWindows licence +// Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// #ifdef __GNUG__ @@ -14,6 +14,7 @@ #endif #include "wx/control.h" +#include "wx/panel.h" #include "wx/utils.h" #include @@ -38,11 +39,11 @@ wxControl::~wxControl() { // If we delete an item, we should initialize the parent panel, // because it could now be invalid. - wxWindow *parent = (wxWindow *)GetParent(); - if (parent) + wxPanel *panel = wxDynamicCast(GetParent(), wxPanel); + if (panel) { - if (parent->GetDefaultItem() == (wxButton*) this) - parent->SetDefaultItem(NULL); + if (panel->GetDefaultItem() == this) + panel->SetDefaultItem((wxButton*) NULL); } } @@ -51,14 +52,14 @@ void wxControl::SetLabel(const wxString& label) Widget widget = (Widget) GetLabelWidget() ; if (!widget) return; - + wxStripMenuCodes((char*) (const char*) label, wxBuffer); XmString text = XmStringCreateSimple (wxBuffer); XtVaSetValues (widget, - XmNlabelString, text, - XmNlabelType, XmSTRING, - NULL); + XmNlabelString, text, + XmNlabelType, XmSTRING, + NULL); XmStringFree (text); } @@ -71,8 +72,8 @@ wxString wxControl::GetLabel() const XmString text; char *s; XtVaGetValues (widget, - XmNlabelString, &text, - NULL); + XmNlabelString, &text, + NULL); if (XmStringGetLtoR (text, XmSTRING_DEFAULT_CHARSET, &s)) { @@ -83,48 +84,48 @@ wxString wxControl::GetLabel() const } else { - XmStringFree(text); + // 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; + int x, y, width, height, panel_width, panel_height, new_x, new_y; - wxWindow *parent = (wxWindow *) GetParent (); - if (!parent) - return; + wxWindow *parent = (wxWindow *) GetParent (); + if (!parent) + return; - parent->GetClientSize (&panel_width, &panel_height); - GetSize (&width, &height); - GetPosition (&x, &y); + parent->GetClientSize (&panel_width, &panel_height); + GetSize (&width, &height); + GetPosition (&x, &y); - new_x = x; - new_y = y; + new_x = x; + new_y = y; - if (direction & wxHORIZONTAL) - new_x = (int) ((panel_width - width) / 2); + if (direction & wxHORIZONTAL) + new_x = (int) ((panel_width - width) / 2); - if (direction & wxVERTICAL) - new_y = (int) ((panel_height - height) / 2); + if (direction & wxVERTICAL) + new_y = (int) ((panel_height - height) / 2); - SetSize (new_x, new_y, width, height); + SetSize (new_x, new_y, width, height); }