#ifndef _WX_GENERIC_LISTCTRL_H_
#define _WX_GENERIC_LISTCTRL_H_
+#include "wx/scrolwin.h"
#include "wx/textctrl.h"
class WXDLLIMPEXP_FWD_CORE wxImageList;
class WXDLLIMPEXP_FWD_CORE wxDropTarget;
#endif
-// ----------------------------------------------------------------------------
-// constants
-// ----------------------------------------------------------------------------
-
-
//-----------------------------------------------------------------------------
// internal classes
//-----------------------------------------------------------------------------
// 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,
long style = wxLC_ICON,
const wxValidator& validator = wxDefaultValidator,
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,
const wxPoint &pos = wxDefaultPosition,
long InsertColumn( long col, const wxString& heading,
int format = wxLIST_FORMAT_LEFT, int width = -1 );
bool ScrollList( int dx, int dy );
- bool SortItems( wxListCtrlCompare fn, long data );
+ bool SortItems( wxListCtrlCompare fn, wxIntPtr data );
bool Update( long item );
// Must provide overload to avoid hiding it (and warnings about it)
virtual void Update() { wxControl::Update(); }
// -------------------------------
void OnInternalIdle( );
- void OnSize( wxSizeEvent &event );
// We have to hand down a few functions
virtual void Refresh(bool eraseBackground = true,
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;
// 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
+#if defined(__WXMSW__) && !defined(__WXWINCE__) && !defined(__WXUNIVERSAL__)
+ 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)
: wxGenericListCtrl(parent, winid, pos, size, style, validator, name)
{
}
-
+
};
#endif // !__WXMSW__ || __WXUNIVERSAL__