no real changes: just a small optimization on wxStaticText::DoSetLabel() to avoid altering m_labelOrig there (it's already modified by SetLabel(), no need to change it twice)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Francesco Montorsi
2010-03-28 22:23:38 +00:00
parent fa79415135
commit 7517dcb56e
3 changed files with 13 additions and 7 deletions

View File

@@ -170,7 +170,8 @@ protected:
wxEllipsizeMode mode, int maxWidth, wxEllipsizeMode mode, int maxWidth,
int replacementWidth, int marginWidth); int replacementWidth, int marginWidth);
// this field contains the label in wx format, i.e. with '&' mnemonics // this field contains the label in wx format, i.e. with '&' mnemonics,
// as it was passed to the last SetLabel() call
wxString m_labelOrig; wxString m_labelOrig;
wxDECLARE_NO_COPY_CLASS(wxControlBase); wxDECLARE_NO_COPY_CLASS(wxControlBase);

View File

@@ -99,13 +99,14 @@ protected: // functions required for wxST_ELLIPSIZE_* support
// These functions are platform-specific and must be overridden in ports // These functions are platform-specific and must be overridden in ports
// which do not natively support ellipsization and they must be implemented // which do not natively support ellipsization and they must be implemented
// in a way so that the m_label member of wxControl is not touched: // in a way so that the m_labelOrig member of wxControl is not touched:
// returns the real label currently displayed inside the control. // returns the real label currently displayed inside the control.
virtual wxString DoGetLabel() const { return wxEmptyString; } virtual wxString DoGetLabel() const { return wxEmptyString; }
// sets the real label currently displayed inside the control, // sets the real label currently displayed inside the control,
// _without_ invalidating the size. The text passed is always markup-free. // _without_ invalidating the size. The text passed is always markup-free
// but may contain the mnemonic characters.
virtual void DoSetLabel(const wxString& WXUNUSED(str)) { } virtual void DoSetLabel(const wxString& WXUNUSED(str)) { }
private: private:

View File

@@ -132,7 +132,7 @@ void wxStaticText::SetLabel( const wxString& str )
// adjust the label size to the new label unless disabled // adjust the label size to the new label unless disabled
if ( !HasFlag(wxST_NO_AUTORESIZE) && if ( !HasFlag(wxST_NO_AUTORESIZE) &&
!IsEllipsized() ) // if ellipsize is ON, then we don't want to get resized! !IsEllipsized() ) // if ellipsization is ON, then we don't want to get resized!
SetSize( GetBestSize() ); SetSize( GetBestSize() );
} }
@@ -175,8 +175,8 @@ bool wxStaticText::SetFont( const wxFont &font )
} }
void wxStaticText::DoSetSize(int x, int y, void wxStaticText::DoSetSize(int x, int y,
int width, int height, int width, int height,
int sizeFlags ) int sizeFlags )
{ {
wxStaticTextBase::DoSetSize(x, y, width, height, sizeFlags); wxStaticTextBase::DoSetSize(x, y, width, height, sizeFlags);
@@ -230,7 +230,11 @@ wxString wxStaticText::DoGetLabel() const
void wxStaticText::DoSetLabel(const wxString& str) void wxStaticText::DoSetLabel(const wxString& str)
{ {
GTKSetLabelForLabel(GTK_LABEL(m_widget), str); // this function looks like GTKSetLabelForLabel() but here we just want to modify
// the GTK control without altering any internal wxStaticText variable
const wxString labelGTK = GTKConvertMnemonics(str);
gtk_label_set_text_with_mnemonic(GTK_LABEL(m_widget), wxGTK_CONV(labelGTK));
} }
// static // static