- wxSize sizeBtn = m_spinButton->GetBestSize(),
- sizeText = m_textCtrl->GetBestSize();
+ return DoGetSizeFromTextSize(m_textCtrl->GetBestSize().x, -1);
+}
+
+wxSize wxSpinCtrlGenericBase::DoGetSizeFromTextSize(int xlen, int ylen) const
+{
+ wxSize sizeBtn = m_spinButton->GetBestSize();
+ wxSize totalS( m_textCtrl->GetBestSize() );
+
+ wxSize tsize(xlen + sizeBtn.x + MARGIN, totalS.y);
+#if defined(__WXMSW__)
+ tsize.IncBy(0.4 * totalS.y + 4, 0);
+#elif defined(__WXGTK__)
+ tsize.IncBy(totalS.y + 10, 0);
+#endif // MSW GTK
+
+ // Check if the user requested a non-standard height.
+ if ( ylen > 0 )
+ tsize.IncBy(0, ylen - GetCharHeight());