Umasoft
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
TreeView.h
1 //
2 // TreeView.h
3 //
4 // Copyright (c) 2001 Virtual Terrain Project
5 // Free for all uses, see license.txt for details.
6 //
7 
8 #include "wx/treectrl.h"
9 #include "wx/imaglist.h"
10 #include "wx/image.h"
11 
12 class vtFrame;
13 class vtItem;
14 class vtModel;
15 
16 class MyTreeItemData : public wxTreeItemData
17 {
18 public:
19  MyTreeItemData(vtModel *pModel) { m_pModel = pModel; m_pItem = NULL; }
20  MyTreeItemData(vtItem *pItem) { m_pModel = NULL; m_pItem = pItem; }
21  vtItem *m_pItem;
22  vtModel *m_pModel;
23 };
24 
25 class MyTreeCtrl : public wxTreeCtrl
26 {
27 public:
28  enum
29  {
30  TreeCtrlIcon_Content,
31  TreeCtrlIcon_Item,
32  TreeCtrlIcon_ItemSelected,
33  TreeCtrlIcon_Model,
34  TreeCtrlIcon_ModelSelected
35  };
36 
37  MyTreeCtrl() { }
38  MyTreeCtrl(wxWindow *parent, const wxWindowID id,
39  const wxPoint& pos, const wxSize& size,
40  long style);
41  virtual ~MyTreeCtrl();
42 
43  void OnBeginDrag(wxTreeEvent& event);
44  void OnBeginRDrag(wxTreeEvent& event);
45  void OnEndDrag(wxTreeEvent& event);
46  void OnBeginLabelEdit(wxTreeEvent& event);
47  void OnEndLabelEdit(wxTreeEvent& event);
48  void OnDeleteItem(wxTreeEvent& event);
49  void OnGetInfo(wxTreeEvent& event);
50  void OnSetInfo(wxTreeEvent& event);
51  void OnItemExpanded(wxTreeEvent& event);
52  void OnItemExpanding(wxTreeEvent& event);
53  void OnItemCollapsed(wxTreeEvent& event);
54  void OnItemCollapsing(wxTreeEvent& event);
55  void OnSelChanged(wxTreeEvent& event);
56  void OnSelChanging(wxTreeEvent& event);
57  void OnTreeKeyDown(wxTreeEvent& event);
58  void OnItemActivated(wxTreeEvent& event);
59  void OnRMouseDClick(wxMouseEvent& event);
60 
61  void CreateImageList(int size = 16);
62 
63  wxTreeItemId AddRootItem(int image, const char *text);
64  void RefreshTreeItems(vtFrame *pFrame);
65  void RefreshTreeStatus(vtFrame *pFrame);
66 
67  void DoEnsureVisible() { EnsureVisible(m_lastItem); }
68 
69  void DoToggleIcon(const wxTreeItemId& item);
70 
71 protected:
72 
73 private:
74  wxImageList *m_imageListNormal;
75  wxTreeItemId m_lastItem; // for OnEnsureVisible()
76  bool m_bUpdating;
77 
78  DECLARE_EVENT_TABLE()
79 };
80