X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ccdc11bbaf0310a474ad7b9d41413b31c3544356..05e0b047d879cdbfade7f2ab346c0acdf3e29f96:/src/os2/stattext.cpp?ds=inline diff --git a/src/os2/stattext.cpp b/src/os2/stattext.cpp index b636f26e3d..1ee58a4b8c 100644 --- a/src/os2/stattext.cpp +++ b/src/os2/stattext.cpp @@ -66,11 +66,9 @@ bool wxStaticText::Create( wxWindow* pParent, else lSstyle |= DT_LEFT; - wxString sLabel = ::wxPMTextToLabel(rsLabel); - m_hWnd = (WXHWND)::WinCreateWindow( (HWND)GetHwndOf(pParent) // Parent window handle ,WC_STATIC // Window class - ,(PSZ)sLabel.c_str() // Initial Text + ,NULL // Initial Text ,(ULONG)lSstyle // Style flags ,0L, 0L, 0L, 0L // Origin -- 0 size ,(HWND)GetHwndOf(pParent) // owner window handle (same as parent @@ -103,12 +101,14 @@ bool wxStaticText::Create( wxWindow* pParent, SetYComp(0); SetSize( nX, nY, nWidth, nHeight ); + SetLabel(rsLabel); + return true; } // end of wxStaticText::Create wxSize wxStaticText::DoGetBestSize() const { - wxString sText(wxGetWindowText(GetHWND())); + wxString sText(GetLabel()); int nWidthTextMax = 0; int nWidthLine = 0; int nHeightTextTotal = 0; @@ -205,6 +205,10 @@ void wxStaticText::DoSetSize( ,nHeight ,nSizeFlags ); + + // eventually update label (if ellipsizing is on): + UpdateLabel(); + Refresh(); } // end of wxStaticText::DoSetSize @@ -229,14 +233,18 @@ void wxStaticText::SetLabel( const wxString& rsLabel ) { - wxString sLabel = ::wxPMTextToLabel(rsLabel); - ::WinSetWindowText(GetHwnd(), (PSZ)sLabel.c_str()); + m_labelOrig = rsLabel; // save original label + + // OS/2 does not support neither ellipsize nor markup in static text: + DoSetLabel(rsLabel); + DoSetLabel(GetEllipsizedLabelWithoutMarkup()); // // Adjust the size of the window to fit to the label unless autoresizing is // disabled // - if (!(GetWindowStyle() & wxST_NO_AUTORESIZE)) + if (!(GetWindowStyle() & wxST_NO_AUTORESIZE) && + !IsEllipsized()) { wxCoord vX; wxCoord vY; @@ -263,3 +271,18 @@ MRESULT wxStaticText::OS2WindowProc( ,lParam ); } // end of wxStaticText::OS2WindowProc + + +// for wxST_ELLIPSIZE_* support: + +void wxStaticText::DoSetLabel(const wxString& str) +{ + wxString sLabel = ::wxPMTextToLabel(str); + ::WinSetWindowText(GetHwnd(), sLabel.c_str()); +} + +wxString wxStaticText::DoGetLabel() const +{ + return wxGetWindowText(GetHwnd()); +} +