#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 19
+#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
border = wxBORDER_NONE;
Customize( wxCC_BUTTON_OUTSIDE_BORDER |
- wxCC_NO_TEXT_AUTO_SELECT );
+ wxCC_NO_TEXT_AUTO_SELECT |
+ wxCC_BUTTON_STAYS_DOWN );
#endif
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();
// Set border colour
wxPen pen1( wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT),
customBorder,
- wxSOLID );
+ wxPENSTYLE_SOLID);
dc.SetPen( pen1 );
// area around both controls
dc.DrawRectangle(rect2);
}
+#ifndef __WXMAC__ // see note in OnThemeChange
wxColour winCol = GetBackgroundColour();
+#else
+ wxColour winCol = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOW);
+#endif
dc.SetBrush(winCol);
dc.SetPen(winCol);
dc.DrawRectangle(rect);
if ( !m_btn )
+ {
// Standard button rendering
- DrawButton(dc,rectb,true);
+ DrawButton(dc,rectb);
+ }
// paint required portion on the control
if ( (!m_text || m_widthCustomPaint) )
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();
}
}
else
{
- if ( keycode == WXK_DOWN && event.AltDown() )
+ if ( (keycode == WXK_DOWN && event.AltDown()) ||
+ (keycode == WXK_F4) )
return true;
}