From: Mattia Barbon Date: Sat, 1 May 2004 17:06:08 +0000 (+0000) Subject: Native wxControl::DoGetBestSize() implementation X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/0c02f0701e960de4a1f60bc821c19c03b8fc88c3 Native wxControl::DoGetBestSize() implementation using XtQueryGeometry(). git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27037 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/include/wx/motif/control.h b/include/wx/motif/control.h index 4aae5b7a96..9fde5ab454 100644 --- a/include/wx/motif/control.h +++ b/include/wx/motif/control.h @@ -44,10 +44,10 @@ public: const wxValidator& validator = wxDefaultValidator, const wxString& name = wxControlNameStr); - // simulates the event, returns TRUE if the event was processed + // simulates the event, returns true if the event was processed virtual void Command(wxCommandEvent& WXUNUSED(event)) { } - // calls the callback and appropriate event handlers, returns TRUE if + // calls the callback and appropriate event handlers, returns true if // event was processed virtual bool ProcessCommand(wxCommandEvent& event); @@ -67,6 +67,9 @@ protected: const wxValidator& validator, const wxString& name); + // native implementation using XtQueryGeometry + virtual wxSize DoGetBestSize() const; + // Motif: prevent callbacks being called while in SetValue bool m_inSetValue; diff --git a/src/motif/control.cpp b/src/motif/control.cpp index 11cfb4793c..2f503b86ae 100644 --- a/src/motif/control.cpp +++ b/src/motif/control.cpp @@ -43,7 +43,7 @@ wxControl::wxControl() m_backgroundColour = *wxWHITE; m_foregroundColour = *wxBLACK; - m_inSetValue = FALSE; + m_inSetValue = false; } bool wxControl::Create( wxWindow *parent, @@ -73,13 +73,13 @@ bool wxControl::CreateControl(wxWindow *parent, { if( !wxControlBase::CreateControl( parent, id, pos, size, style, validator, name ) ) - return FALSE; + return false; m_backgroundColour = parent->GetBackgroundColour(); m_foregroundColour = parent->GetForegroundColour(); m_font = parent->GetFont(); - return TRUE; + return true; } void wxControl::SetLabel(const wxString& label) @@ -114,3 +114,16 @@ bool wxControl::ProcessCommand(wxCommandEvent & event) { return GetEventHandler()->ProcessEvent(event); } + +wxSize wxControl::DoGetBestSize() const +{ + Widget w = (Widget)GetTopWidget(); + + // Do not return any arbitrary default value... + wxASSERT_MSG (w, wxT("DoGetBestSize called before creation")); + + XtWidgetGeometry preferred; + XtQueryGeometry (w, NULL, &preferred); + + return wxSize(preferred.width, preferred.height); +}