Controls will readjust their size and minsize when SetLabel or SetFont
are called. Fixed up wxStaticText to blend the wxST_NO_AUTOSIZE with this new functionality. Made SetBestSize public under the SetBestFittingSize name. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27890 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -29,6 +29,14 @@ displays one or more item of data.
|
|||||||
Simulates the effect of the user issuing a command to the item. See \helpref{wxCommandEvent}{wxcommandevent}.
|
Simulates the effect of the user issuing a command to the item. See \helpref{wxCommandEvent}{wxcommandevent}.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxControl::GetAdjustMinSizeFlag}\label{wxcontrolgetadjustminsizeflag}
|
||||||
|
|
||||||
|
\func{bool}{GetAdjustMinSizeFlag}{}
|
||||||
|
|
||||||
|
Returns whether the minsize should be adjusted for this control when
|
||||||
|
SetLabel or SetFont are called.
|
||||||
|
|
||||||
|
|
||||||
\membersection{wxControl::GetLabel}\label{wxcontrolgetlabel}
|
\membersection{wxControl::GetLabel}\label{wxcontrolgetlabel}
|
||||||
|
|
||||||
\func{wxString\&}{GetLabel}{\void}
|
\func{wxString\&}{GetLabel}{\void}
|
||||||
@@ -36,6 +44,14 @@ Simulates the effect of the user issuing a command to the item. See \helpref{wxC
|
|||||||
Returns the control's text.
|
Returns the control's text.
|
||||||
|
|
||||||
|
|
||||||
|
\membersection{wxControl::SetAdjustMinSizeFlag}\label{wxcontrolsetadjustminsizeflag}
|
||||||
|
|
||||||
|
\func{void}{SetAdjustMinSizeFlag}{\param{bool }{adjust}}
|
||||||
|
|
||||||
|
By default controls will readjust their size and minsize when
|
||||||
|
SetLabel or SetFont are called. This flag will allow you to
|
||||||
|
control this behavior.
|
||||||
|
|
||||||
\membersection{wxControl::SetLabel}\label{wxcontrolsetlabel}
|
\membersection{wxControl::SetLabel}\label{wxcontrolsetlabel}
|
||||||
|
|
||||||
\func{void}{SetLabel}{\param{const wxString\& }{label}}
|
\func{void}{SetLabel}{\param{const wxString\& }{label}}
|
||||||
|
@@ -2390,6 +2390,20 @@ applications on the system.
|
|||||||
\helpref{wxWindow::Refresh}{wxwindowrefresh},\rtfsp
|
\helpref{wxWindow::Refresh}{wxwindowrefresh},\rtfsp
|
||||||
\helpref{wxEraseEvent}{wxeraseevent}
|
\helpref{wxEraseEvent}{wxeraseevent}
|
||||||
|
|
||||||
|
\membersection{wxWindow::SetBestFittingSize}\label{wxwindowsetbestfittingsize}
|
||||||
|
|
||||||
|
\func{void}{SetBestFittingSize}{\param{const wxSize& }{size = wxDefaultSize}}
|
||||||
|
|
||||||
|
A {\it smart} SetSize that will fill in default size components with the
|
||||||
|
window's {\it best} size values. Also set's the minsize for use with
|
||||||
|
sizers.
|
||||||
|
|
||||||
|
\wxheading{See also}
|
||||||
|
|
||||||
|
\helpref{wxWindow::SetSize}{wxwindowsetsize}
|
||||||
|
\helpref{wxWindow::GetBestSize}{wxwindowgetbestsize}
|
||||||
|
\helpref{wxWindow::SetSizeHints}{wxwindowsetsizehints}
|
||||||
|
|
||||||
|
|
||||||
\membersection{wxWindow::SetCaret}\label{wxwindowsetcaret}
|
\membersection{wxWindow::SetCaret}\label{wxwindowsetcaret}
|
||||||
|
|
||||||
|
@@ -32,10 +32,11 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxControlNameStr;
|
|||||||
// wxControl is the base class for all controls
|
// wxControl is the base class for all controls
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
class WXDLLEXPORT wxControlBase : public wxWindow
|
class WXDLLEXPORT wxControlBase : public wxWindow
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
wxControlBase() { }
|
wxControlBase() { Init(); }
|
||||||
|
|
||||||
virtual ~wxControlBase();
|
virtual ~wxControlBase();
|
||||||
|
|
||||||
@@ -63,7 +64,16 @@ public:
|
|||||||
// if the button was clicked)
|
// if the button was clicked)
|
||||||
virtual void Command(wxCommandEvent &event);
|
virtual void Command(wxCommandEvent &event);
|
||||||
|
|
||||||
|
|
||||||
|
virtual void SetLabel(const wxString& label);
|
||||||
|
virtual bool SetFont(const wxFont& font);
|
||||||
|
virtual bool GetAdjustMinSizeFlag() const { return m_adjustMinSize; }
|
||||||
|
void SetAdjustMinSizeFlag(bool adjust) { m_adjustMinSize = adjust; }
|
||||||
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
void Init();
|
||||||
|
|
||||||
// creates the control (calls wxWindowBase::CreateBase inside) and adds it
|
// creates the control (calls wxWindowBase::CreateBase inside) and adds it
|
||||||
// to the list of parents children
|
// to the list of parents children
|
||||||
bool CreateControl(wxWindowBase *parent,
|
bool CreateControl(wxWindowBase *parent,
|
||||||
@@ -88,6 +98,9 @@ protected:
|
|||||||
SetBestSize(size);
|
SetBestSize(size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// should minsize and size be adjusted when font or label change?
|
||||||
|
bool m_adjustMinSize;
|
||||||
|
|
||||||
DECLARE_NO_COPY_CLASS(wxControlBase)
|
DECLARE_NO_COPY_CLASS(wxControlBase)
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -63,6 +63,7 @@ protected:
|
|||||||
|
|
||||||
virtual wxSize DoGetBestSize() const;
|
virtual wxSize DoGetBestSize() const;
|
||||||
void PostCreation(const wxSize& size);
|
void PostCreation(const wxSize& size);
|
||||||
|
void PostSetLabel();
|
||||||
|
|
||||||
#ifdef __WXGTK20__
|
#ifdef __WXGTK20__
|
||||||
wxString PrepareLabelMnemonics( const wxString &label ) const;
|
wxString PrepareLabelMnemonics( const wxString &label ) const;
|
||||||
@@ -93,6 +94,7 @@ protected:
|
|||||||
|
|
||||||
wxString m_label;
|
wxString m_label;
|
||||||
char m_chAccel; // enabled to avoid breaking binary compatibility later on
|
char m_chAccel; // enabled to avoid breaking binary compatibility later on
|
||||||
|
bool m_createComplete;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxControl)
|
DECLARE_DYNAMIC_CLASS(wxControl)
|
||||||
|
@@ -57,7 +57,8 @@ public:
|
|||||||
wxString GetLabel() const;
|
wxString GetLabel() const;
|
||||||
void SetLabel( const wxString &label );
|
void SetLabel( const wxString &label );
|
||||||
|
|
||||||
bool SetFont( const wxFont &font );
|
bool GetAdjustMinSizeFlag() const { return !HasFlag(wxST_NO_AUTORESIZE); }
|
||||||
|
|
||||||
bool SetForegroundColour( const wxColour& colour );
|
bool SetForegroundColour( const wxColour& colour );
|
||||||
|
|
||||||
static wxVisualAttributes
|
static wxVisualAttributes
|
||||||
|
@@ -63,6 +63,7 @@ protected:
|
|||||||
|
|
||||||
virtual wxSize DoGetBestSize() const;
|
virtual wxSize DoGetBestSize() const;
|
||||||
void PostCreation(const wxSize& size);
|
void PostCreation(const wxSize& size);
|
||||||
|
void PostSetLabel();
|
||||||
|
|
||||||
#ifdef __WXGTK20__
|
#ifdef __WXGTK20__
|
||||||
wxString PrepareLabelMnemonics( const wxString &label ) const;
|
wxString PrepareLabelMnemonics( const wxString &label ) const;
|
||||||
@@ -93,6 +94,7 @@ protected:
|
|||||||
|
|
||||||
wxString m_label;
|
wxString m_label;
|
||||||
char m_chAccel; // enabled to avoid breaking binary compatibility later on
|
char m_chAccel; // enabled to avoid breaking binary compatibility later on
|
||||||
|
bool m_createComplete;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_DYNAMIC_CLASS(wxControl)
|
DECLARE_DYNAMIC_CLASS(wxControl)
|
||||||
|
@@ -57,7 +57,8 @@ public:
|
|||||||
wxString GetLabel() const;
|
wxString GetLabel() const;
|
||||||
void SetLabel( const wxString &label );
|
void SetLabel( const wxString &label );
|
||||||
|
|
||||||
bool SetFont( const wxFont &font );
|
bool GetAdjustMinSizeFlag() const { return !HasFlag(wxST_NO_AUTORESIZE); }
|
||||||
|
|
||||||
bool SetForegroundColour( const wxColour& colour );
|
bool SetForegroundColour( const wxColour& colour );
|
||||||
|
|
||||||
static wxVisualAttributes
|
static wxVisualAttributes
|
||||||
|
@@ -40,7 +40,6 @@ public:
|
|||||||
|
|
||||||
// accessors
|
// accessors
|
||||||
void SetLabel( const wxString &str ) ;
|
void SetLabel( const wxString &str ) ;
|
||||||
bool SetFont( const wxFont &font );
|
|
||||||
|
|
||||||
protected :
|
protected :
|
||||||
|
|
||||||
|
@@ -41,7 +41,6 @@ class WXDLLEXPORT wxStaticText: public wxStaticTextBase
|
|||||||
|
|
||||||
// accessors
|
// accessors
|
||||||
void SetLabel( const wxString &str ) ;
|
void SetLabel( const wxString &str ) ;
|
||||||
bool SetFont( const wxFont &font );
|
|
||||||
|
|
||||||
// operations
|
// operations
|
||||||
virtual void Command(wxCommandEvent& WXUNUSED(event)) {};
|
virtual void Command(wxCommandEvent& WXUNUSED(event)) {};
|
||||||
|
@@ -45,8 +45,6 @@ public:
|
|||||||
virtual void SetValue(bool value);
|
virtual void SetValue(bool value);
|
||||||
virtual bool GetValue() const;
|
virtual bool GetValue() const;
|
||||||
|
|
||||||
virtual void SetLabel(const wxString& label);
|
|
||||||
|
|
||||||
virtual bool MSWCommand(WXUINT param, WXWORD id);
|
virtual bool MSWCommand(WXUINT param, WXWORD id);
|
||||||
virtual void Command(wxCommandEvent& event);
|
virtual void Command(wxCommandEvent& event);
|
||||||
|
|
||||||
|
@@ -40,10 +40,6 @@ public:
|
|||||||
long style = 0,
|
long style = 0,
|
||||||
const wxString& name = wxStaticTextNameStr);
|
const wxString& name = wxStaticTextNameStr);
|
||||||
|
|
||||||
// override some methods to resize the window properly
|
|
||||||
virtual void SetLabel(const wxString& label);
|
|
||||||
virtual bool SetFont( const wxFont &font );
|
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
// implement/override some base class virtuals
|
// implement/override some base class virtuals
|
||||||
virtual wxBorder GetDefaultBorder() const;
|
virtual wxBorder GetDefaultBorder() const;
|
||||||
|
@@ -45,7 +45,6 @@ public:
|
|||||||
virtual bool GetValue() const ;
|
virtual bool GetValue() const ;
|
||||||
|
|
||||||
virtual bool MSWCommand(WXUINT param, WXWORD id);
|
virtual bool MSWCommand(WXUINT param, WXWORD id);
|
||||||
virtual void SetLabel(const wxString& label);
|
|
||||||
virtual void Command(wxCommandEvent& event);
|
virtual void Command(wxCommandEvent& event);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@@ -17,6 +17,8 @@ public:
|
|||||||
virtual void ApplyParentThemeBackground(const wxColour& bg)
|
virtual void ApplyParentThemeBackground(const wxColour& bg)
|
||||||
{ SetBackgroundColour(bg); }
|
{ SetBackgroundColour(bg); }
|
||||||
|
|
||||||
|
bool GetAdjustMinSizeFlag() const { return !HasFlag(wxST_NO_AUTORESIZE); }
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DECLARE_NO_COPY_CLASS(wxStaticTextBase)
|
DECLARE_NO_COPY_CLASS(wxStaticTextBase)
|
||||||
};
|
};
|
||||||
|
@@ -230,6 +230,9 @@ public:
|
|||||||
void Move(const wxPoint& pt, int flags = wxSIZE_USE_EXISTING)
|
void Move(const wxPoint& pt, int flags = wxSIZE_USE_EXISTING)
|
||||||
{ Move(pt.x, pt.y, flags); }
|
{ Move(pt.x, pt.y, flags); }
|
||||||
|
|
||||||
|
// A 'Smart' SetSize that will fill in default size values with 'best' size
|
||||||
|
void SetBestFittingSize(const wxSize& size=wxDefaultSize);
|
||||||
|
|
||||||
// Z-order
|
// Z-order
|
||||||
virtual void Raise() = 0;
|
virtual void Raise() = 0;
|
||||||
virtual void Lower() = 0;
|
virtual void Lower() = 0;
|
||||||
@@ -1136,15 +1139,10 @@ protected:
|
|||||||
static int WidthDefault(int w) { return w == -1 ? 20 : w; }
|
static int WidthDefault(int w) { return w == -1 ? 20 : w; }
|
||||||
static int HeightDefault(int h) { return h == -1 ? 20 : h; }
|
static int HeightDefault(int h) { return h == -1 ? 20 : h; }
|
||||||
|
|
||||||
// set the best size for the control if the default size was given:
|
// keep the old name for compatibility, at least until all the internal
|
||||||
// replaces the fields of size == -1 with the best values for them and
|
// usages of it are changed to SetBestFittingSize
|
||||||
// calls SetSize() if needed
|
void SetBestSize(const wxSize& size) { SetBestFittingSize(size); }
|
||||||
//
|
|
||||||
// This function is rather unfortunately named.. it's really just a
|
|
||||||
// smarter SetSize / convenience function for expanding wxDefaultSize.
|
|
||||||
// Note that it does not influence the value returned by GetBestSize
|
|
||||||
// at all.
|
|
||||||
void SetBestSize(const wxSize& size);
|
|
||||||
|
|
||||||
// set the initial window size if none is given (i.e. at least one of the
|
// set the initial window size if none is given (i.e. at least one of the
|
||||||
// components of the size passed to ctor/Create() is -1)
|
// components of the size passed to ctor/Create() is -1)
|
||||||
|
@@ -68,6 +68,13 @@ bool wxControlBase::Create(wxWindow *parent,
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void wxControlBase::Init()
|
||||||
|
{
|
||||||
|
m_adjustMinSize = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
bool wxControlBase::CreateControl(wxWindowBase *parent,
|
bool wxControlBase::CreateControl(wxWindowBase *parent,
|
||||||
wxWindowID id,
|
wxWindowID id,
|
||||||
const wxPoint& pos,
|
const wxPoint& pos,
|
||||||
@@ -116,6 +123,24 @@ void wxControlBase::InitCommandEvent(wxCommandEvent& event) const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxControlBase::SetLabel(const wxString& label)
|
||||||
|
{
|
||||||
|
wxWindow::SetLabel(label);
|
||||||
|
if (GetAdjustMinSizeFlag())
|
||||||
|
SetBestSize(wxDefaultSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool wxControlBase::SetFont(const wxFont& font)
|
||||||
|
{
|
||||||
|
bool ret = wxWindow::SetFont(font);
|
||||||
|
|
||||||
|
if (GetAdjustMinSizeFlag())
|
||||||
|
SetBestSize(wxDefaultSize);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// wxStaticBitmap
|
// wxStaticBitmap
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
@@ -620,7 +620,7 @@ wxSize wxWindowBase::DoGetBestSize() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxWindowBase::SetBestSize(const wxSize& size)
|
void wxWindowBase::SetBestFittingSize(const wxSize& size)
|
||||||
{
|
{
|
||||||
// If the given size is incomplete then merge with the best size.
|
// If the given size is incomplete then merge with the best size.
|
||||||
wxSize sizeBest;
|
wxSize sizeBest;
|
||||||
|
@@ -184,6 +184,7 @@ void wxBitmapButton::SetLabel( const wxString &label )
|
|||||||
wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
|
wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
|
||||||
|
|
||||||
wxControl::SetLabel( label );
|
wxControl::SetLabel( label );
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxBitmapButton::GetLabel() const
|
wxString wxBitmapButton::GetLabel() const
|
||||||
|
@@ -175,6 +175,8 @@ void wxButton::SetLabel( const wxString &label )
|
|||||||
#else
|
#else
|
||||||
gtk_label_set( GTK_LABEL( BUTTON_CHILD(m_widget) ), wxGTK_CONV( GetLabel() ) );
|
gtk_label_set( GTK_LABEL( BUTTON_CHILD(m_widget) ), wxGTK_CONV( GetLabel() ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxButton::Enable( bool enable )
|
bool wxButton::Enable( bool enable )
|
||||||
|
@@ -158,6 +158,8 @@ void wxCheckBox::SetLabel( const wxString& label )
|
|||||||
#else
|
#else
|
||||||
gtk_label_set( GTK_LABEL(m_widgetLabel), wxGTK_CONV( GetLabel() ) );
|
gtk_label_set( GTK_LABEL(m_widgetLabel), wxGTK_CONV( GetLabel() ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxCheckBox::Enable( bool enable )
|
bool wxCheckBox::Enable( bool enable )
|
||||||
|
@@ -33,6 +33,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxControl, wxWindow)
|
|||||||
wxControl::wxControl()
|
wxControl::wxControl()
|
||||||
{
|
{
|
||||||
m_needParent = TRUE;
|
m_needParent = TRUE;
|
||||||
|
m_createComplete = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxControl::Create( wxWindow *parent,
|
bool wxControl::Create( wxWindow *parent,
|
||||||
@@ -43,6 +44,7 @@ bool wxControl::Create( wxWindow *parent,
|
|||||||
const wxValidator& validator,
|
const wxValidator& validator,
|
||||||
const wxString &name )
|
const wxString &name )
|
||||||
{
|
{
|
||||||
|
m_createComplete = false;
|
||||||
bool ret = wxWindow::Create(parent, id, pos, size, style, name);
|
bool ret = wxWindow::Create(parent, id, pos, size, style, name);
|
||||||
|
|
||||||
#if wxUSE_VALIDATORS
|
#if wxUSE_VALIDATORS
|
||||||
@@ -68,6 +70,14 @@ void wxControl::SetLabel( const wxString &label )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxControl::PostSetLabel()
|
||||||
|
{
|
||||||
|
// make sure the widget has been created, and that PostCreate has already
|
||||||
|
// been called
|
||||||
|
if (m_widget && m_createComplete && GetAdjustMinSizeFlag())
|
||||||
|
SetBestSize(wxDefaultSize);
|
||||||
|
}
|
||||||
|
|
||||||
wxString wxControl::GetLabel() const
|
wxString wxControl::GetLabel() const
|
||||||
{
|
{
|
||||||
return m_label;
|
return m_label;
|
||||||
@@ -103,6 +113,7 @@ void wxControl::PostCreation(const wxSize& size)
|
|||||||
InheritAttributes();
|
InheritAttributes();
|
||||||
ApplyWidgetStyle();
|
ApplyWidgetStyle();
|
||||||
SetInitialBestSize(size);
|
SetInitialBestSize(size);
|
||||||
|
m_createComplete = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -540,6 +540,8 @@ void wxRadioBox::SetLabel( const wxString& label )
|
|||||||
wxControl::SetLabel( label );
|
wxControl::SetLabel( label );
|
||||||
|
|
||||||
gtk_frame_set_label( GTK_FRAME(m_widget), wxGTK_CONV( wxControl::GetLabel() ) );
|
gtk_frame_set_label( GTK_FRAME(m_widget), wxGTK_CONV( wxControl::GetLabel() ) );
|
||||||
|
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxRadioBox::SetString( int item, const wxString& label )
|
void wxRadioBox::SetString( int item, const wxString& label )
|
||||||
|
@@ -145,6 +145,8 @@ void wxRadioButton::SetLabel( const wxString& label )
|
|||||||
#else
|
#else
|
||||||
gtk_label_set( g_label, wxGTK_CONV( GetLabel() ) );
|
gtk_label_set( g_label, wxGTK_CONV( GetLabel() ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxRadioButton::SetValue( bool val )
|
void wxRadioButton::SetValue( bool val )
|
||||||
|
@@ -89,6 +89,7 @@ void wxStaticBox::SetLabel( const wxString &label )
|
|||||||
|
|
||||||
gtk_frame_set_label( GTK_FRAME( m_widget ),
|
gtk_frame_set_label( GTK_FRAME( m_widget ),
|
||||||
m_label.empty() ? (char *)NULL : (const char*) wxGTK_CONV( m_label ) );
|
m_label.empty() ? (char *)NULL : (const char*) wxGTK_CONV( m_label ) );
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
|
@@ -147,26 +147,9 @@ void wxStaticText::SetLabel( const wxString &label )
|
|||||||
gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
|
gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// adjust the label size to the new label unless disabled
|
PostSetLabel();
|
||||||
if (!HasFlag(wxST_NO_AUTORESIZE))
|
|
||||||
{
|
|
||||||
SetSize( GetBestSize() );
|
|
||||||
SetSizeHints(GetSize());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxStaticText::SetFont( const wxFont &font )
|
|
||||||
{
|
|
||||||
bool ret = wxControl::SetFont(font);
|
|
||||||
|
|
||||||
// adjust the label size to the new label unless disabled
|
|
||||||
if (!HasFlag(wxST_NO_AUTORESIZE))
|
|
||||||
{
|
|
||||||
SetSize( GetBestSize() );
|
|
||||||
SetSizeHints(GetSize());
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxSize wxStaticText::DoGetBestSize() const
|
wxSize wxStaticText::DoGetBestSize() const
|
||||||
{
|
{
|
||||||
|
@@ -287,6 +287,8 @@ void wxToggleButton::SetLabel(const wxString& label)
|
|||||||
wxControl::SetLabel(label);
|
wxControl::SetLabel(label);
|
||||||
|
|
||||||
gtk_label_set(GTK_LABEL(BUTTON_CHILD(m_widget)), wxGTK_CONV( GetLabel() ) );
|
gtk_label_set(GTK_LABEL(BUTTON_CHILD(m_widget)), wxGTK_CONV( GetLabel() ) );
|
||||||
|
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxToggleButton::Enable(bool enable /*=TRUE*/)
|
bool wxToggleButton::Enable(bool enable /*=TRUE*/)
|
||||||
|
@@ -4043,7 +4043,7 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( m_hasFgCol )
|
if ( m_foregroundColour.Ok() )
|
||||||
{
|
{
|
||||||
GdkColor *fg = m_foregroundColour.GetColor();
|
GdkColor *fg = m_foregroundColour.GetColor();
|
||||||
|
|
||||||
@@ -4057,7 +4057,7 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
|
|||||||
style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_FG;
|
style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_FG;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( m_hasBgCol )
|
if ( m_backgroundColour.Ok() )
|
||||||
{
|
{
|
||||||
GdkColor *bg = m_backgroundColour.GetColor();
|
GdkColor *bg = m_backgroundColour.GetColor();
|
||||||
|
|
||||||
|
@@ -184,6 +184,7 @@ void wxBitmapButton::SetLabel( const wxString &label )
|
|||||||
wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
|
wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
|
||||||
|
|
||||||
wxControl::SetLabel( label );
|
wxControl::SetLabel( label );
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxString wxBitmapButton::GetLabel() const
|
wxString wxBitmapButton::GetLabel() const
|
||||||
|
@@ -175,6 +175,8 @@ void wxButton::SetLabel( const wxString &label )
|
|||||||
#else
|
#else
|
||||||
gtk_label_set( GTK_LABEL( BUTTON_CHILD(m_widget) ), wxGTK_CONV( GetLabel() ) );
|
gtk_label_set( GTK_LABEL( BUTTON_CHILD(m_widget) ), wxGTK_CONV( GetLabel() ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxButton::Enable( bool enable )
|
bool wxButton::Enable( bool enable )
|
||||||
|
@@ -158,6 +158,8 @@ void wxCheckBox::SetLabel( const wxString& label )
|
|||||||
#else
|
#else
|
||||||
gtk_label_set( GTK_LABEL(m_widgetLabel), wxGTK_CONV( GetLabel() ) );
|
gtk_label_set( GTK_LABEL(m_widgetLabel), wxGTK_CONV( GetLabel() ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxCheckBox::Enable( bool enable )
|
bool wxCheckBox::Enable( bool enable )
|
||||||
|
@@ -33,6 +33,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxControl, wxWindow)
|
|||||||
wxControl::wxControl()
|
wxControl::wxControl()
|
||||||
{
|
{
|
||||||
m_needParent = TRUE;
|
m_needParent = TRUE;
|
||||||
|
m_createComplete = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxControl::Create( wxWindow *parent,
|
bool wxControl::Create( wxWindow *parent,
|
||||||
@@ -43,6 +44,7 @@ bool wxControl::Create( wxWindow *parent,
|
|||||||
const wxValidator& validator,
|
const wxValidator& validator,
|
||||||
const wxString &name )
|
const wxString &name )
|
||||||
{
|
{
|
||||||
|
m_createComplete = false;
|
||||||
bool ret = wxWindow::Create(parent, id, pos, size, style, name);
|
bool ret = wxWindow::Create(parent, id, pos, size, style, name);
|
||||||
|
|
||||||
#if wxUSE_VALIDATORS
|
#if wxUSE_VALIDATORS
|
||||||
@@ -68,6 +70,14 @@ void wxControl::SetLabel( const wxString &label )
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void wxControl::PostSetLabel()
|
||||||
|
{
|
||||||
|
// make sure the widget has been created, and that PostCreate has already
|
||||||
|
// been called
|
||||||
|
if (m_widget && m_createComplete && GetAdjustMinSizeFlag())
|
||||||
|
SetBestSize(wxDefaultSize);
|
||||||
|
}
|
||||||
|
|
||||||
wxString wxControl::GetLabel() const
|
wxString wxControl::GetLabel() const
|
||||||
{
|
{
|
||||||
return m_label;
|
return m_label;
|
||||||
@@ -103,6 +113,7 @@ void wxControl::PostCreation(const wxSize& size)
|
|||||||
InheritAttributes();
|
InheritAttributes();
|
||||||
ApplyWidgetStyle();
|
ApplyWidgetStyle();
|
||||||
SetInitialBestSize(size);
|
SetInitialBestSize(size);
|
||||||
|
m_createComplete = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@@ -540,6 +540,8 @@ void wxRadioBox::SetLabel( const wxString& label )
|
|||||||
wxControl::SetLabel( label );
|
wxControl::SetLabel( label );
|
||||||
|
|
||||||
gtk_frame_set_label( GTK_FRAME(m_widget), wxGTK_CONV( wxControl::GetLabel() ) );
|
gtk_frame_set_label( GTK_FRAME(m_widget), wxGTK_CONV( wxControl::GetLabel() ) );
|
||||||
|
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxRadioBox::SetString( int item, const wxString& label )
|
void wxRadioBox::SetString( int item, const wxString& label )
|
||||||
|
@@ -145,6 +145,8 @@ void wxRadioButton::SetLabel( const wxString& label )
|
|||||||
#else
|
#else
|
||||||
gtk_label_set( g_label, wxGTK_CONV( GetLabel() ) );
|
gtk_label_set( g_label, wxGTK_CONV( GetLabel() ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxRadioButton::SetValue( bool val )
|
void wxRadioButton::SetValue( bool val )
|
||||||
|
@@ -89,6 +89,7 @@ void wxStaticBox::SetLabel( const wxString &label )
|
|||||||
|
|
||||||
gtk_frame_set_label( GTK_FRAME( m_widget ),
|
gtk_frame_set_label( GTK_FRAME( m_widget ),
|
||||||
m_label.empty() ? (char *)NULL : (const char*) wxGTK_CONV( m_label ) );
|
m_label.empty() ? (char *)NULL : (const char*) wxGTK_CONV( m_label ) );
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
// static
|
// static
|
||||||
|
@@ -147,26 +147,9 @@ void wxStaticText::SetLabel( const wxString &label )
|
|||||||
gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
|
gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// adjust the label size to the new label unless disabled
|
PostSetLabel();
|
||||||
if (!HasFlag(wxST_NO_AUTORESIZE))
|
|
||||||
{
|
|
||||||
SetSize( GetBestSize() );
|
|
||||||
SetSizeHints(GetSize());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxStaticText::SetFont( const wxFont &font )
|
|
||||||
{
|
|
||||||
bool ret = wxControl::SetFont(font);
|
|
||||||
|
|
||||||
// adjust the label size to the new label unless disabled
|
|
||||||
if (!HasFlag(wxST_NO_AUTORESIZE))
|
|
||||||
{
|
|
||||||
SetSize( GetBestSize() );
|
|
||||||
SetSizeHints(GetSize());
|
|
||||||
}
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
wxSize wxStaticText::DoGetBestSize() const
|
wxSize wxStaticText::DoGetBestSize() const
|
||||||
{
|
{
|
||||||
|
@@ -287,6 +287,8 @@ void wxToggleButton::SetLabel(const wxString& label)
|
|||||||
wxControl::SetLabel(label);
|
wxControl::SetLabel(label);
|
||||||
|
|
||||||
gtk_label_set(GTK_LABEL(BUTTON_CHILD(m_widget)), wxGTK_CONV( GetLabel() ) );
|
gtk_label_set(GTK_LABEL(BUTTON_CHILD(m_widget)), wxGTK_CONV( GetLabel() ) );
|
||||||
|
|
||||||
|
PostSetLabel();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxToggleButton::Enable(bool enable /*=TRUE*/)
|
bool wxToggleButton::Enable(bool enable /*=TRUE*/)
|
||||||
|
@@ -4043,7 +4043,7 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( m_hasFgCol )
|
if ( m_foregroundColour.Ok() )
|
||||||
{
|
{
|
||||||
GdkColor *fg = m_foregroundColour.GetColor();
|
GdkColor *fg = m_foregroundColour.GetColor();
|
||||||
|
|
||||||
@@ -4057,7 +4057,7 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
|
|||||||
style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_FG;
|
style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_FG;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( m_hasBgCol )
|
if ( m_backgroundColour.Ok() )
|
||||||
{
|
{
|
||||||
GdkColor *bg = m_backgroundColour.GetColor();
|
GdkColor *bg = m_backgroundColour.GetColor();
|
||||||
|
|
||||||
|
@@ -92,27 +92,9 @@ void wxStaticText::SetLabel(const wxString& st )
|
|||||||
SetControlData( *m_peer, kControlEntireControl , kControlStaticTextCFStringTag, sizeof( CFStringRef ),
|
SetControlData( *m_peer, kControlEntireControl , kControlStaticTextCFStringTag, sizeof( CFStringRef ),
|
||||||
&ref );
|
&ref );
|
||||||
|
|
||||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
if (GetAdjustMinSizeFlag())
|
||||||
{
|
SetBestSize(wxDefaultSize);
|
||||||
SetSize( GetBestSize() ) ;
|
|
||||||
SetSizeHints(GetSize());
|
|
||||||
}
|
|
||||||
|
|
||||||
Update() ;
|
Update() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxStaticText::SetFont(const wxFont& font)
|
|
||||||
{
|
|
||||||
bool ret = wxControl::SetFont(font);
|
|
||||||
|
|
||||||
if ( ret )
|
|
||||||
{
|
|
||||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
|
||||||
{
|
|
||||||
SetSize( GetBestSize() );
|
|
||||||
SetSizeHints(GetSize());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
@@ -232,31 +232,11 @@ void wxStaticText::SetLabel(const wxString& st )
|
|||||||
{
|
{
|
||||||
SetTitle( st ) ;
|
SetTitle( st ) ;
|
||||||
m_label = st ;
|
m_label = st ;
|
||||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
|
||||||
{
|
if (GetAdjustMinSizeFlag())
|
||||||
// temporary fix until layout measurement and drawing are in synch again
|
SetBestSize(wxDefaultSize);
|
||||||
Refresh() ;
|
|
||||||
SetSize( GetBestSize() ) ;
|
|
||||||
}
|
|
||||||
Refresh() ;
|
Refresh() ;
|
||||||
Update() ;
|
Update() ;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool wxStaticText::SetFont(const wxFont& font)
|
|
||||||
{
|
|
||||||
bool ret = wxControl::SetFont(font);
|
|
||||||
|
|
||||||
if ( ret )
|
|
||||||
{
|
|
||||||
// adjust the size of the window to fit to the label unless autoresizing is
|
|
||||||
// disabled
|
|
||||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
|
||||||
{
|
|
||||||
// temporary fix until layout measurement and drawing are in synch again
|
|
||||||
Refresh() ;
|
|
||||||
SetSize( GetBestSize() );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
@@ -165,10 +165,6 @@ bool wxCheckBox::Create(wxWindow *parent,
|
|||||||
return MSWCreateControl(wxT("BUTTON"), msStyle, pos, size, label, 0);
|
return MSWCreateControl(wxT("BUTTON"), msStyle, pos, size, label, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxCheckBox::SetLabel(const wxString& label)
|
|
||||||
{
|
|
||||||
SetWindowText(GetHwnd(), label);
|
|
||||||
}
|
|
||||||
|
|
||||||
wxSize wxCheckBox::DoGetBestSize() const
|
wxSize wxCheckBox::DoGetBestSize() const
|
||||||
{
|
{
|
||||||
|
@@ -207,33 +207,5 @@ void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags)
|
|||||||
Refresh();
|
Refresh();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxStaticText::SetLabel(const wxString& label)
|
|
||||||
{
|
|
||||||
wxStaticTextBase::SetLabel(label);
|
|
||||||
|
|
||||||
// adjust the size of the window to fit to the label unless autoresizing is
|
|
||||||
// disabled
|
|
||||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
|
||||||
{
|
|
||||||
DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
|
|
||||||
SetSizeHints(GetSize());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool wxStaticText::SetFont(const wxFont& font)
|
|
||||||
{
|
|
||||||
bool ret = wxControl::SetFont(font);
|
|
||||||
|
|
||||||
// adjust the size of the window to fit to the label unless autoresizing is
|
|
||||||
// disabled
|
|
||||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
|
||||||
{
|
|
||||||
DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
|
|
||||||
SetSizeHints(GetSize());
|
|
||||||
}
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // wxUSE_STATTEXT
|
#endif // wxUSE_STATTEXT
|
||||||
|
@@ -110,11 +110,6 @@ WXDWORD wxToggleButton::MSWGetStyle(long style, WXDWORD *exstyle) const
|
|||||||
return msStyle;
|
return msStyle;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxToggleButton::SetLabel(const wxString& label)
|
|
||||||
{
|
|
||||||
SetWindowText(GetHwnd(), label);
|
|
||||||
}
|
|
||||||
|
|
||||||
wxSize wxToggleButton::DoGetBestSize() const
|
wxSize wxToggleButton::DoGetBestSize() const
|
||||||
{
|
{
|
||||||
wxString label = wxGetWindowText(GetHWND());
|
wxString label = wxGetWindowText(GetHWND());
|
||||||
|
@@ -78,6 +78,20 @@ __init__ as a plain old wx.Control is not very useful.", "");
|
|||||||
"Sets the item's text.", "");
|
"Sets the item's text.", "");
|
||||||
|
|
||||||
|
|
||||||
|
DocDeclStr(
|
||||||
|
bool , GetAdjustMinSizeFlag(),
|
||||||
|
"Returns whether the minsize should be adjusted for this control when
|
||||||
|
`SetLabel` or `SetFont` are called.", "");
|
||||||
|
|
||||||
|
DocDeclStr(
|
||||||
|
void , SetAdjustMinSizeFlag(bool adjust),
|
||||||
|
"By default controls will readjust their size and minsize when
|
||||||
|
`SetLabel` or `SetFont` are called. This flag will allow you to
|
||||||
|
control this behavior.", "
|
||||||
|
|
||||||
|
:see: `GetAdjustMinSizeFlag`
|
||||||
|
");
|
||||||
|
|
||||||
static wxVisualAttributes
|
static wxVisualAttributes
|
||||||
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
||||||
};
|
};
|
||||||
|
@@ -415,6 +415,11 @@ default values.", "",
|
|||||||
"Moves the window to the given position.", "",
|
"Moves the window to the given position.", "",
|
||||||
MoveXY);
|
MoveXY);
|
||||||
|
|
||||||
|
DocDeclStr(
|
||||||
|
void , SetBestFittingSize(const wxSize& size=wxDefaultSize),
|
||||||
|
"A 'Smart' SetSize that will fill in default size components with the
|
||||||
|
window's *best size* values. Also set's the minsize for use with sizers.", "");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
DocDeclStr(
|
DocDeclStr(
|
||||||
@@ -1267,16 +1272,17 @@ this.", "");
|
|||||||
"Sets the background colour of the window. Returns True if the colour
|
"Sets the background colour of the window. Returns True if the colour
|
||||||
was changed. The background colour is usually painted by the default
|
was changed. The background colour is usually painted by the default
|
||||||
EVT_ERASE_BACKGROUND event handler function under Windows and
|
EVT_ERASE_BACKGROUND event handler function under Windows and
|
||||||
automatically under GTK.
|
automatically under GTK. Using `wx.NullColour` will reset the window
|
||||||
|
to the default background colour.
|
||||||
|
|
||||||
Note that setting the background colour may not cause an immediate
|
Note that setting the background colour may not cause an immediate
|
||||||
refresh, so you may wish to call ClearBackground or Refresh after
|
refresh, so you may wish to call `ClearBackground` or `Refresh` after
|
||||||
calling this function.
|
calling this function.
|
||||||
|
|
||||||
Use this function with care under GTK+ as the new appearance of the
|
Using this function will disable attempts to use themes for this
|
||||||
window might not look equally well when used with themes, i.e GTK+'s
|
window, if the system supports them. Use with care since usually the
|
||||||
ability to change its look as the user wishes with run-time loadable
|
themes represent the appearance chosen by the user to be used for all
|
||||||
modules.", "");
|
applications on the system.", "");
|
||||||
|
|
||||||
DocDeclStr(
|
DocDeclStr(
|
||||||
void , SetDefaultBackgroundColour(const wxColour& colour),
|
void , SetDefaultBackgroundColour(const wxColour& colour),
|
||||||
|
Reference in New Issue
Block a user