]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/vlbox.h
Added RTL functions missing from WinCE to wxchar.h/cpp
[wxWidgets.git] / include / wx / vlbox.h
index ff1dc10de91b41bb77d127b141a1687a8c4e41a0..276076ece7e6e3f280e3a24a4b8abd9215d34ac2 100644 (file)
@@ -120,6 +120,9 @@ public:
     // 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
     // ----------
@@ -127,19 +130,19 @@ public:
     // 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); }
 
-    // set the selection to the specified item, if it is -1 the selection is
-    // unset
+    // set the selection to the specified item, if it is wxNOT_FOUND the
+    // selection is unset
     //
     // this function is only valid for the single selection listboxes
     void SetSelection(int selection);
 
     // selects or deselects the specified item which must be valid (i.e. not
-    // equal to -1)
+    // equal to wxNOT_FOUND)
     //
     // return true if the items selection status has changed or false
     // otherwise
@@ -179,6 +182,9 @@ public:
     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);
+
 
 protected:
     // the derived class must implement this function to actually draw the item
@@ -221,28 +227,47 @@ protected:
     bool DoSelectAll(bool select);
 
     // change the current item (in single selection listbox it also implicitly
-    // changes the selection); current may be -1 in which case there will be
-    // no current item any more
+    // changes the selection); current may be wxNOT_FOUND in which case there
+    // will be no current item any more
     //
     // return true if the current item changed, false otherwise
     bool DoSetCurrent(int current);
 
+    // flags for DoHandleItemClick
+    enum
+    {
+        ItemClick_Shift = 1,        // item shift-clicked
+        ItemClick_Ctrl  = 2,        //       ctrl
+        ItemClick_Kbd   = 4         // item selected from keyboard
+    };
+
     // common part of keyboard and mouse handling processing code
-    void DoHandleItemClick(int item, bool shiftDown, bool ctrlDown);
+    void DoHandleItemClick(int item, int flags);
 
 private:
-    // the current item or -1
+    // the current item or wxNOT_FOUND
     //
     // if m_selStore == NULL this is also the selected item, otherwise the
     // selections are managed by m_selStore
     int m_current;
 
+    // the anchor of the selection for the multiselection listboxes:
+    // shift-clicking an item extends the selection from m_anchor to the item
+    // clicked, for example
+    //
+    // always wxNOT_FOUND for single selection listboxes
+    int m_anchor;
+
     // the object managing our selected items if not NULL
     wxSelectionStore *m_selStore;
 
     // margins
     wxPoint m_ptMargins;
 
+    // the selection bg colour
+    wxColour m_colBgSel;
+
+
     DECLARE_EVENT_TABLE()
 };