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
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;
,nHeight
,nSizeFlags
);
+
+ // eventually update label (if ellipsizing is on):
+ UpdateLabel();
+
Refresh();
} // end of wxStaticText::DoSetSize
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;
,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());
+}
+