Rewrite wxListCtrl to use QTreeView and a custom model
This notably allows to support wxLC_VIRTUAL style. Also implement support for checkboxes, improve in-place editing and implement many other methods and missing functionality (e.g. send the expected events now). Closes https://github.com/wxWidgets/wxWidgets/pull/1229
This commit is contained in:
committed by
Vadim Zeitlin
parent
95e5ed7395
commit
7454fc151b
@@ -11,7 +11,8 @@
|
|||||||
#include "wx/textctrl.h"
|
#include "wx/textctrl.h"
|
||||||
|
|
||||||
class wxQtListTreeWidget;
|
class wxQtListTreeWidget;
|
||||||
class QTreeWidgetItem;
|
class wxQtListModel;
|
||||||
|
class wxQtVirtualListModel;
|
||||||
|
|
||||||
class WXDLLIMPEXP_FWD_CORE wxImageList;
|
class WXDLLIMPEXP_FWD_CORE wxImageList;
|
||||||
|
|
||||||
@@ -159,6 +160,11 @@ public:
|
|||||||
// list or report view
|
// list or report view
|
||||||
long GetTopItem() const;
|
long GetTopItem() const;
|
||||||
|
|
||||||
|
virtual bool HasCheckBoxes() const wxOVERRIDE;
|
||||||
|
virtual bool EnableCheckBoxes(bool enable = true) wxOVERRIDE;
|
||||||
|
virtual bool IsItemChecked(long item) const wxOVERRIDE;
|
||||||
|
virtual void CheckItem(long item, bool check) wxOVERRIDE;
|
||||||
|
|
||||||
// Add or remove a single window style
|
// Add or remove a single window style
|
||||||
void SetSingleStyle(long style, bool add = true);
|
void SetSingleStyle(long style, bool add = true);
|
||||||
|
|
||||||
@@ -273,16 +279,21 @@ protected:
|
|||||||
// Implement base class pure virtual methods.
|
// Implement base class pure virtual methods.
|
||||||
virtual long DoInsertColumn(long col, const wxListItem& info) wxOVERRIDE;
|
virtual long DoInsertColumn(long col, const wxListItem& info) wxOVERRIDE;
|
||||||
|
|
||||||
QTreeWidgetItem *QtGetItem(int id) const;
|
|
||||||
|
|
||||||
wxImageList * m_imageListNormal; // The image list for normal icons
|
wxImageList * m_imageListNormal; // The image list for normal icons
|
||||||
wxImageList * m_imageListSmall; // The image list for small icons
|
wxImageList * m_imageListSmall; // The image list for small icons
|
||||||
wxImageList * m_imageListState; // The image list state icons (not implemented yet)
|
wxImageList * m_imageListState; // The image list state icons (not implemented yet)
|
||||||
bool m_ownsImageListNormal,
|
bool m_ownsImageListNormal,
|
||||||
m_ownsImageListSmall,
|
m_ownsImageListSmall,
|
||||||
m_ownsImageListState;
|
m_ownsImageListState;
|
||||||
|
bool m_hasCheckBoxes;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
// Allow access to OnGetItemXXX() method from the virtual model class.
|
||||||
|
friend class wxQtVirtualListModel;
|
||||||
|
|
||||||
|
|
||||||
wxQtListTreeWidget *m_qtTreeWidget;
|
wxQtListTreeWidget *m_qtTreeWidget;
|
||||||
|
wxQtListModel *m_model;
|
||||||
|
|
||||||
wxDECLARE_DYNAMIC_CLASS( wxListCtrl );
|
wxDECLARE_DYNAMIC_CLASS( wxListCtrl );
|
||||||
};
|
};
|
||||||
|
1497
src/qt/listctrl.cpp
1497
src/qt/listctrl.cpp
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user