]> git.saurik.com Git - wxWidgets.git/blobdiff - interface/wx/odcombo.h
Ensure that the overall table border doesn't get overdrawn by cell borders with a...
[wxWidgets.git] / interface / wx / odcombo.h
index 50db36ccbdd87b9c7fac8556e1d4b504362e2b92..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,14 +116,39 @@ 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");
+    /**
+        Constructor, creating and showing a owner-drawn combobox.
+
+        @param parent
+            Parent window. Must not be @NULL.
+        @param id
+            Window identifier. The value @c wxID_ANY indicates a default value.
+        @param value
+            Initial selection string. An empty string indicates no selection.
+        @param pos
+            Window position.
+        @param size
+            Window size.
+            If ::wxDefaultSize is specified then the window is sized appropriately.
+        @param choices
+            An array of strings with which to initialise the control.
+        @param style
+            Window style. See wxOwnerDrawnComboBox.
+        @param validator
+            Window validator.
+        @param name
+            Window name.
+
+        @see Create(), wxValidator
+    */
     wxOwnerDrawnComboBox(wxWindow* parent, wxWindowID id,
                          const wxString& value,
                          const wxPoint& pos,
@@ -113,12 +157,11 @@ public:
                          long style = 0,
                          const wxValidator& validator = wxDefaultValidator,
                          const wxString& name = "comboBox");
-    //@}
 
     /**
         Destructor, destroying the owner-drawn combobox.
     */
-    ~wxOwnerDrawnComboBox();
+    virtual ~wxOwnerDrawnComboBox();
 
     //@{
     /**
@@ -127,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.
@@ -164,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
@@ -184,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
@@ -194,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
@@ -203,6 +259,6 @@ public:
 
         The default implementation returns -1.
     */
-    wxCoord OnMeasureItemWidth(size_t item) const;
+    virtual wxCoord OnMeasureItemWidth(size_t item) const;
 };