]> git.saurik.com Git - wxWidgets.git/blobdiff - src/generic/combog.cpp
Hacks for wine.
[wxWidgets.git] / src / generic / combog.cpp
index d99937a3feb499503d9d10fb7f16b92372a24434..d970168df3fa39f2e94c7014d503fb844acb0246 100644 (file)
@@ -148,26 +148,26 @@ bool wxGenericComboControl::Create(wxWindow *parent,
 
     // 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;
 }
@@ -288,11 +288,7 @@ void wxGenericComboControl::OnMouseEvent( wxMouseEvent& event )
     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 )
@@ -325,6 +321,28 @@ void wxGenericComboControl::OnMouseEvent( wxMouseEvent& event )
 
 }
 
+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,