// create main window
if ( !wxComboCtrlBase::Create(parent,
- id,
- value,
- wxDefaultPosition,
- wxDefaultSize,
- style | wxFULL_REPAINT_ON_RESIZE,
- wxDefaultValidator,
- name) )
+ id,
+ value,
+ pos,
+ size,
+ style | wxFULL_REPAINT_ON_RESIZE,
+ wxDefaultValidator,
+ name) )
return false;
// Create textctrl, if necessary
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
- // SetSize should be called last
- SetSize(pos.x,pos.y,size.x,size.y);
+ // SetBestSize should be called last
+ SetBestSize(size);
return true;
}
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,