]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/stattext.cpp
adding explicit log.h include
[wxWidgets.git] / src / msw / stattext.cpp
index 2df67c28b877ba53c7820930b1f730876c4f481c..7a20a94ae081c43564991063863a249d8a9c62bb 100644 (file)
@@ -94,15 +94,19 @@ bool wxStaticText::Create(wxWindow *parent,
     if ( !CreateControl(parent, id, pos, size, style, wxDefaultValidator, name) )
         return false;
 
-    if ( !MSWCreateControl(wxT("STATIC"), label, pos, size) )
+    if ( !MSWCreateControl(wxT("STATIC"), wxEmptyString, pos, size) )
         return false;
 
-    return true;
-}
+    // we set the label here and not through MSWCreateControl() because we
+    // need to do many operation on it for ellipsization&markup support
+    SetLabel(label);
 
-wxBorder wxStaticText::GetDefaultBorder() const
-{
-    return wxBORDER_NONE;
+    // NOTE: if the label contains ampersand characters which are interpreted as
+    //       accelerators, they will be rendered (at least on WinXP) only if the
+    //       static text is placed inside a window class which correctly handles
+    //       focusing by TAB traversal (e.g. wxPanel).
+
+    return true;
 }
 
 WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const
@@ -140,7 +144,7 @@ WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const
 
 wxSize wxStaticText::DoGetBestSize() const
 {
-    wxClientDC dc(wx_const_cast(wxStaticText *, this));
+    wxClientDC dc(const_cast<wxStaticText *>(this));
     wxFont font(GetFont());
     if (!font.Ok())
         font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);
@@ -220,9 +224,9 @@ void wxStaticText::SetLabel(const wxString& label)
     if ( HasFlag(wxST_ELLIPSIZE_END) &&
           wxGetOsVersion() == wxOS_WINDOWS_NT )
     {
-        // adding SS_ENDELLIPSIS or SS_ENDELLIPSIS "disables" the correct 
-        // newline handling in static texts: the newlines in the labels are 
-        // shown as square. Thus we don't use it even on newer OS when 
+        // adding SS_ENDELLIPSIS or SS_ENDELLIPSIS "disables" the correct
+        // newline handling in static texts: the newlines in the labels are
+        // shown as square. Thus we don't use it even on newer OS when
         // the static label contains a newline.
         if ( label.Contains(wxT('\n')) )
             styleReal &= ~SS_ENDELLIPSIS;