]> git.saurik.com Git - wxWidgets.git/commitdiff
no real changes: just a small optimization on wxStaticText::DoSetLabel() to avoid...
authorFrancesco Montorsi <f18m_cpp217828@yahoo.it>
Sun, 28 Mar 2010 22:23:38 +0000 (22:23 +0000)
committerFrancesco Montorsi <f18m_cpp217828@yahoo.it>
Sun, 28 Mar 2010 22:23:38 +0000 (22:23 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@63767 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/control.h
include/wx/stattext.h
src/gtk/stattext.cpp

index 31ceeef4211fa7a9f46673f27471f0a5234b30ad..79d6d833fd080034ddad3a5ac43890d65c6130df 100644 (file)
@@ -170,7 +170,8 @@ protected:
                                           wxEllipsizeMode mode, int maxWidth,
                                           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;
 
     wxDECLARE_NO_COPY_CLASS(wxControlBase);
index f9e202ac1ba5c37863aa79a20ac5757e48b827dd..f3aa8fc9d374d3f82beb4e5bfce25a8a778cca60 100644 (file)
@@ -99,13 +99,14 @@ protected:      // functions required for wxST_ELLIPSIZE_* support
 
     // These functions are platform-specific and must be overridden in ports
     // 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.
     virtual wxString DoGetLabel() const { return wxEmptyString; }
 
     // 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)) { }
 
 private:
index ebbd47c37cd4b400594e3fff73d7f866519e2cfa..7e3d81d77049e6e343a578628fc1b31f933fe491 100644 (file)
@@ -132,7 +132,7 @@ void wxStaticText::SetLabel( const wxString& str )
 
     // adjust the label size to the new label unless disabled
     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() );
 }
 
@@ -175,8 +175,8 @@ bool wxStaticText::SetFont( const wxFont &font )
 }
 
 void wxStaticText::DoSetSize(int x, int y,
-                           int width, int height,
-                           int sizeFlags )
+                             int width, int height,
+                             int sizeFlags )
 {
     wxStaticTextBase::DoSetSize(x, y, width, height, sizeFlags);
 
@@ -230,7 +230,11 @@ wxString wxStaticText::DoGetLabel() const
 
 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