CreateTextCtrl( wxNO_BORDER, validator );
// Add keyboard input handlers for main control and textctrl
- InstallInputHandlers( true );
+ InstallInputHandlers();
// Set background
SetBackgroundStyle( wxBG_STYLE_CUSTOM ); // for double-buffering
void wxGenericComboControl::OnMouseEvent( wxMouseEvent& event )
{
- bool isOnButtonArea = m_btnArea.Inside(event.m_x,event.m_y);
+ bool isOnButtonArea = m_btnArea.Contains(event.m_x,event.m_y);
int handlerFlags = isOnButtonArea ? wxCC_MF_ON_BUTTON : 0;
// Preprocessing fabricates double-clicks and prevents
if ( PreprocessMouseEvent(event,handlerFlags) )
return;
-#ifdef __WXMSW__
- const bool ctrlIsButton = true;
-#else
- const bool ctrlIsButton = false;
-#endif
+ const bool ctrlIsButton = wxPlatformIs(wxOS_WINDOWS);
if ( ctrlIsButton &&
(m_windowStyle & (wxCC_SPECIAL_DCLICK|wxCB_READONLY)) == wxCB_READONLY )
}
+bool wxGenericComboControl::IsKeyPopupToggle(const wxKeyEvent& event) const
+{
+ int keycode = event.GetKeyCode();
+ bool isPopupShown = IsPopupShown();
+
+ // This code is AFAIK appropriate for wxGTK.
+
+ if ( isPopupShown )
+ {
+ if ( keycode == WXK_ESCAPE ||
+ ( keycode == WXK_UP && event.AltDown() ) )
+ return true;
+ }
+ else
+ {
+ if ( keycode == WXK_DOWN && event.AltDown() )
+ return true;
+ }
+
+ return false;
+}
+
#ifdef __WXUNIVERSAL__
bool wxGenericComboControl::PerformAction(const wxControlAction& action,