X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/2dfa37d69e81b1ea87f0f2f7b6c2e18776616bd1..703e3c42d11a74be69cc1dee560e2c0f359ac13f:/src/generic/combog.cpp?ds=sidebyside diff --git a/src/generic/combog.cpp b/src/generic/combog.cpp index 674e5f1806..c70e9d405a 100644 --- a/src/generic/combog.cpp +++ b/src/generic/combog.cpp @@ -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" @@ -41,35 +42,50 @@ #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 @@ -159,7 +175,8 @@ bool wxGenericComboCtrl::Create(wxWindow *parent, border = wxBORDER_NONE; Customize( wxCC_BUTTON_OUTSIDE_BORDER | - wxCC_NO_TEXT_AUTO_SELECT ); + wxCC_NO_TEXT_AUTO_SELECT | + wxCC_BUTTON_STAYS_DOWN ); #endif @@ -174,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(); @@ -235,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 @@ -278,7 +295,7 @@ void wxGenericComboCtrl::OnPaintEvent( wxPaintEvent& WXUNUSED(event) ) // clear main background dc.DrawRectangle(rect); - + if ( !m_btn ) { // Standard button rendering @@ -391,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(); } @@ -426,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; }