X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/88def1632ebda838783eb28ad88bdaa179640914..da6f998486f1070e205f2e0a54f22a1b67cb32a4:/src/generic/datectlg.cpp?ds=sidebyside diff --git a/src/generic/datectlg.cpp b/src/generic/datectlg.cpp index f45dba82ab..6ea3d01c4a 100644 --- a/src/generic/datectlg.cpp +++ b/src/generic/datectlg.cpp @@ -4,7 +4,6 @@ // Author: Andreas Pflug // Modified by: // Created: 2005-01-19 -// RCS-ID: $Id$ // Copyright: (c) 2005 Andreas Pflug // Licence: wxWindows licence ///////////////////////////////////////////////////////////////////////////// @@ -130,7 +129,7 @@ public: if ( !s.empty() ) { - pDt->ParseFormat(s.c_str(), m_format); + pDt->ParseFormat(s, m_format); if ( !pDt->IsValid() ) return false; } @@ -379,16 +378,26 @@ bool wxDatePickerCtrlGeneric::Destroy() wxSize wxDatePickerCtrlGeneric::DoGetBestSize() const { - return m_combo->GetBestSize(); + // A better solution would be to use a custom text control that would have + // the best size determined by the current date format and let m_combo take + // care of the best size computation, but this isn't easily possible with + // wxComboCtrl currently, so we compute our own best size here instead even + // if this means adding some extra margins to account for text control + // borders, space between it and the button and so on. + wxSize size = m_combo->GetButtonSize(); + + wxTextCtrl* const text = m_combo->GetTextCtrl(); + size.x += text->GetTextExtent(text->GetValue()).x; + size.x += 2*text->GetCharWidth(); // This is the margin mentioned above. + + return size; } wxWindowList wxDatePickerCtrlGeneric::GetCompositeWindowParts() const { wxWindowList parts; - if (m_combo) - parts.push_back(m_combo); - if (m_popup) - parts.push_back(m_popup); + parts.push_back(m_combo); + parts.push_back(m_popup); return parts; }