]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/odcombo.h
Add test for absence of events from wxSpinCtrlDouble ctor.
[wxWidgets.git] / interface / wx / odcombo.h
index 7edc546717b0683b3dd5aec017b9c08d3131c578..e7fcef6cd50a205fa858d7a736c0551e9a22d69f 100644 (file)
@@ -2,8 +2,7 @@
 // Name:        odcombo.h
 // Purpose:     interface of wxOwnerDrawnComboBox
 // Author:      wxWidgets team
-// RCS-ID:      $Id$
-// Licence:     wxWindows license
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 
@@ -22,6 +21,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,9 +65,9 @@ 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
+           Process a wxEVT_COMBOBOX event, when an item on
            the list is selected. Note that calling GetValue() returns the new
            value of selection.
     @endEventTable
@@ -56,11 +76,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 +88,6 @@ public:
     */
     wxOwnerDrawnComboBox();
 
-    //@{
     /**
         Constructor, creating and showing a owner-drawn combobox.
 
@@ -97,11 +116,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,12 +157,11 @@ public:
                          long style = 0,
                          const wxValidator& validator = wxDefaultValidator,
                          const wxString& name = "comboBox");
-    //@}
 
     /**
         Destructor, destroying the owner-drawn combobox.
     */
-    ~wxOwnerDrawnComboBox();
+    virtual ~wxOwnerDrawnComboBox();
 
     //@{
     /**
@@ -152,33 +170,46 @@ 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);
     //@}
 
     /**
         Returns index to the widest item in the list.
     */
-    int GetWidestItem() const;
+    virtual int GetWidestItem();
 
     /**
         Returns width of the widest item in the list.
     */
-    int GetWidestItemWidth() const;
+    virtual int GetWidestItemWidth();
+
+protected:
 
     /**
         This method is used to draw the items background and, maybe, a border around it.
@@ -189,8 +220,8 @@ public:
 
         @remarks flags has the same meaning as with OnDrawItem().
     */
-    void OnDrawBackground(wxDC& dc, const wxRect& rect, int item,
-                          int flags) const;
+    virtual void OnDrawBackground(wxDC& dc, const wxRect& rect, int item,
+                                  int flags) const;
 
     /**
         The derived class may implement this function to actually draw the item
@@ -209,8 +240,8 @@ public:
         @param flags
             A combination of the ::wxOwnerDrawnComboBoxPaintingFlags enumeration values.
     */
-    void OnDrawItem(wxDC& dc, const wxRect& rect, int item,
-                    int flags) const;
+    virtual void OnDrawItem(wxDC& dc, const wxRect& rect, int item,
+                            int flags) const;
 
     /**
         The derived class may implement this method to return the height of the
@@ -219,7 +250,7 @@ public:
         The default implementation returns text height, as if this control was
         a normal combobox.
     */
-    wxCoord OnMeasureItem(size_t item) const;
+    virtual wxCoord OnMeasureItem(size_t item) const;
 
     /**
         The derived class may implement this method to return the width of the
@@ -228,6 +259,6 @@ public:
 
         The default implementation returns -1.
     */
-    wxCoord OnMeasureItemWidth(size_t item) const;
+    virtual wxCoord OnMeasureItemWidth(size_t item) const;
 };