]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/vlbox.h
Don't define __STRICT_ANSI__, we should build both with and without it.
[wxWidgets.git] / include / wx / vlbox.h
index f5ce8b88c548ff75ac3245b7887743cf70c6d18d..19811105097af8fc0c43f468ce150b95f9c4f4ef 100644 (file)
@@ -4,7 +4,6 @@
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     31.05.03
 // Author:      Vadim Zeitlin
 // Modified by:
 // Created:     31.05.03
-// RCS-ID:      $Id$
 // Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
 // Copyright:   (c) 2003 Vadim Zeitlin <vadim@wxwidgets.org>
 // Licence:     wxWindows licence
 ///////////////////////////////////////////////////////////////////////////////
@@ -15,9 +14,8 @@
 #include "wx/vscroll.h"         // base class
 #include "wx/bitmap.h"
 
 #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
 
 // ----------------------------------------------------------------------------
 // wxVListBox
@@ -32,7 +30,7 @@ class WXDLLEXPORT wxSelectionStore;
     It emits the same events as wxListBox and the same event macros may be used
     with it.
  */
     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
 {
 public:
     // constructors and such
@@ -86,7 +84,7 @@ public:
     int GetSelection() const
     {
         wxASSERT_MSG( !HasMultipleSelection(),
     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;
     }
 
         return m_current;
     }
@@ -127,6 +125,8 @@ public:
     // get the background colour of selected cells
     const wxColour& GetSelectionBackground() const { return m_colBgSel; }
 
     // 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
     // ----------
 
     // operations
     // ----------
@@ -202,6 +202,8 @@ public:
     GetClassDefaultAttributes(wxWindowVariant variant = wxWINDOW_VARIANT_NORMAL);
 
 protected:
     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;
     // 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 +241,14 @@ protected:
     void OnLeftDown(wxMouseEvent& event);
     void OnLeftDClick(wxMouseEvent& event);
     void OnSetOrKillFocus(wxFocusEvent& event);
     void OnLeftDown(wxMouseEvent& event);
     void OnLeftDClick(wxMouseEvent& event);
     void OnSetOrKillFocus(wxFocusEvent& event);
+    void OnSize(wxSizeEvent& event);
 
     // common part of all ctors
     void Init();
 
 
     // common part of all ctors
     void Init();
 
-    // send the wxEVT_COMMAND_LISTBOX_SELECTED event
+    // send the wxEVT_LISTBOX event
     void SendSelectedEvent();
     void SendSelectedEvent();
+    virtual void InitEvent(wxCommandEvent& event, int n);
 
     // common implementation of SelectAll() and DeselectAll()
     bool DoSelectAll(bool select);
 
     // common implementation of SelectAll() and DeselectAll()
     bool DoSelectAll(bool select);
@@ -267,6 +271,14 @@ protected:
     // common part of keyboard and mouse handling processing code
     void DoHandleItemClick(int item, int flags);
 
     // 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
     //
 private:
     // the current item or wxNOT_FOUND
     //
@@ -291,7 +303,7 @@ private:
     wxColour m_colBgSel;
 
     DECLARE_EVENT_TABLE()
     wxColour m_colBgSel;
 
     DECLARE_EVENT_TABLE()
-    DECLARE_NO_COPY_CLASS(wxVListBox)
+    wxDECLARE_NO_COPY_CLASS(wxVListBox);
     DECLARE_ABSTRACT_CLASS(wxVListBox)
 };
 
     DECLARE_ABSTRACT_CLASS(wxVListBox)
 };