]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/generic/combo.h
Use wmain() if supported by the compiler/CRT instead of main().
[wxWidgets.git] / include / wx / generic / combo.h
index 49c3c271d01dc43875f7d349426db796d37bfa9d..b25325c86fae869520b1a90594a0903d479ad03b 100644 (file)
@@ -1,6 +1,6 @@
 /////////////////////////////////////////////////////////////////////////////
 // Name:        wx/generic/combo.h
-// Purpose:     Generic wxComboControl
+// Purpose:     Generic wxComboCtrl
 // Author:      Jaakko Salli
 // Modified by:
 // Created:     Apr-30-2006
@@ -9,16 +9,16 @@
 // Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef _WX_GENERIC_COMBOCONTROL_H_
-#define _WX_GENERIC_COMBOCONTROL_H_
+#ifndef _WX_GENERIC_COMBOCTRL_H_
+#define _WX_GENERIC_COMBOCTRL_H_
 
-#if wxUSE_COMBOCONTROL
+#if wxUSE_COMBOCTRL
 
 // Only define generic if native doesn't have all the features
 #if !defined(wxCOMBOCONTROL_FULLY_FEATURED)
 
 // ----------------------------------------------------------------------------
-// Generic wxComboControl
+// Generic wxComboCtrl
 // ----------------------------------------------------------------------------
 
 #if defined(__WXUNIVERSAL__)
 // all actions of single line text controls are supported
 
 // popup/dismiss the choice window
-#define wxACTION_COMBOBOX_POPUP     _T("popup")
-#define wxACTION_COMBOBOX_DISMISS   _T("dismiss")
+#define wxACTION_COMBOBOX_POPUP     wxT("popup")
+#define wxACTION_COMBOBOX_DISMISS   wxT("dismiss")
 
 #endif
 
+#include "wx/dcbuffer.h"
 
-class WXDLLEXPORT wxGenericComboControl : public wxComboControlBase
+extern WXDLLIMPEXP_DATA_CORE(const char) wxComboBoxNameStr[];
+
+class WXDLLIMPEXP_CORE wxGenericComboCtrl : public wxComboCtrlBase
 {
 public:
     // ctors and such
-    wxGenericComboControl() : wxComboControlBase() { Init(); }
-
-    wxGenericComboControl(wxWindow *parent,
-                          wxWindowID id = wxID_ANY,
-                          const wxString& value = wxEmptyString,
-                          const wxPoint& pos = wxDefaultPosition,
-                          const wxSize& size = wxDefaultSize,
-                          long style = 0,
-                          const wxValidator& validator = wxDefaultValidator,
-                          const wxString& name = wxComboBoxNameStr)
-        : wxComboControlBase()
+    wxGenericComboCtrl() : wxComboCtrlBase() { Init(); }
+
+    wxGenericComboCtrl(wxWindow *parent,
+                       wxWindowID id = wxID_ANY,
+                       const wxString& value = wxEmptyString,
+                       const wxPoint& pos = wxDefaultPosition,
+                       const wxSize& size = wxDefaultSize,
+                       long style = 0,
+                       const wxValidator& validator = wxDefaultValidator,
+                       const wxString& name = wxComboBoxNameStr)
+        : wxComboCtrlBase()
     {
         Init();
 
@@ -62,9 +65,13 @@ public:
                 const wxValidator& validator = wxDefaultValidator,
                 const wxString& name = wxComboBoxNameStr);
 
-    virtual ~wxGenericComboControl();
+    virtual ~wxGenericComboCtrl();
+
+    void SetCustomPaintWidth( int width );
+
+    virtual bool IsKeyPopupToggle(const wxKeyEvent& event) const;
 
-    static int GetFeatures() { return wxComboControlFeatures::All; }
+    static int GetFeatures() { return wxComboCtrlFeatures::All; }
 
 #if defined(__WXUNIVERSAL__)
     // we have our own input handler and our own actions
@@ -75,6 +82,37 @@ public:
 
 protected:
 
+    // Dummies for platform-specific wxTextEntry implementations
+#if defined(__WXUNIVERSAL__)
+    // Looks like there's nothing we need to override here
+#elif defined(__WXMOTIF__)
+    virtual WXWidget GetTextWidget() const { return NULL; }
+#elif defined(__WXGTK__)
+#if defined(__WXGTK20__)
+    virtual GtkEditable *GetEditable() const { return NULL; }
+    virtual GtkEntry *GetEntry() const { return NULL; }
+#endif
+#elif defined(__WXMAC__)
+    // Looks like there's nothing we need to override here
+#elif defined(__WXPM__)
+    virtual WXHWND GetEditHWND() const { return NULL; }
+#endif
+
+    // For better transparent background rendering
+    virtual bool HasTransparentBackground()
+    {
+        #if wxALWAYS_NATIVE_DOUBLE_BUFFER
+          #ifdef __WXGTK__
+            // Sanity check for GTK+
+            return IsDoubleBuffered();
+          #else
+            return true;
+          #endif
+        #else
+            return false;
+        #endif
+    }
+
     // Mandatory virtuals
     virtual void OnResize();
 
@@ -87,49 +125,49 @@ private:
 
     DECLARE_EVENT_TABLE()
 
-    DECLARE_DYNAMIC_CLASS(wxGenericComboControl)
+    DECLARE_DYNAMIC_CLASS(wxGenericComboCtrl)
 };
 
 
 #ifndef _WX_COMBOCONTROL_H_
 
-// If native wxComboControl was not defined, then prepare a simple
+// If native wxComboCtrl was not defined, then prepare a simple
 // front-end so that wxRTTI works as expected.
 
-class WXDLLEXPORT wxComboControl : public wxGenericComboControl
+class WXDLLIMPEXP_CORE wxComboCtrl : public wxGenericComboCtrl
 {
 public:
-    wxComboControl() : wxGenericComboControl() {}
-
-    wxComboControl(wxWindow *parent,
-                   wxWindowID id = wxID_ANY,
-                   const wxString& value = wxEmptyString,
-                   const wxPoint& pos = wxDefaultPosition,
-                   const wxSize& size = wxDefaultSize,
-                   long style = 0,
-                   const wxValidator& validator = wxDefaultValidator,
-                   const wxString& name = wxComboBoxNameStr)
-        : wxGenericComboControl()
+    wxComboCtrl() : wxGenericComboCtrl() {}
+
+    wxComboCtrl(wxWindow *parent,
+                wxWindowID id = wxID_ANY,
+                const wxString& value = wxEmptyString,
+                const wxPoint& pos = wxDefaultPosition,
+                const wxSize& size = wxDefaultSize,
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxComboBoxNameStr)
+        : wxGenericComboCtrl()
     {
         (void)Create(parent, id, value, pos, size, style, validator, name);
     }
 
-    virtual ~wxComboControl() {}
+    virtual ~wxComboCtrl() {}
 
 protected:
 
 private:
-    DECLARE_DYNAMIC_CLASS(wxComboControl)
+    DECLARE_DYNAMIC_CLASS(wxComboCtrl)
 };
 
 #endif // _WX_COMBOCONTROL_H_
 
 #else
 
-#define wxGenericComboControl   wxComboControl
+#define wxGenericComboCtrl   wxComboCtrl
 
 #endif // !defined(wxCOMBOCONTROL_FULLY_FEATURED)
 
-#endif // wxUSE_COMBOCONTROL
+#endif // wxUSE_COMBOCTRL
 #endif
-    // _WX_GENERIC_COMBOCONTROL_H_
+    // _WX_GENERIC_COMBOCTRL_H_