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}.
|
||||
|
||||
|
||||
\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}
|
||||
|
||||
\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.
|
||||
|
||||
|
||||
\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}
|
||||
|
||||
\func{void}{SetLabel}{\param{const wxString\& }{label}}
|
||||
|
@@ -2390,6 +2390,20 @@ applications on the system.
|
||||
\helpref{wxWindow::Refresh}{wxwindowrefresh},\rtfsp
|
||||
\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}
|
||||
|
||||
|
@@ -32,10 +32,11 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxControlNameStr;
|
||||
// wxControl is the base class for all controls
|
||||
// ----------------------------------------------------------------------------
|
||||
|
||||
|
||||
class WXDLLEXPORT wxControlBase : public wxWindow
|
||||
{
|
||||
public:
|
||||
wxControlBase() { }
|
||||
wxControlBase() { Init(); }
|
||||
|
||||
virtual ~wxControlBase();
|
||||
|
||||
@@ -63,7 +64,16 @@ public:
|
||||
// if the button was clicked)
|
||||
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:
|
||||
void Init();
|
||||
|
||||
// creates the control (calls wxWindowBase::CreateBase inside) and adds it
|
||||
// to the list of parents children
|
||||
bool CreateControl(wxWindowBase *parent,
|
||||
@@ -88,6 +98,9 @@ protected:
|
||||
SetBestSize(size);
|
||||
}
|
||||
|
||||
// should minsize and size be adjusted when font or label change?
|
||||
bool m_adjustMinSize;
|
||||
|
||||
DECLARE_NO_COPY_CLASS(wxControlBase)
|
||||
};
|
||||
|
||||
|
@@ -63,6 +63,7 @@ protected:
|
||||
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
void PostCreation(const wxSize& size);
|
||||
void PostSetLabel();
|
||||
|
||||
#ifdef __WXGTK20__
|
||||
wxString PrepareLabelMnemonics( const wxString &label ) const;
|
||||
@@ -93,6 +94,7 @@ protected:
|
||||
|
||||
wxString m_label;
|
||||
char m_chAccel; // enabled to avoid breaking binary compatibility later on
|
||||
bool m_createComplete;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxControl)
|
||||
|
@@ -57,7 +57,8 @@ public:
|
||||
wxString GetLabel() const;
|
||||
void SetLabel( const wxString &label );
|
||||
|
||||
bool SetFont( const wxFont &font );
|
||||
bool GetAdjustMinSizeFlag() const { return !HasFlag(wxST_NO_AUTORESIZE); }
|
||||
|
||||
bool SetForegroundColour( const wxColour& colour );
|
||||
|
||||
static wxVisualAttributes
|
||||
|
@@ -63,6 +63,7 @@ protected:
|
||||
|
||||
virtual wxSize DoGetBestSize() const;
|
||||
void PostCreation(const wxSize& size);
|
||||
void PostSetLabel();
|
||||
|
||||
#ifdef __WXGTK20__
|
||||
wxString PrepareLabelMnemonics( const wxString &label ) const;
|
||||
@@ -93,6 +94,7 @@ protected:
|
||||
|
||||
wxString m_label;
|
||||
char m_chAccel; // enabled to avoid breaking binary compatibility later on
|
||||
bool m_createComplete;
|
||||
|
||||
private:
|
||||
DECLARE_DYNAMIC_CLASS(wxControl)
|
||||
|
@@ -57,7 +57,8 @@ public:
|
||||
wxString GetLabel() const;
|
||||
void SetLabel( const wxString &label );
|
||||
|
||||
bool SetFont( const wxFont &font );
|
||||
bool GetAdjustMinSizeFlag() const { return !HasFlag(wxST_NO_AUTORESIZE); }
|
||||
|
||||
bool SetForegroundColour( const wxColour& colour );
|
||||
|
||||
static wxVisualAttributes
|
||||
|
@@ -40,7 +40,6 @@ public:
|
||||
|
||||
// accessors
|
||||
void SetLabel( const wxString &str ) ;
|
||||
bool SetFont( const wxFont &font );
|
||||
|
||||
protected :
|
||||
|
||||
|
@@ -41,7 +41,6 @@ class WXDLLEXPORT wxStaticText: public wxStaticTextBase
|
||||
|
||||
// accessors
|
||||
void SetLabel( const wxString &str ) ;
|
||||
bool SetFont( const wxFont &font );
|
||||
|
||||
// operations
|
||||
virtual void Command(wxCommandEvent& WXUNUSED(event)) {};
|
||||
|
@@ -45,8 +45,6 @@ public:
|
||||
virtual void SetValue(bool value);
|
||||
virtual bool GetValue() const;
|
||||
|
||||
virtual void SetLabel(const wxString& label);
|
||||
|
||||
virtual bool MSWCommand(WXUINT param, WXWORD id);
|
||||
virtual void Command(wxCommandEvent& event);
|
||||
|
||||
|
@@ -40,10 +40,6 @@ public:
|
||||
long style = 0,
|
||||
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:
|
||||
// implement/override some base class virtuals
|
||||
virtual wxBorder GetDefaultBorder() const;
|
||||
|
@@ -45,7 +45,6 @@ public:
|
||||
virtual bool GetValue() const ;
|
||||
|
||||
virtual bool MSWCommand(WXUINT param, WXWORD id);
|
||||
virtual void SetLabel(const wxString& label);
|
||||
virtual void Command(wxCommandEvent& event);
|
||||
|
||||
protected:
|
||||
|
@@ -17,6 +17,8 @@ public:
|
||||
virtual void ApplyParentThemeBackground(const wxColour& bg)
|
||||
{ SetBackgroundColour(bg); }
|
||||
|
||||
bool GetAdjustMinSizeFlag() const { return !HasFlag(wxST_NO_AUTORESIZE); }
|
||||
|
||||
private:
|
||||
DECLARE_NO_COPY_CLASS(wxStaticTextBase)
|
||||
};
|
||||
|
@@ -230,6 +230,9 @@ public:
|
||||
void Move(const wxPoint& pt, int flags = wxSIZE_USE_EXISTING)
|
||||
{ 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
|
||||
virtual void Raise() = 0;
|
||||
virtual void Lower() = 0;
|
||||
@@ -1136,15 +1139,10 @@ protected:
|
||||
static int WidthDefault(int w) { return w == -1 ? 20 : w; }
|
||||
static int HeightDefault(int h) { return h == -1 ? 20 : h; }
|
||||
|
||||
// set the best size for the control if the default size was given:
|
||||
// replaces the fields of size == -1 with the best values for them and
|
||||
// calls SetSize() if needed
|
||||
//
|
||||
// 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);
|
||||
// keep the old name for compatibility, at least until all the internal
|
||||
// usages of it are changed to SetBestFittingSize
|
||||
void SetBestSize(const wxSize& size) { SetBestFittingSize(size); }
|
||||
|
||||
|
||||
// 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)
|
||||
|
@@ -68,6 +68,13 @@ bool wxControlBase::Create(wxWindow *parent,
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
void wxControlBase::Init()
|
||||
{
|
||||
m_adjustMinSize = true;
|
||||
}
|
||||
|
||||
|
||||
bool wxControlBase::CreateControl(wxWindowBase *parent,
|
||||
wxWindowID id,
|
||||
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
|
||||
// ----------------------------------------------------------------------------
|
||||
|
@@ -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.
|
||||
wxSize sizeBest;
|
||||
|
@@ -184,6 +184,7 @@ void wxBitmapButton::SetLabel( const wxString &label )
|
||||
wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
|
||||
|
||||
wxControl::SetLabel( label );
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
wxString wxBitmapButton::GetLabel() const
|
||||
|
@@ -175,6 +175,8 @@ void wxButton::SetLabel( const wxString &label )
|
||||
#else
|
||||
gtk_label_set( GTK_LABEL( BUTTON_CHILD(m_widget) ), wxGTK_CONV( GetLabel() ) );
|
||||
#endif
|
||||
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
bool wxButton::Enable( bool enable )
|
||||
|
@@ -158,6 +158,8 @@ void wxCheckBox::SetLabel( const wxString& label )
|
||||
#else
|
||||
gtk_label_set( GTK_LABEL(m_widgetLabel), wxGTK_CONV( GetLabel() ) );
|
||||
#endif
|
||||
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
bool wxCheckBox::Enable( bool enable )
|
||||
|
@@ -33,6 +33,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxControl, wxWindow)
|
||||
wxControl::wxControl()
|
||||
{
|
||||
m_needParent = TRUE;
|
||||
m_createComplete = false;
|
||||
}
|
||||
|
||||
bool wxControl::Create( wxWindow *parent,
|
||||
@@ -43,6 +44,7 @@ bool wxControl::Create( wxWindow *parent,
|
||||
const wxValidator& validator,
|
||||
const wxString &name )
|
||||
{
|
||||
m_createComplete = false;
|
||||
bool ret = wxWindow::Create(parent, id, pos, size, style, name);
|
||||
|
||||
#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
|
||||
{
|
||||
return m_label;
|
||||
@@ -103,6 +113,7 @@ void wxControl::PostCreation(const wxSize& size)
|
||||
InheritAttributes();
|
||||
ApplyWidgetStyle();
|
||||
SetInitialBestSize(size);
|
||||
m_createComplete = true;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -540,6 +540,8 @@ void wxRadioBox::SetLabel( const wxString& label )
|
||||
wxControl::SetLabel( label );
|
||||
|
||||
gtk_frame_set_label( GTK_FRAME(m_widget), wxGTK_CONV( wxControl::GetLabel() ) );
|
||||
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
void wxRadioBox::SetString( int item, const wxString& label )
|
||||
|
@@ -145,6 +145,8 @@ void wxRadioButton::SetLabel( const wxString& label )
|
||||
#else
|
||||
gtk_label_set( g_label, wxGTK_CONV( GetLabel() ) );
|
||||
#endif
|
||||
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
void wxRadioButton::SetValue( bool val )
|
||||
|
@@ -89,6 +89,7 @@ void wxStaticBox::SetLabel( const wxString &label )
|
||||
|
||||
gtk_frame_set_label( GTK_FRAME( m_widget ),
|
||||
m_label.empty() ? (char *)NULL : (const char*) wxGTK_CONV( m_label ) );
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
// static
|
||||
|
@@ -147,26 +147,9 @@ void wxStaticText::SetLabel( const wxString &label )
|
||||
gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
|
||||
#endif
|
||||
|
||||
// adjust the label size to the new label unless disabled
|
||||
if (!HasFlag(wxST_NO_AUTORESIZE))
|
||||
{
|
||||
SetSize( GetBestSize() );
|
||||
SetSizeHints(GetSize());
|
||||
}
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
|
@@ -287,6 +287,8 @@ void wxToggleButton::SetLabel(const wxString& label)
|
||||
wxControl::SetLabel(label);
|
||||
|
||||
gtk_label_set(GTK_LABEL(BUTTON_CHILD(m_widget)), wxGTK_CONV( GetLabel() ) );
|
||||
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
bool wxToggleButton::Enable(bool enable /*=TRUE*/)
|
||||
|
@@ -4043,7 +4043,7 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
|
||||
#endif
|
||||
}
|
||||
|
||||
if ( m_hasFgCol )
|
||||
if ( m_foregroundColour.Ok() )
|
||||
{
|
||||
GdkColor *fg = m_foregroundColour.GetColor();
|
||||
|
||||
@@ -4057,7 +4057,7 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
|
||||
style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_FG;
|
||||
}
|
||||
|
||||
if ( m_hasBgCol )
|
||||
if ( m_backgroundColour.Ok() )
|
||||
{
|
||||
GdkColor *bg = m_backgroundColour.GetColor();
|
||||
|
||||
|
@@ -184,6 +184,7 @@ void wxBitmapButton::SetLabel( const wxString &label )
|
||||
wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
|
||||
|
||||
wxControl::SetLabel( label );
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
wxString wxBitmapButton::GetLabel() const
|
||||
|
@@ -175,6 +175,8 @@ void wxButton::SetLabel( const wxString &label )
|
||||
#else
|
||||
gtk_label_set( GTK_LABEL( BUTTON_CHILD(m_widget) ), wxGTK_CONV( GetLabel() ) );
|
||||
#endif
|
||||
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
bool wxButton::Enable( bool enable )
|
||||
|
@@ -158,6 +158,8 @@ void wxCheckBox::SetLabel( const wxString& label )
|
||||
#else
|
||||
gtk_label_set( GTK_LABEL(m_widgetLabel), wxGTK_CONV( GetLabel() ) );
|
||||
#endif
|
||||
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
bool wxCheckBox::Enable( bool enable )
|
||||
|
@@ -33,6 +33,7 @@ IMPLEMENT_DYNAMIC_CLASS(wxControl, wxWindow)
|
||||
wxControl::wxControl()
|
||||
{
|
||||
m_needParent = TRUE;
|
||||
m_createComplete = false;
|
||||
}
|
||||
|
||||
bool wxControl::Create( wxWindow *parent,
|
||||
@@ -43,6 +44,7 @@ bool wxControl::Create( wxWindow *parent,
|
||||
const wxValidator& validator,
|
||||
const wxString &name )
|
||||
{
|
||||
m_createComplete = false;
|
||||
bool ret = wxWindow::Create(parent, id, pos, size, style, name);
|
||||
|
||||
#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
|
||||
{
|
||||
return m_label;
|
||||
@@ -103,6 +113,7 @@ void wxControl::PostCreation(const wxSize& size)
|
||||
InheritAttributes();
|
||||
ApplyWidgetStyle();
|
||||
SetInitialBestSize(size);
|
||||
m_createComplete = true;
|
||||
}
|
||||
|
||||
|
||||
|
@@ -540,6 +540,8 @@ void wxRadioBox::SetLabel( const wxString& label )
|
||||
wxControl::SetLabel( label );
|
||||
|
||||
gtk_frame_set_label( GTK_FRAME(m_widget), wxGTK_CONV( wxControl::GetLabel() ) );
|
||||
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
void wxRadioBox::SetString( int item, const wxString& label )
|
||||
|
@@ -145,6 +145,8 @@ void wxRadioButton::SetLabel( const wxString& label )
|
||||
#else
|
||||
gtk_label_set( g_label, wxGTK_CONV( GetLabel() ) );
|
||||
#endif
|
||||
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
void wxRadioButton::SetValue( bool val )
|
||||
|
@@ -89,6 +89,7 @@ void wxStaticBox::SetLabel( const wxString &label )
|
||||
|
||||
gtk_frame_set_label( GTK_FRAME( m_widget ),
|
||||
m_label.empty() ? (char *)NULL : (const char*) wxGTK_CONV( m_label ) );
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
// static
|
||||
|
@@ -147,26 +147,9 @@ void wxStaticText::SetLabel( const wxString &label )
|
||||
gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
|
||||
#endif
|
||||
|
||||
// adjust the label size to the new label unless disabled
|
||||
if (!HasFlag(wxST_NO_AUTORESIZE))
|
||||
{
|
||||
SetSize( GetBestSize() );
|
||||
SetSizeHints(GetSize());
|
||||
}
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
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
|
||||
{
|
||||
|
@@ -287,6 +287,8 @@ void wxToggleButton::SetLabel(const wxString& label)
|
||||
wxControl::SetLabel(label);
|
||||
|
||||
gtk_label_set(GTK_LABEL(BUTTON_CHILD(m_widget)), wxGTK_CONV( GetLabel() ) );
|
||||
|
||||
PostSetLabel();
|
||||
}
|
||||
|
||||
bool wxToggleButton::Enable(bool enable /*=TRUE*/)
|
||||
|
@@ -4043,7 +4043,7 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
|
||||
#endif
|
||||
}
|
||||
|
||||
if ( m_hasFgCol )
|
||||
if ( m_foregroundColour.Ok() )
|
||||
{
|
||||
GdkColor *fg = m_foregroundColour.GetColor();
|
||||
|
||||
@@ -4057,7 +4057,7 @@ GtkRcStyle *wxWindowGTK::CreateWidgetStyle(bool forceStyle)
|
||||
style->color_flags[GTK_STATE_ACTIVE] = GTK_RC_FG;
|
||||
}
|
||||
|
||||
if ( m_hasBgCol )
|
||||
if ( m_backgroundColour.Ok() )
|
||||
{
|
||||
GdkColor *bg = m_backgroundColour.GetColor();
|
||||
|
||||
|
@@ -92,27 +92,9 @@ void wxStaticText::SetLabel(const wxString& st )
|
||||
SetControlData( *m_peer, kControlEntireControl , kControlStaticTextCFStringTag, sizeof( CFStringRef ),
|
||||
&ref );
|
||||
|
||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
||||
{
|
||||
SetSize( GetBestSize() ) ;
|
||||
SetSizeHints(GetSize());
|
||||
}
|
||||
if (GetAdjustMinSizeFlag())
|
||||
SetBestSize(wxDefaultSize);
|
||||
|
||||
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 ) ;
|
||||
m_label = st ;
|
||||
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
|
||||
{
|
||||
// temporary fix until layout measurement and drawing are in synch again
|
||||
Refresh() ;
|
||||
SetSize( GetBestSize() ) ;
|
||||
}
|
||||
|
||||
if (GetAdjustMinSizeFlag())
|
||||
SetBestSize(wxDefaultSize);
|
||||
|
||||
Refresh() ;
|
||||
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);
|
||||
}
|
||||
|
||||
void wxCheckBox::SetLabel(const wxString& label)
|
||||
{
|
||||
SetWindowText(GetHwnd(), label);
|
||||
}
|
||||
|
||||
wxSize wxCheckBox::DoGetBestSize() const
|
||||
{
|
||||
|
@@ -207,33 +207,5 @@ void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags)
|
||||
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
|
||||
|
@@ -110,11 +110,6 @@ WXDWORD wxToggleButton::MSWGetStyle(long style, WXDWORD *exstyle) const
|
||||
return msStyle;
|
||||
}
|
||||
|
||||
void wxToggleButton::SetLabel(const wxString& label)
|
||||
{
|
||||
SetWindowText(GetHwnd(), label);
|
||||
}
|
||||
|
||||
wxSize wxToggleButton::DoGetBestSize() const
|
||||
{
|
||||
wxString label = wxGetWindowText(GetHWND());
|
||||
|
@@ -78,6 +78,20 @@ __init__ as a plain old wx.Control is not very useful.", "");
|
||||
"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
|
||||
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
|
||||
};
|
||||
|
@@ -415,6 +415,11 @@ default values.", "",
|
||||
"Moves the window to the given position.", "",
|
||||
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(
|
||||
@@ -1267,16 +1272,17 @@ this.", "");
|
||||
"Sets the background colour of the window. Returns True if the colour
|
||||
was changed. The background colour is usually painted by the default
|
||||
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
|
||||
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.
|
||||
|
||||
Use this function with care under GTK+ as the new appearance of the
|
||||
window might not look equally well when used with themes, i.e GTK+'s
|
||||
ability to change its look as the user wishes with run-time loadable
|
||||
modules.", "");
|
||||
Using this function will disable attempts to use themes for this
|
||||
window, if the system supports them. Use with care since usually the
|
||||
themes represent the appearance chosen by the user to be used for all
|
||||
applications on the system.", "");
|
||||
|
||||
DocDeclStr(
|
||||
void , SetDefaultBackgroundColour(const wxColour& colour),
|
||||
|
Reference in New Issue
Block a user