]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/odcombo.h
avoid infinite recursion for richtooltops, (hopefully) fixes #15070
[wxWidgets.git] / interface / wx / odcombo.h
index 93ca6bc2d5943f1cbc9e29df2de7b166abc22235..abd24fc6b606e64e72e83c0be6c4e3bd0e89b661 100644 (file)
@@ -3,7 +3,7 @@
 // Purpose:     interface of wxOwnerDrawnComboBox
 // Author:      wxWidgets team
 // RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -22,6 +22,27 @@ enum wxOwnerDrawnComboBoxPaintingFlags
     wxODCB_PAINTING_SELECTED        = 0x0002
 };
 
+
+/**
+   New window styles for wxOwnerDrawnComboBox
+*/
+enum
+{
+    /**
+       Double-clicking cycles item if wxCB_READONLY is also used.
+    */
+    wxODCB_DCLICK_CYCLES            = wxCC_SPECIAL_DCLICK,
+
+    /**
+       If used, control itself is not custom paint using callback.
+       Even if this is not used, writable combo is never custom paint
+       until SetCustomPaintWidth is called
+    */
+    wxODCB_STD_CONTROL_PAINT        = 0x1000
+};
+
+
+
 /**
     @class wxOwnerDrawnComboBox
 
@@ -45,7 +66,7 @@ enum wxOwnerDrawnComboBoxPaintingFlags
 
     @see wxComboCtrl window styles and @ref overview_windowstyles.
 
-    @beginEventTable{wxCommandEvent}
+    @beginEventEmissionTable{wxCommandEvent}
     @event{EVT_COMBOBOX(id, func)}
            Process a wxEVT_COMMAND_COMBOBOX_SELECTED event, when an item on
            the list is selected. Note that calling GetValue() returns the new
@@ -56,11 +77,11 @@ enum wxOwnerDrawnComboBoxPaintingFlags
 
     @library{wxadv}
     @category{ctrl}
-    @appearance{ownerdrawncombobox.png}
+    @appearance{ownerdrawncombobox}
 
     @see wxComboCtrl, wxComboBox, wxVListBox, wxCommandEvent
 */
-class wxOwnerDrawnComboBox : public wxComboCtrl
+class wxOwnerDrawnComboBox : public wxComboCtrl, public wxItemContainer
 {
 public:
     /**
@@ -68,7 +89,6 @@ public:
     */
     wxOwnerDrawnComboBox();
 
-    //@{
     /**
         Constructor, creating and showing a owner-drawn combobox.
 
@@ -97,11 +117,11 @@ public:
         @see Create(), wxValidator
     */
     wxOwnerDrawnComboBox(wxWindow* parent, wxWindowID id,
-                         const wxString& value = "",
+                         const wxString& value = wxEmptyString,
                          const wxPoint& pos = wxDefaultPosition,
                          const wxSize& size = wxDefaultSize,
                          int n = 0,
-                         const wxString[] choices = NULL,
+                         const wxString choices[] = NULL,
                          long style = 0,
                          const wxValidator& validator = wxDefaultValidator,
                          const wxString& name = "comboBox");
@@ -138,7 +158,6 @@ public:
                          long style = 0,
                          const wxValidator& validator = wxDefaultValidator,
                          const wxString& name = "comboBox");
-    //@}
 
     /**
         Destructor, destroying the owner-drawn combobox.
@@ -152,22 +171,33 @@ public:
 
         @remarks Derived classes should call or replace this function.
     */
-    bool Create(wxWindow* parent, wxWindowID id,
-                const wxString& value = "",
+    bool Create(wxWindow *parent,
+                wxWindowID id,
+                const wxString& value = wxEmptyString,
                 const wxPoint& pos = wxDefaultPosition,
                 const wxSize& size = wxDefaultSize,
-                int n, const wxString choices[],
                 long style = 0,
                 const wxValidator& validator = wxDefaultValidator,
-                const wxString& name = "comboBox");
-    bool Create(wxWindow* parent, wxWindowID id,
+                const wxString& name = wxComboBoxNameStr);
+    bool Create(wxWindow *parent,
+                wxWindowID id,
+                const wxString& value,
+                const wxPoint& pos,
+                const wxSize& size,
+                int n,
+                const wxString choices[],
+                long style = 0,
+                const wxValidator& validator = wxDefaultValidator,
+                const wxString& name = wxComboBoxNameStr);
+    bool Create(wxWindow *parent,
+                wxWindowID id,
                 const wxString& value,
                 const wxPoint& pos,
                 const wxSize& size,
                 const wxArrayString& choices,
                 long style = 0,
                 const wxValidator& validator = wxDefaultValidator,
-                const wxString& name = "comboBox");
+                const wxString& name = wxComboBoxNameStr);
     //@}
 
     /**
@@ -180,6 +210,8 @@ public:
     */
     virtual int GetWidestItemWidth();
 
+protected:
+
     /**
         This method is used to draw the items background and, maybe, a border around it.