UITreeView.h 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  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 UILIB_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. bool Remove(CControlUI* pControl);
  26. void SetVisibleTag(bool _IsVisible);
  27. bool GetVisibleTag();
  28. void SetItemText(LPCTSTR pstrValue);
  29. CDuiString GetItemText();
  30. void CheckBoxSelected(bool _Selected);
  31. bool IsCheckBoxSelected() const;
  32. bool IsHasChild() const;
  33. long GetTreeLevel() const;
  34. bool AddChildNode(CTreeNodeUI* _pTreeNodeUI);
  35. bool RemoveAt(CTreeNodeUI* _pTreeNodeUI);
  36. void SetParentNode(CTreeNodeUI* _pParentTreeNode);
  37. CTreeNodeUI* GetParentNode();
  38. long GetCountChild();
  39. void SetTreeView(CTreeViewUI* _CTreeViewUI);
  40. CTreeViewUI* GetTreeView();
  41. CTreeNodeUI* GetChildNode(int _nIndex);
  42. void SetVisibleFolderBtn(bool _IsVisibled);
  43. bool GetVisibleFolderBtn();
  44. void SetVisibleCheckBtn(bool _IsVisibled);
  45. bool GetVisibleCheckBtn();
  46. void SetItemTextColor(DWORD _dwItemTextColor);
  47. DWORD GetItemTextColor() const;
  48. void SetItemHotTextColor(DWORD _dwItemHotTextColor);
  49. DWORD GetItemHotTextColor() const;
  50. void SetSelItemTextColor(DWORD _dwSelItemTextColor);
  51. DWORD GetSelItemTextColor() const;
  52. void SetSelItemHotTextColor(DWORD _dwSelHotItemTextColor);
  53. DWORD GetSelItemHotTextColor() const;
  54. void SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue);
  55. CStdPtrArray GetTreeNodes();
  56. int GetTreeIndex();
  57. int GetNodeIndex();
  58. private:
  59. CTreeNodeUI* GetLastNode();
  60. CTreeNodeUI* CalLocation(CTreeNodeUI* _pTreeNodeUI);
  61. public:
  62. CHorizontalLayoutUI* GetTreeNodeHoriznotal() const {return pHoriz;};
  63. CCheckBoxUI* GetFolderButton() const {return pFolderButton;};
  64. CLabelUI* GetDottedLine() const {return pDottedLine;};
  65. CCheckBoxUI* GetCheckBox() const {return pCheckBox;};
  66. COptionUI* GetItemButton() const {return pItemButton;};
  67. private:
  68. long m_iTreeLavel;
  69. bool m_bIsVisable;
  70. bool m_bIsCheckBox;
  71. DWORD m_dwItemTextColor;
  72. DWORD m_dwItemHotTextColor;
  73. DWORD m_dwSelItemTextColor;
  74. DWORD m_dwSelItemHotTextColor;
  75. CTreeViewUI* pTreeView;
  76. CHorizontalLayoutUI* pHoriz;
  77. CCheckBoxUI* pFolderButton;
  78. CLabelUI* pDottedLine;
  79. CCheckBoxUI* pCheckBox;
  80. COptionUI* pItemButton;
  81. CTreeNodeUI* pParentTreeNode;
  82. CStdPtrArray mTreeNodes;
  83. };
  84. class UILIB_API CTreeViewUI : public CListUI,public INotifyUI
  85. {
  86. public:
  87. CTreeViewUI(void);
  88. ~CTreeViewUI(void);
  89. public:
  90. virtual LPCTSTR GetClass() const;
  91. virtual LPVOID GetInterface(LPCTSTR pstrName);
  92. virtual bool Add(CTreeNodeUI* pControl );
  93. virtual long AddAt(CTreeNodeUI* pControl, int iIndex );
  94. virtual bool AddAt(CTreeNodeUI* pControl,CTreeNodeUI* _IndexNode);
  95. virtual bool Remove(CTreeNodeUI* pControl);
  96. virtual bool RemoveAt(int iIndex);
  97. virtual void RemoveAll();
  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 CDuiString GetItemText (int iIndex) const;
  115. virtual void SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue);
  116. private:
  117. UINT m_uItemMinWidth;
  118. bool m_bVisibleFolderBtn;
  119. bool m_bVisibleCheckBtn;
  120. };
  121. }
  122. #endif // UITreeView_h__