Adding Borders and Multi-Line calculations also when native best size is available

Otherwise wxTE_MULTILINE are getting a tiny one-line minimal size, and the border as to be added as well.
This commit is contained in:
Stefan Csomor
2017-09-06 09:54:35 +02:00
parent d24ffcf749
commit 51e7994cff

View File

@@ -194,36 +194,43 @@ bool wxTextCtrl::AcceptsFocus() const
wxSize wxTextCtrl::DoGetBestSize() const
{
int wText = -1;
int hText = -1;
if (GetTextPeer())
{
wxSize size = GetTextPeer()->GetBestSize();
if (size.x > 0 && size.y > 0)
return size;
{
hText = size.y;
wText = size.x;
}
}
int wText, hText;
// these are the numbers from the HIG:
// we reduce them by the borders first
wText = 100 ;
switch ( m_windowVariant )
if ( hText == - 1)
{
case wxWINDOW_VARIANT_NORMAL :
hText = 22 - 6 ;
break ;
// these are the numbers from the HIG:
// we reduce them by the borders first
wText = 100 ;
case wxWINDOW_VARIANT_SMALL :
hText = 19 - 6 ;
break ;
switch ( m_windowVariant )
{
case wxWINDOW_VARIANT_NORMAL :
hText = 22 - 6 ;
break ;
case wxWINDOW_VARIANT_MINI :
hText = 15 - 6 ;
break ;
case wxWINDOW_VARIANT_SMALL :
hText = 19 - 6 ;
break ;
default :
hText = 22 - 6;
break ;
case wxWINDOW_VARIANT_MINI :
hText = 15 - 6 ;
break ;
default :
hText = 22 - 6;
break ;
}
}
// as the above numbers have some free space around the text