X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b5dbe15d0bacde245539f54c4d97af6b4696f01f..e276acb530f41f0b87c4576c0215201a8a767dff:/include/wx/vlbox.h?ds=sidebyside diff --git a/include/wx/vlbox.h b/include/wx/vlbox.h index 62c145e4e2..9556033827 100644 --- a/include/wx/vlbox.h +++ b/include/wx/vlbox.h @@ -16,8 +16,7 @@ #include "wx/bitmap.h" class WXDLLIMPEXP_FWD_CORE wxSelectionStore; - -#define wxVListBoxNameStr _T("wxVListBox") +extern WXDLLIMPEXP_DATA_CORE(const char) wxVListBoxNameStr[]; // ---------------------------------------------------------------------------- // wxVListBox @@ -32,7 +31,7 @@ class WXDLLIMPEXP_FWD_CORE wxSelectionStore; 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 @@ -127,6 +126,8 @@ public: // 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 // ---------- @@ -202,6 +203,8 @@ public: 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; @@ -239,12 +242,14 @@ protected: 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 void SendSelectedEvent(); + virtual void InitEvent(wxCommandEvent& event, int n); // common implementation of SelectAll() and DeselectAll() bool DoSelectAll(bool select); @@ -267,6 +272,14 @@ protected: // 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 // @@ -291,7 +304,7 @@ private: wxColour m_colBgSel; DECLARE_EVENT_TABLE() - DECLARE_NO_COPY_CLASS(wxVListBox) + wxDECLARE_NO_COPY_CLASS(wxVListBox); DECLARE_ABSTRACT_CLASS(wxVListBox) };