Native wxControl::DoGetBestSize() implementation

using XtQueryGeometry().


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27037 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Mattia Barbon 2004-05-01 17:06:08 +00:00
parent 0c05fdf357
commit 0c02f0701e
2 changed files with 21 additions and 5 deletions

View File

@ -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;

View File

@ -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);
}