#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")
// ---------
// 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; }
// set the number of items to be shown in the control
//
- // this is just a synonym for wxVScrolledWindow::SetLineCount()
+ // this is just a synonym for wxVScrolledWindow::SetRowCount()
virtual void SetItemCount(size_t count);
// delete all items from the control
// change the background colour of the selected cells
void SetSelectionBackground(const wxColour& col);
+ // refreshes only the selected items
+ void RefreshSelected();
- virtual void ApplyParentThemeBackground(const wxColour& WXUNUSED(bg))
- { /* do nothing */ }
-
virtual wxVisualAttributes GetDefaultAttributes() const
{
return GetClassDefaultAttributes(GetWindowVariant());
static wxVisualAttributes
GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
-
+
protected:
+ virtual wxBorder GetDefaultBorder() const { return wxBORDER_THEME; }
+
// 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;
// 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 supposed to be overridden by the derived classes
- virtual wxCoord OnGetLineHeight(size_t line) const;
+ virtual wxCoord OnGetRowHeight(size_t line) const;
// event handlers
void OnKeyDown(wxKeyEvent& event);
void OnLeftDown(wxMouseEvent& event);
void OnLeftDClick(wxMouseEvent& event);
-
+ void OnSetOrKillFocus(wxFocusEvent& event);
// common part of all ctors
void Init();
// common part of keyboard and mouse handling processing code
void DoHandleItemClick(int item, int flags);
+ // paint the background of the given item using the provided colour if it's
+ // valid, otherwise just return false and do nothing (this is used by
+ // OnDrawBackground())
+ bool DoDrawSolidBackground(const wxColour& col,
+ wxDC& dc,
+ const wxRect& rect,
+ size_t n) const;
+
private:
// the current item or wxNOT_FOUND
//
// the selection bg colour
wxColour m_colBgSel;
-
DECLARE_EVENT_TABLE()
DECLARE_NO_COPY_CLASS(wxVListBox)
DECLARE_ABSTRACT_CLASS(wxVListBox)