Remeasure magic values for wxTextCtrl's border width on wxOSX/Cocoa

Measured on macOS Catalina. Also implements GetSizeFromTextSize
This commit is contained in:
wangqr
2020-05-19 00:18:51 -04:00
parent edc553870f
commit dad9a02a40
2 changed files with 14 additions and 5 deletions

View File

@@ -139,6 +139,7 @@ protected:
void Init(); void Init();
virtual wxSize DoGetBestSize() const wxOVERRIDE; virtual wxSize DoGetBestSize() const wxOVERRIDE;
virtual wxSize DoGetSizeFromTextSize(int xlen, int ylen) const wxOVERRIDE;
// flag is set to true when the user edits the controls contents // flag is set to true when the user edits the controls contents
bool m_dirty; bool m_dirty;

View File

@@ -206,19 +206,19 @@ wxSize wxTextCtrl::DoGetBestSize() const
switch ( m_windowVariant ) switch ( m_windowVariant )
{ {
case wxWINDOW_VARIANT_NORMAL : case wxWINDOW_VARIANT_NORMAL :
hText = 22 - 6 ; hText = 22 - 5 ;
break ; break ;
case wxWINDOW_VARIANT_SMALL : case wxWINDOW_VARIANT_SMALL :
hText = 19 - 6 ; hText = 19 - 5 ;
break ; break ;
case wxWINDOW_VARIANT_MINI : case wxWINDOW_VARIANT_MINI :
hText = 15 - 6 ; hText = 15 - 5 ;
break ; break ;
default : default :
hText = 22 - 6; hText = 22 - 5;
break ; break ;
} }
} }
@@ -229,11 +229,19 @@ wxSize wxTextCtrl::DoGetBestSize() const
hText *= 5 ; hText *= 5 ;
if ( !HasFlag(wxNO_BORDER) ) if ( !HasFlag(wxNO_BORDER) )
hText += 6 ; hText += 5 ;
return wxSize(wText, hText); return wxSize(wText, hText);
} }
wxSize wxTextCtrl::DoGetSizeFromTextSize(int xlen, int ylen) const
{
wxSize size = wxDefaultSize;
if (xlen > 0) size.SetWidth(HasFlag(wxNO_BORDER) ? xlen + 4 : xlen + 9);
if (ylen > 0) size.SetHeight(HasFlag(wxNO_BORDER) ? ylen + 2 : ylen + 7);
return size;
}
bool wxTextCtrl::GetStyle(long position, wxTextAttr& style) bool wxTextCtrl::GetStyle(long position, wxTextAttr& style)
{ {
return GetTextPeer()->GetStyle(position, style); return GetTextPeer()->GetStyle(position, style);