if ( wxStyleHasBorder(m_windowStyle) )
msStyle |= WS_BORDER;
- m_hWnd = (WXHWND)::CreateWindowEx(MakeExtendedStyle(m_windowStyle), _T("STATIC"), (const wxChar *)label,
+ m_hWnd = (WXHWND)::CreateWindowEx(MakeExtendedStyle(m_windowStyle), wxT("STATIC"), (const wxChar *)label,
msStyle,
0, 0, 0, 0, (HWND) parent->GetHWND(), (HMENU)m_windowId,
wxGetInstance(), NULL);
- wxCHECK_MSG( m_hWnd, FALSE, _T("Failed to create static ctrl") );
+ wxCHECK_MSG( m_hWnd, FALSE, wxT("Failed to create static ctrl") );
#if wxUSE_CTL3D
/*
wxString text(wxGetWindowText(GetHWND()));
int widthTextMax = 0, widthLine,
- heightTextTotal = 0, heightLine;
+ heightTextTotal = 0, heightLineDefault = 0, heightLine = 0;
wxString curLine;
- for ( const char *pc = text; ; pc++ ) {
- if ( *pc == '\n' || *pc == '\0' ) {
- GetTextExtent(curLine, &widthLine, &heightLine);
- if ( widthLine > widthTextMax )
- widthTextMax = widthLine;
- heightTextTotal += heightLine;
-
- if ( *pc == '\n' ) {
+ for ( const wxChar *pc = text; ; pc++ ) {
+ if ( *pc == wxT('\n') || *pc == wxT('\0') ) {
+ if ( !curLine ) {
+ // we can't use GetTextExtent - it will return 0 for both width
+ // and height and an empty line should count in height
+ // calculation
+ if ( !heightLineDefault )
+ heightLineDefault = heightLine;
+ if ( !heightLineDefault )
+ GetTextExtent(_T("W"), NULL, &heightLineDefault);
+
+ heightTextTotal += heightLineDefault;
+ }
+ else {
+ GetTextExtent(curLine, &widthLine, &heightLine);
+ if ( widthLine > widthTextMax )
+ widthTextMax = widthLine;
+ heightTextTotal += heightLine;
+ }
+
+ if ( *pc == wxT('\n') ) {
curLine.Empty();
}
else {
{
SetWindowText(GetHwnd(), label);
- // adjust the size of the window to fit to the label (this behaviour is
- // backward compatible and generally makes sense but we might want to still
- // provide the user a way to disable it) (VZ)
- DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
+ // adjust the size of the window to fit to the label unless autoresizing is
+ // disabled
+ if ( !(GetWindowStyle() & wxST_NO_AUTORESIZE) )
+ {
+ DoSetSize(-1, -1, -1, -1, wxSIZE_AUTO_WIDTH | wxSIZE_AUTO_HEIGHT);
+ }
}
WXHBRUSH wxStaticText::OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,