]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/vlbox.h
Change SetStringSelection to return bool like in other classes and ports
[wxWidgets.git] / include / wx / vlbox.h
index e2a2dc8063e0b2e0de324e09195c9513a67e96f8..9e5bf64c5b1dc49b753b104ccd4938a186058ebb 100644 (file)
@@ -92,6 +92,9 @@ public:
 
     // is this item the current one?
     bool IsCurrent(size_t item) const { return item == (size_t)m_current; }
 
     // is this item the current one?
     bool IsCurrent(size_t item) const { return item == (size_t)m_current; }
+    #ifdef __WXUNIVERSAL__
+    bool IsCurrent() const { return wxVScrolledWindow::IsCurrent(); }
+    #endif
 
     // is this item selected?
     bool IsSelected(size_t item) const;
 
     // is this item selected?
     bool IsSelected(size_t item) const;
@@ -120,6 +123,9 @@ public:
     // get the margins around each item
     wxPoint GetMargins() const { return m_ptMargins; }
 
     // get the margins around each item
     wxPoint GetMargins() const { return m_ptMargins; }
 
+    // get the background colour of selected cells
+    const wxColour& GetSelectionBackground() const { return m_colBgSel; }
+
 
     // operations
     // ----------
 
     // operations
     // ----------
@@ -127,7 +133,7 @@ public:
     // set the number of items to be shown in the control
     //
     // this is just a synonym for wxVScrolledWindow::SetLineCount()
     // set the number of items to be shown in the control
     //
     // this is just a synonym for wxVScrolledWindow::SetLineCount()
-    void SetItemCount(size_t count);
+    virtual void SetItemCount(size_t count);
 
     // delete all items from the control
     void Clear() { SetItemCount(0); }
 
     // delete all items from the control
     void Clear() { SetItemCount(0); }
@@ -179,7 +185,14 @@ public:
     void SetMargins(const wxPoint& pt);
     void SetMargins(wxCoord x, wxCoord y) { SetMargins(wxPoint(x, y)); }
 
     void SetMargins(const wxPoint& pt);
     void SetMargins(wxCoord x, wxCoord y) { SetMargins(wxPoint(x, y)); }
 
+    // change the background colour of the selected cells
+    void SetSelectionBackground(const wxColour& col);
+
+
+    virtual void ApplyParentThemeBackground(const wxColour& WXUNUSED(bg))
+        { /* do nothing */ }
 
 
+    
 protected:
     // the derived class must implement this function to actually draw the item
     // with the given index on the provided DC
 protected:
     // the derived class must implement this function to actually draw the item
     // with the given index on the provided DC
@@ -196,11 +209,19 @@ protected:
     // the base class version doesn't do anything
     virtual void OnDrawSeparator(wxDC& dc, wxRect& rect, size_t n) const;
 
     // the base class version doesn't do anything
     virtual void OnDrawSeparator(wxDC& dc, wxRect& rect, size_t n) const;
 
+    // this method is used to draw the items background and, maybe, a border
+    // around it
+    //
+    // the base class version implements a reasonable default behaviour which
+    // consists in drawing the selected item with the standard background
+    // colour and drawing a border around the item if it is either selected or
+    // current
+    virtual void OnDrawBackground(wxDC& dc, const wxRect& rect, size_t n) const;
 
     // we implement OnGetLineHeight() in terms of OnMeasureItem() because this
     // allows us to add borders to the items easily
     //
 
     // we implement OnGetLineHeight() in terms of OnMeasureItem() because this
     // allows us to add borders to the items easily
     //
-    // this function is not upposed to be overridden by the derived classes
+    // this function is not supposed to be overridden by the derived classes
     virtual wxCoord OnGetLineHeight(size_t line) const;
 
 
     virtual wxCoord OnGetLineHeight(size_t line) const;
 
 
@@ -258,7 +279,13 @@ private:
     // margins
     wxPoint m_ptMargins;
 
     // margins
     wxPoint m_ptMargins;
 
+    // the selection bg colour
+    wxColour m_colBgSel;
+
+
     DECLARE_EVENT_TABLE()
     DECLARE_EVENT_TABLE()
+    DECLARE_NO_COPY_CLASS(wxVListBox)
+    DECLARE_ABSTRACT_CLASS(wxVListBox)
 };
 
 #endif // _WX_VLBOX_H_
 };
 
 #endif // _WX_VLBOX_H_