]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/datectlg.cpp
Fix horizontal mouse wheel scrolling in wxGTK.
[wxWidgets.git] / src / generic / datectlg.cpp
index f45dba82ab5e824d7f60823826e163f12657402a..6ea3d01c4a1d065fd5dcf2a8da5c9c70b917d526 100644 (file)
@@ -4,7 +4,6 @@
 // Author:      Andreas Pflug
 // Modified by:
 // Created:     2005-01-19
-// RCS-ID:      $Id$
 // Copyright:   (c) 2005 Andreas Pflug <pgadmin@pse-consulting.de>
 // 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;
 }