reverted m_adjustMinSize change prepatory for a new approach to fix

the problem


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@27930 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn 2004-06-21 22:58:13 +00:00
parent 478ba84485
commit c0e6c05138
33 changed files with 119 additions and 125 deletions

View File

@ -29,14 +29,6 @@ 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}
@ -44,14 +36,6 @@ SetLabel or SetFont are called.
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}}

View File

@ -32,11 +32,10 @@ WXDLLEXPORT_DATA(extern const wxChar*) wxControlNameStr;
// wxControl is the base class for all controls
// ----------------------------------------------------------------------------
class WXDLLEXPORT wxControlBase : public wxWindow
{
public:
wxControlBase() { Init(); }
wxControlBase() { }
virtual ~wxControlBase();
@ -64,16 +63,7 @@ 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,
@ -98,9 +88,6 @@ protected:
SetBestSize(size);
}
// should minsize and size be adjusted when font or label change?
bool m_adjustMinSize;
DECLARE_NO_COPY_CLASS(wxControlBase)
};

View File

@ -58,7 +58,6 @@ public:
protected:
virtual wxSize DoGetBestSize() const;
void PostCreation(const wxSize& size);
void PostSetLabel();
#ifdef __WXGTK20__
wxString PrepareLabelMnemonics( const wxString &label ) const;
@ -89,7 +88,6 @@ protected:
wxString m_label;
char m_chAccel; // enabled to avoid breaking binary compatibility later on
bool m_createComplete;
private:
DECLARE_DYNAMIC_CLASS(wxControl)

View File

@ -57,8 +57,7 @@ public:
wxString GetLabel() const;
void SetLabel( const wxString &label );
bool GetAdjustMinSizeFlag() const { return !HasFlag(wxST_NO_AUTORESIZE); }
bool SetFont( const wxFont &font );
bool SetForegroundColour( const wxColour& colour );
static wxVisualAttributes

View File

@ -58,7 +58,6 @@ public:
protected:
virtual wxSize DoGetBestSize() const;
void PostCreation(const wxSize& size);
void PostSetLabel();
#ifdef __WXGTK20__
wxString PrepareLabelMnemonics( const wxString &label ) const;
@ -89,7 +88,6 @@ protected:
wxString m_label;
char m_chAccel; // enabled to avoid breaking binary compatibility later on
bool m_createComplete;
private:
DECLARE_DYNAMIC_CLASS(wxControl)

View File

@ -57,8 +57,7 @@ public:
wxString GetLabel() const;
void SetLabel( const wxString &label );
bool GetAdjustMinSizeFlag() const { return !HasFlag(wxST_NO_AUTORESIZE); }
bool SetFont( const wxFont &font );
bool SetForegroundColour( const wxColour& colour );
static wxVisualAttributes

View File

@ -40,6 +40,7 @@ public:
// accessors
void SetLabel( const wxString &str ) ;
bool SetFont( const wxFont &font );
protected :

View File

@ -41,6 +41,7 @@ class WXDLLEXPORT wxStaticText: public wxStaticTextBase
// accessors
void SetLabel( const wxString &str ) ;
bool SetFont( const wxFont &font );
// operations
virtual void Command(wxCommandEvent& WXUNUSED(event)) {};

View File

@ -40,6 +40,10 @@ 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;

View File

@ -17,8 +17,6 @@ public:
virtual void ApplyParentThemeBackground(const wxColour& bg)
{ SetBackgroundColour(bg); }
bool GetAdjustMinSizeFlag() const { return !HasFlag(wxST_NO_AUTORESIZE); }
private:
DECLARE_NO_COPY_CLASS(wxStaticTextBase)
};

View File

@ -46,10 +46,6 @@ void wxBookCtrl::Init()
{
m_imageList = NULL;
m_ownsImageList = false;
// Unlike most controls, we don't want to adjust the min size
// when we set the font, since the page size is not related to
// the font size.
m_adjustMinSize = false;
}
bool

View File

@ -68,13 +68,6 @@ bool wxControlBase::Create(wxWindow *parent,
return ret;
}
void wxControlBase::Init()
{
m_adjustMinSize = true;
}
bool wxControlBase::CreateControl(wxWindowBase *parent,
wxWindowID id,
const wxPoint& pos,
@ -123,24 +116,6 @@ 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
// ----------------------------------------------------------------------------

View File

@ -184,7 +184,6 @@ void wxBitmapButton::SetLabel( const wxString &label )
wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
wxControl::SetLabel( label );
PostSetLabel();
}
wxString wxBitmapButton::GetLabel() const

