// Author: Vadim Zeitlin
// Modified by:
// Created: 31.05.03
-// RCS-ID: $Id$
// Copyright: (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
// Licence: wxWindows licence
///////////////////////////////////////////////////////////////////////////////
#include "wx/vscroll.h" // base class
#include "wx/bitmap.h"
-class WXDLLEXPORT wxSelectionStore;
-
-#define wxVListBoxNameStr _T("wxVListBox")
+class WXDLLIMPEXP_FWD_CORE wxSelectionStore;
+extern WXDLLIMPEXP_DATA_CORE(const char) wxVListBoxNameStr[];
// ----------------------------------------------------------------------------
// wxVListBox
It emits the same events as wxListBox and the same event macros may be used
with it.
*/
-class WXDLLEXPORT wxVListBox : public wxVScrolledWindow
+class WXDLLIMPEXP_CORE wxVListBox : public wxVScrolledWindow
{
public:
// constructors and such
int GetSelection() const
{
wxASSERT_MSG( !HasMultipleSelection(),
- _T("GetSelection() can't be used with wxLB_MULTIPLE") );
+ wxT("GetSelection() can't be used with wxLB_MULTIPLE") );
return m_current;
}
// get the background colour of selected cells
const wxColour& GetSelectionBackground() const { return m_colBgSel; }
+ // get the item rect, returns empty rect if the item is not visible
+ wxRect GetItemRect(size_t n) const;
// operations
// ----------
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;
void OnLeftDown(wxMouseEvent& event);
void OnLeftDClick(wxMouseEvent& event);
void OnSetOrKillFocus(wxFocusEvent& event);
+ void OnSize(wxSizeEvent& event);
// common part of all ctors
void Init();
- // send the wxEVT_COMMAND_LISTBOX_SELECTED event
+ // send the wxEVT_LISTBOX event
void SendSelectedEvent();
+ virtual void InitEvent(wxCommandEvent& event, int n);
// common implementation of SelectAll() and DeselectAll()
bool DoSelectAll(bool select);
// 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
//
wxColour m_colBgSel;
DECLARE_EVENT_TABLE()
- DECLARE_NO_COPY_CLASS(wxVListBox)
+ wxDECLARE_NO_COPY_CLASS(wxVListBox);
DECLARE_ABSTRACT_CLASS(wxVListBox)
};