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:
@@ -44,10 +44,10 @@ public:
|
|||||||
const wxValidator& validator = wxDefaultValidator,
|
const wxValidator& validator = wxDefaultValidator,
|
||||||
const wxString& name = wxControlNameStr);
|
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)) { }
|
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
|
// event was processed
|
||||||
virtual bool ProcessCommand(wxCommandEvent& event);
|
virtual bool ProcessCommand(wxCommandEvent& event);
|
||||||
|
|
||||||
@@ -67,6 +67,9 @@ protected:
|
|||||||
const wxValidator& validator,
|
const wxValidator& validator,
|
||||||
const wxString& name);
|
const wxString& name);
|
||||||
|
|
||||||
|
// native implementation using XtQueryGeometry
|
||||||
|
virtual wxSize DoGetBestSize() const;
|
||||||
|
|
||||||
// Motif: prevent callbacks being called while in SetValue
|
// Motif: prevent callbacks being called while in SetValue
|
||||||
bool m_inSetValue;
|
bool m_inSetValue;
|
||||||
|
|
||||||
|
@@ -43,7 +43,7 @@ wxControl::wxControl()
|
|||||||
m_backgroundColour = *wxWHITE;
|
m_backgroundColour = *wxWHITE;
|
||||||
m_foregroundColour = *wxBLACK;
|
m_foregroundColour = *wxBLACK;
|
||||||
|
|
||||||
m_inSetValue = FALSE;
|
m_inSetValue = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxControl::Create( wxWindow *parent,
|
bool wxControl::Create( wxWindow *parent,
|
||||||
@@ -73,13 +73,13 @@ bool wxControl::CreateControl(wxWindow *parent,
|
|||||||
{
|
{
|
||||||
if( !wxControlBase::CreateControl( parent, id, pos, size, style,
|
if( !wxControlBase::CreateControl( parent, id, pos, size, style,
|
||||||
validator, name ) )
|
validator, name ) )
|
||||||
return FALSE;
|
return false;
|
||||||
|
|
||||||
m_backgroundColour = parent->GetBackgroundColour();
|
m_backgroundColour = parent->GetBackgroundColour();
|
||||||
m_foregroundColour = parent->GetForegroundColour();
|
m_foregroundColour = parent->GetForegroundColour();
|
||||||
m_font = parent->GetFont();
|
m_font = parent->GetFont();
|
||||||
|
|
||||||
return TRUE;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxControl::SetLabel(const wxString& label)
|
void wxControl::SetLabel(const wxString& label)
|
||||||
@@ -114,3 +114,16 @@ bool wxControl::ProcessCommand(wxCommandEvent & event)
|
|||||||
{
|
{
|
||||||
return GetEventHandler()->ProcessEvent(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);
|
||||||
|
}
|
||||||
|
Reference in New Issue
Block a user