- wxSize sz = GetDefaultSize() ;
-
- int charspace = 8 ;
- if ( GetWindowVariant() == wxWINDOW_VARIANT_NORMAL || GetWindowVariant() == wxWINDOW_VARIANT_LARGE )
- {
- sz.y = 20 ;
- charspace = 10 ;
- }
- else if ( GetWindowVariant() == wxWINDOW_VARIANT_SMALL )
- {
- sz.y = 17 ;
- charspace = 8 ;
- }
- else if ( GetWindowVariant() == wxWINDOW_VARIANT_MINI )
- {
- sz.y = 15 ;
- charspace = 8 ;
- }
-
- int wBtn = m_label.Length() * charspace + 12 ;
-
- if (wBtn > sz.x || ( GetWindowStyle() & wxBU_EXACTFIT) )
- sz.x = wBtn;
+ if ( GetId() == wxID_HELP )
+ return wxSize( 20 , 20 ) ;
+
+ wxSize sz = GetDefaultSize() ;
+ int charspace = 8 ;
+
+ switch (GetWindowVariant())
+ {
+ case wxWINDOW_VARIANT_NORMAL:
+ case wxWINDOW_VARIANT_LARGE:
+ sz.y = 20 ;
+ charspace = 10 ;
+ break;
+
+ case wxWINDOW_VARIANT_SMALL:
+ sz.y = 17 ;
+ break;
+
+ case wxWINDOW_VARIANT_MINI:
+ sz.y = 15 ;
+ break;
+
+ default:
+ break;
+ }
+
+ Rect bestsize = { 0 , 0 , 0 , 0 } ;
+ m_peer->GetBestRect( &bestsize ) ;