View File

@ -175,8 +175,6 @@ 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 )

View File

@ -158,8 +158,6 @@ void wxCheckBox::SetLabel( const wxString& label )
#else
gtk_label_set( GTK_LABEL(m_widgetLabel), wxGTK_CONV( GetLabel() ) );
#endif
PostSetLabel();
}
bool wxCheckBox::Enable( bool enable )

View File

@ -33,7 +33,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxControl, wxWindow)
wxControl::wxControl()
{
m_needParent = TRUE;
m_createComplete = false;
}
bool wxControl::Create( wxWindow *parent,
@ -44,7 +43,6 @@ 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
@ -70,14 +68,6 @@ 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;
@ -113,7 +103,6 @@ void wxControl::PostCreation(const wxSize& size)
InheritAttributes();
ApplyWidgetStyle();
SetInitialBestSize(size);
m_createComplete = true;
}

View File

@ -540,8 +540,6 @@ 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 )

View File

@ -145,8 +145,6 @@ void wxRadioButton::SetLabel( const wxString& label )
#else
gtk_label_set( g_label, wxGTK_CONV( GetLabel() ) );
#endif
PostSetLabel();
}
void wxRadioButton::SetValue( bool val )

View File

@ -89,7 +89,6 @@ 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

View File

@ -146,10 +146,27 @@ void wxStaticText::SetLabel( const wxString &label )
#else
gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
#endif
PostSetLabel();
// adjust the label size to the new label unless disabled
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
{

View File

@ -287,8 +287,6 @@ 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*/)

View File

@ -184,7 +184,6 @@ void wxBitmapButton::SetLabel( const wxString &label )
wxCHECK_RET( m_widget != NULL, wxT("invalid button") );
wxControl::SetLabel( label );
PostSetLabel();
}
wxString wxBitmapButton::GetLabel() const

View File

@ -175,8 +175,6 @@ 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 )

View File

@ -158,8 +158,6 @@ void wxCheckBox::SetLabel( const wxString& label )
#else
gtk_label_set( GTK_LABEL(m_widgetLabel), wxGTK_CONV( GetLabel() ) );
#endif
PostSetLabel();
}
bool wxCheckBox::Enable( bool enable )

View File

@ -33,7 +33,6 @@ IMPLEMENT_DYNAMIC_CLASS(wxControl, wxWindow)
wxControl::wxControl()
{
m_needParent = TRUE;
m_createComplete = false;
}
bool wxControl::Create( wxWindow *parent,
@ -44,7 +43,6 @@ 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
@ -70,14 +68,6 @@ 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;
@ -113,7 +103,6 @@ void wxControl::PostCreation(const wxSize& size)
InheritAttributes();
ApplyWidgetStyle();
SetInitialBestSize(size);
m_createComplete = true;
}

View File

@ -540,8 +540,6 @@ 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 )

View File

@ -145,8 +145,6 @@ void wxRadioButton::SetLabel( const wxString& label )
#else
gtk_label_set( g_label, wxGTK_CONV( GetLabel() ) );
#endif
PostSetLabel();
}
void wxRadioButton::SetValue( bool val )

View File

@ -89,7 +89,6 @@ 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

View File

@ -146,10 +146,27 @@ void wxStaticText::SetLabel( const wxString &label )
#else
gtk_label_set( GTK_LABEL(m_widget), wxGTK_CONV( m_label ) );
#endif
PostSetLabel();
// adjust the label size to the new label unless disabled
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
{

View File

@ -287,8 +287,6 @@ 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*/)

View File

@ -92,9 +92,27 @@ void wxStaticText::SetLabel(const wxString& st )
SetControlData( *m_peer, kControlEntireControl , kControlStaticTextCFStringTag, sizeof( CFStringRef ),
&ref );
if (GetAdjustMinSizeFlag())
SetBestSize(wxDefaultSize);
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
{
SetSize( GetBestSize() ) ;
SetSizeHints(GetSize());
}
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;
}

View File

@ -232,11 +232,31 @@ void wxStaticText::SetLabel(const wxString& st )
{
SetTitle( st ) ;
m_label = st ;
if (GetAdjustMinSizeFlag())
SetBestSize(wxDefaultSize);
if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
{
// temporary fix until layout measurement and drawing are in synch again
Refresh() ;
SetSize( GetBestSize() ) ;
}
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;
}

View File

@ -207,5 +207,33 @@ 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