]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/vlbox.h
compilation fix for some build configurations (forward declare wxMenuItem)
[wxWidgets.git] / include / wx / vlbox.h
index 5e09100e7fb83345b7318eeb37a7990d03363046..72c6170bc2aeb215c72a2311ee27e5d87bd8c4c0 100644 (file)
@@ -5,7 +5,7 @@
 // Modified by:
 // Created:     31.05.03
 // RCS-ID:      $Id$
-// Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwindows.org>
+// Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 
@@ -13,8 +13,9 @@
 #define _WX_VLBOX_H_
 
 #include "wx/vscroll.h"         // base class
+#include "wx/bitmap.h"
 
-class WXDLLEXPORT wxSelectionStore;
+class WXDLLIMPEXP_FWD_CORE wxSelectionStore;
 
 #define wxVListBoxNameStr _T("wxVListBox")
 
@@ -74,7 +75,7 @@ public:
     // ---------
 
     // get the number of items in the control
-    size_t GetItemCount() const { return GetLineCount(); }
+    size_t GetItemCount() const { return GetRowCount(); }
 
     // does this control use multiple selection?
     bool HasMultipleSelection() const { return m_selStore != NULL; }
@@ -92,6 +93,9 @@ public:
 
     // 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;
@@ -129,8 +133,8 @@ 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);
+    // this is just a synonym for wxVScrolledWindow::SetRowCount()
+    virtual void SetItemCount(size_t count);
 
     // delete all items from the control
     void Clear() { SetItemCount(0); }
@@ -185,8 +189,21 @@ public:
     // change the background colour of the selected cells
     void SetSelectionBackground(const wxColour& col);
 
+    // refreshes only the selected items
+    void RefreshSelected();
+
+
+    virtual wxVisualAttributes GetDefaultAttributes() const
+    {
+        return GetClassDefaultAttributes(GetWindowVariant());
+    }
+
+    static wxVisualAttributes
+    GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 
 protected:
+       virtual wxBorder GetDefaultBorder() const { return GetDefaultBorderForControl(); }
+
     // the derived class must implement this function to actually draw the item
     // with the given index on the provided DC
     virtual void OnDrawItem(wxDC& dc, const wxRect& rect, size_t n) const = 0;
@@ -202,12 +219,20 @@ protected:
     // 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
+    // we implement OnGetRowHeight() 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
-    virtual wxCoord OnGetLineHeight(size_t line) const;
+    // this function is not supposed to be overridden by the derived classes
+    virtual wxCoord OnGetRowHeight(size_t line) const;
 
 
     // event handlers
@@ -215,7 +240,7 @@ protected:
     void OnKeyDown(wxKeyEvent& event);
     void OnLeftDown(wxMouseEvent& event);
     void OnLeftDClick(wxMouseEvent& event);
-
+    void OnSetOrKillFocus(wxFocusEvent& event);
 
     // common part of all ctors
     void Init();
@@ -267,8 +292,9 @@ private:
     // the selection bg colour
     wxColour m_colBgSel;
 
-
     DECLARE_EVENT_TABLE()
+    DECLARE_NO_COPY_CLASS(wxVListBox)
+    DECLARE_ABSTRACT_CLASS(wxVListBox)
 };
 
 #endif // _WX_VLBOX_H_