X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/39bc0347fda3505f7fb43447f21efd84b9e00b3c..fcdd53359135f790b85728c4254b97095a56dad8:/src/msw/stattext.cpp diff --git a/src/msw/stattext.cpp b/src/msw/stattext.cpp index f0252e1fc4..c16b89c12b 100644 --- a/src/msw/stattext.cpp +++ b/src/msw/stattext.cpp @@ -100,11 +100,6 @@ bool wxStaticText::Create(wxWindow *parent, return true; } -wxBorder wxStaticText::GetDefaultBorder() const -{ - return wxBORDER_NONE; -} - WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const { WXDWORD msStyle = wxControl::MSWGetStyle(style, exstyle); @@ -120,6 +115,7 @@ WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const else msStyle |= SS_LEFT; +#ifdef SS_ENDELLIPSIS // this style is necessary to receive mouse events // Win NT and later have the SS_ENDELLIPSIS style which is useful to us: if (wxGetOsVersion() == wxOS_WINDOWS_NT) @@ -130,6 +126,7 @@ WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const if ( style & wxST_ELLIPSIZE_END ) msStyle |= SS_ENDELLIPSIS; } +#endif // SS_ENDELLIPSIS msStyle |= SS_NOTIFY; @@ -138,7 +135,7 @@ WXDWORD wxStaticText::MSWGetStyle(long style, WXDWORD *exstyle) const wxSize wxStaticText::DoGetBestSize() const { - wxClientDC dc(wx_const_cast(wxStaticText *, this)); + wxClientDC dc(const_cast(this)); wxFont font(GetFont()); if (!font.Ok()) font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT); @@ -194,6 +191,7 @@ void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags) // note: we first need to set the size and _then_ call UpdateLabel wxStaticTextBase::DoSetSize(x, y, w, h, sizeFlags); +#ifdef SS_ENDELLIPSIS // do we need to ellipsize the contents? long styleReal = ::GetWindowLong(GetHwnd(), GWL_STYLE); if ( !(styleReal & SS_ENDELLIPSIS) ) @@ -203,6 +201,7 @@ void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags) UpdateLabel(); } //else: we don't or the OS will do it for us +#endif // SS_ENDELLIPSIS // we need to refresh the window after changing its size as the standard // control doesn't always update itself properly @@ -211,13 +210,14 @@ void wxStaticText::DoSetSize(int x, int y, int w, int h, int sizeFlags) void wxStaticText::SetLabel(const wxString& label) { +#ifdef SS_ENDELLIPSIS long styleReal = ::GetWindowLong(GetHwnd(), GWL_STYLE); 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; @@ -231,15 +231,18 @@ void wxStaticText::SetLabel(const wxString& label) styleReal &= ~SS_ENDELLIPSIS; ::SetWindowLong(GetHwnd(), GWL_STYLE, styleReal); } +#endif // SS_ENDELLIPSIS // this call will save the label in m_labelOrig and set it into this window // (through wxWindow::SetLabel) m_labelOrig = label; - if ((styleReal & SS_ENDELLIPSIS) == 0) - DoSetLabel(GetEllipsizedLabelWithoutMarkup()); - else +#ifdef SS_ENDELLIPSIS + if ( styleReal & SS_ENDELLIPSIS ) DoSetLabel(RemoveMarkup(label)); + else +#endif // SS_ENDELLIPSIS + DoSetLabel(GetEllipsizedLabelWithoutMarkup()); // adjust the size of the window to fit to the label unless autoresizing is // disabled