X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/5712a1f5fb57086dbf42d5c1c236bb1eb9bda857..64c38b4be828b7b18f7d51f80eb9848f1cccf40e:/include/wx/generic/listctrl.h diff --git a/include/wx/generic/listctrl.h b/include/wx/generic/listctrl.h index 4ad98833eb..47e28583d7 100644 --- a/include/wx/generic/listctrl.h +++ b/include/wx/generic/listctrl.h @@ -11,6 +11,7 @@ #ifndef _WX_GENERIC_LISTCTRL_H_ #define _WX_GENERIC_LISTCTRL_H_ +#include "wx/scrolwin.h" #include "wx/textctrl.h" class WXDLLIMPEXP_FWD_CORE wxImageList; @@ -35,22 +36,31 @@ class WXDLLIMPEXP_FWD_CORE wxListMainWindow; // wxListCtrl //----------------------------------------------------------------------------- -class WXDLLIMPEXP_CORE wxGenericListCtrl: public wxControl +class WXDLLIMPEXP_CORE wxGenericListCtrl: public wxControl, + public wxScrollHelper { public: - wxGenericListCtrl(); + wxGenericListCtrl() : wxScrollHelper(this) + { + Init(); + } + wxGenericListCtrl( wxWindow *parent, wxWindowID winid = wxID_ANY, const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize, long style = wxLC_ICON, const wxValidator& validator = wxDefaultValidator, - const wxString &name = wxListCtrlNameStr) + const wxString &name = wxListCtrlNameStr) + : wxScrollHelper(this) { Create(parent, winid, pos, size, style, validator, name); } + virtual ~wxGenericListCtrl(); + + void Init(); bool Create( wxWindow *parent, wxWindowID winid = wxID_ANY, @@ -169,7 +179,6 @@ public: // ------------------------------- void OnInternalIdle( ); - void OnSize( wxSizeEvent &event ); // We have to hand down a few functions virtual void Refresh(bool eraseBackground = true, @@ -182,9 +191,6 @@ public: virtual bool SetFont( const wxFont &font ); virtual bool SetCursor( const wxCursor &cursor ); - virtual int GetScrollPos(int orient) const; - virtual void SetScrollPos(int orient, int pos, bool refresh = true); - #if wxUSE_DRAG_AND_DROP virtual void SetDropTarget( wxDropTarget *dropTarget ); virtual wxDropTarget *GetDropTarget() const; @@ -233,16 +239,21 @@ protected: // it calls our OnGetXXX() functions friend class WXDLLIMPEXP_FWD_CORE wxListMainWindow; + virtual wxBorder GetDefaultBorder() const; + private: - // create the header window - void CreateHeaderWindow(); + void CreateOrDestroyHeaderWindowAsNeeded(); + void OnScroll( wxScrollWinEvent& event ); + void OnSize( wxSizeEvent &event ); + virtual wxSize GetSizeAvailableForScrollTarget(const wxSize& size); - // calculate and set height of the header - void CalculateAndSetHeaderHeight(); + // we need to return a special WM_GETDLGCODE value to process just the + // arrows but let the other navigation characters through +#ifdef __WXMSW__ + virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam); +#endif // __WXMSW__ - // reposition the header and the main window in the report view depending - // on whether it should be shown or not - void ResizeReportView(bool showHeader); + WX_FORWARD_TO_SCROLL_HELPER() DECLARE_EVENT_TABLE() DECLARE_DYNAMIC_CLASS(wxGenericListCtrl)