]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/combog.cpp
Try to better revert to the original string value in wxBitmapComboBox::RecreateControl()
[wxWidgets.git] / src / generic / combog.cpp
index 8deece85894b5b94fee414730ff7fc1ddea6e638..c70e9d405a4ea018c525f3b4252b9dc244bbdbc7 100644 (file)
@@ -32,6 +32,7 @@
     #include "wx/combobox.h"
     #include "wx/dcclient.h"
     #include "wx/settings.h"
+    #include "wx/textctrl.h"
 #endif
 
 #include "wx/dcbuffer.h"
 
 #if defined(__WXUNIVERSAL__)
 
-#define TEXTCTRLXADJUST                 0 // position adjustment for wxTextCtrl, with zero indent
+// position adjustment for wxTextCtrl, to achieve zero left margin
+// meaningless if LEFT_MARGIN_CAN_BE_SET set to 1 in combocmn.cpp
+#define TEXTCTRLXADJUST                 0
+
 #define TEXTCTRLYADJUST                 0
 #define TEXTXADJUST                     0 // how much is read-only text's x adjusted
 #define DEFAULT_DROPBUTTON_WIDTH        19
 
 #elif defined(__WXMSW__)
 
-#define TEXTCTRLXADJUST                 2 // position adjustment for wxTextCtrl, with zero indent
+// position adjustment for wxTextCtrl, to achieve zero left margin
+// meaningless if LEFT_MARGIN_CAN_BE_SET set to 1 in combocmn.cpp
+#define TEXTCTRLXADJUST                 2
+
 #define TEXTCTRLYADJUST                 3
 #define TEXTXADJUST                     0 // how much is read-only text's x adjusted
 #define DEFAULT_DROPBUTTON_WIDTH        17
 
 #elif defined(__WXGTK__)
 
-#define TEXTCTRLXADJUST                 -1 // position adjustment for wxTextCtrl, with zero indent
+// position adjustment for wxTextCtrl, to achieve zero left margin
+// meaningless if LEFT_MARGIN_CAN_BE_SET set to 1 in combocmn.cpp
+#define TEXTCTRLXADJUST                 -1
+
 #define TEXTCTRLYADJUST                 0
 #define TEXTXADJUST                     1 // how much is read-only text's x adjusted
 #define DEFAULT_DROPBUTTON_WIDTH        23
 
 #elif defined(__WXMAC__)
 
-#define TEXTCTRLXADJUST                 0 // position adjustment for wxTextCtrl, with zero indent
+// position adjustment for wxTextCtrl, to achieve zero left margin
+// meaningless if LEFT_MARGIN_CAN_BE_SET set to 1 in combocmn.cpp
+#define TEXTCTRLXADJUST                 0
+
 #define TEXTCTRLYADJUST                 0
 #define TEXTXADJUST                     0 // how much is read-only text's x adjusted
 #define DEFAULT_DROPBUTTON_WIDTH        22
 
 #else
 
-#define TEXTCTRLXADJUST                 0 // position adjustment for wxTextCtrl, with zero indent
+// position adjustment for wxTextCtrl, to achieve zero left margin
+// meaningless if LEFT_MARGIN_CAN_BE_SET set to 1 in combocmn.cpp
+#define TEXTCTRLXADJUST                 0
+
 #define TEXTCTRLYADJUST                 0
 #define TEXTXADJUST                     0 // how much is read-only text's x adjusted
 #define DEFAULT_DROPBUTTON_WIDTH        19
@@ -175,12 +191,12 @@ bool wxGenericComboCtrl::Create(wxWindow *parent,
                                   pos,
                                   size,
                                   style | wxFULL_REPAINT_ON_RESIZE,
-                                  wxDefaultValidator,
+                                  validator,
                                   name) )
         return false;
 
     // Create textctrl, if necessary
-    CreateTextCtrl( tcBorder, validator );
+    CreateTextCtrl( tcBorder );
 
     // Add keyboard input handlers for main control and textctrl
     InstallInputHandlers();
@@ -236,7 +252,7 @@ void wxGenericComboCtrl::OnPaintEvent( wxPaintEvent& WXUNUSED(event) )
         // Set border colour
         wxPen pen1( wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT),
                     customBorder,
-                    wxSOLID );
+                    wxPENSTYLE_SOLID);
         dc.SetPen( pen1 );
 
         // area around both controls
@@ -279,7 +295,7 @@ void wxGenericComboCtrl::OnPaintEvent( wxPaintEvent& WXUNUSED(event) )
 
     // clear main background
     dc.DrawRectangle(rect);
-    
+
     if ( !m_btn )
     {
         // Standard button rendering
@@ -392,17 +408,7 @@ void wxGenericComboCtrl::SetCustomPaintWidth( int width )
             tc->RemoveEventHandler(m_textEvtHandler);
             delete m_textEvtHandler;
 
-            wxValidator* pValidator = tc->GetValidator();
-            if ( pValidator )
-            {
-                pValidator = (wxValidator*) pValidator->Clone();
-                CreateTextCtrl( tcCreateStyle, *pValidator );
-                delete pValidator;
-            }
-            else
-            {
-                CreateTextCtrl( tcCreateStyle, wxDefaultValidator );
-            }
+            CreateTextCtrl( tcCreateStyle );
 
             InstallInputHandlers();
         }
@@ -427,7 +433,8 @@ bool wxGenericComboCtrl::IsKeyPopupToggle(const wxKeyEvent& event) const
     }
     else
     {
-        if ( keycode == WXK_DOWN && event.AltDown() )
+        if ( (keycode == WXK_DOWN && event.AltDown()) ||
+             (keycode == WXK_F4) )
             return true;
     }