UITreeView.h 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. #ifndef __UITREEVIEW_H__
  2. #define __UITREEVIEW_H__
  3. #include <vector>
  4. using namespace std;
  5. #pragma once
  6. namespace DuiLib
  7. {
  8. class CTreeViewUI;
  9. class CCheckBoxUI;
  10. class CLabelUI;
  11. class COptionUI;
  12. class DUILIB_API CTreeNodeUI : public CListContainerElementUI
  13. {
  14. public:
  15. CTreeNodeUI(CTreeNodeUI* _ParentNode = NULL);
  16. ~CTreeNodeUI(void);
  17. public:
  18. LPCTSTR GetClass() const;
  19. LPVOID GetInterface(LPCTSTR pstrName);
  20. void DoEvent(TEventUI& event);
  21. void Invalidate();
  22. bool Select(bool bSelect = true, bool bTriggerEvent=true);
  23. bool Add(CControlUI* _pTreeNodeUI);
  24. bool AddAt(CControlUI* pControl, int iIndex);
  25. void SetVisibleTag(bool _IsVisible);
  26. bool GetVisibleTag();
  27. void SetItemText(LPCTSTR pstrValue);
  28. CDuiString GetItemText();
  29. void CheckBoxSelected(bool _Selected);
  30. bool IsCheckBoxSelected() const;
  31. bool IsHasChild() const;
  32. long GetTreeLevel() const;
  33. bool AddChildNode(CTreeNodeUI* _pTreeNodeUI);
  34. bool RemoveAt(CTreeNodeUI* _pTreeNodeUI);
  35. void SetParentNode(CTreeNodeUI* _pParentTreeNode);
  36. CTreeNodeUI* GetParentNode();
  37. long GetCountChild();
  38. void SetTreeView(CTreeViewUI* _CTreeViewUI);
  39. CTreeViewUI* GetTreeView();
  40. CTreeNodeUI* GetChildNode(int _nIndex);
  41. void SetVisibleFolderBtn(bool _IsVisibled);
  42. bool GetVisibleFolderBtn();
  43. void SetVisibleCheckBtn(bool _IsVisibled);
  44. bool GetVisibleCheckBtn();
  45. void SetItemTextColor(DWORD _dwItemTextColor);
  46. DWORD GetItemTextColor() const;
  47. void SetItemHotTextColor(DWORD _dwItemHotTextColor);
  48. DWORD GetItemHotTextColor() const;
  49. void SetSelItemTextColor(DWORD _dwSelItemTextColor);
  50. DWORD GetSelItemTextColor() const;
  51. void SetSelItemHotTextColor(DWORD _dwSelHotItemTextColor);
  52. DWORD GetSelItemHotTextColor() const;
  53. void SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue);
  54. CDuiPtrArray GetTreeNodes();
  55. int GetTreeIndex();
  56. int GetNodeIndex();
  57. private:
  58. CTreeNodeUI* GetLastNode();
  59. CTreeNodeUI* CalLocation(CTreeNodeUI* _pTreeNodeUI);
  60. public:
  61. CHorizontalLayoutUI* GetTreeNodeHoriznotal() const {return pHoriz;};
  62. CCheckBoxUI* GetFolderButton() const {return pFolderButton;};
  63. CLabelUI* GetDottedLine() const {return pDottedLine;};
  64. CCheckBoxUI* GetCheckBox() const {return pCheckBox;};
  65. COptionUI* GetItemButton() const {return pItemButton;};
  66. private:
  67. long m_iTreeLavel;
  68. bool m_bIsVisable;
  69. bool m_bIsCheckBox;
  70. DWORD m_dwItemTextColor;
  71. DWORD m_dwItemHotTextColor;
  72. DWORD m_dwSelItemTextColor;
  73. DWORD m_dwSelItemHotTextColor;
  74. CTreeViewUI* pTreeView;
  75. CHorizontalLayoutUI* pHoriz;
  76. CCheckBoxUI* pFolderButton;
  77. CLabelUI* pDottedLine;
  78. CCheckBoxUI* pCheckBox;
  79. COptionUI* pItemButton;
  80. CTreeNodeUI* pParentTreeNode;
  81. CDuiPtrArray mTreeNodes;
  82. };
  83. class DUILIB_API CTreeViewUI : public CListUI,public INotifyUI
  84. {
  85. public:
  86. CTreeViewUI(void);
  87. ~CTreeViewUI(void);
  88. public:
  89. virtual LPCTSTR GetClass() const;
  90. virtual LPVOID GetInterface(LPCTSTR pstrName);
  91. virtual bool Add(CControlUI* pControl);
  92. virtual bool AddAt(CControlUI* pControl, int iIndex);
  93. virtual bool Remove(CControlUI* pControl, bool bDoNotDestroy=false);
  94. virtual bool RemoveAt(int iIndex, bool bDoNotDestroy=false);
  95. virtual void RemoveAll();
  96. long AddAt(CTreeNodeUI* pControl, int iIndex);
  97. bool AddAt(CTreeNodeUI* pControl,CTreeNodeUI* _IndexNode);
  98. virtual bool OnCheckBoxChanged(void* param);
  99. virtual bool OnFolderChanged(void* param);
  100. virtual bool OnDBClickItem(void* param);
  101. virtual bool SetItemCheckBox(bool _Selected,CTreeNodeUI* _TreeNode = NULL);
  102. virtual void SetItemExpand(bool _Expanded,CTreeNodeUI* _TreeNode = NULL);
  103. virtual void Notify(TNotifyUI& msg);
  104. virtual void SetVisibleFolderBtn(bool _IsVisibled);
  105. virtual bool GetVisibleFolderBtn();
  106. virtual void SetVisibleCheckBtn(bool _IsVisibled);
  107. virtual bool GetVisibleCheckBtn();
  108. virtual void SetItemMinWidth(UINT _ItemMinWidth);
  109. virtual UINT GetItemMinWidth();
  110. virtual void SetItemTextColor(DWORD _dwItemTextColor);
  111. virtual void SetItemHotTextColor(DWORD _dwItemHotTextColor);
  112. virtual void SetSelItemTextColor(DWORD _dwSelItemTextColor);
  113. virtual void SetSelItemHotTextColor(DWORD _dwSelHotItemTextColor);
  114. virtual void SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue);
  115. private:
  116. UINT m_uItemMinWidth;
  117. bool m_bVisibleFolderBtn;
  118. bool m_bVisibleCheckBtn;
  119. };
  120. }
  121. #endif // __UITREEVIEW_H__