Files
wangchyz 02d1ed8832 1、统一了控件class name和interface name
2、修正了若干bug
2016-03-17 21:17:06 +08:00

144 lines
4.4 KiB
C++

#ifndef __UITREEVIEW_H__
#define __UITREEVIEW_H__
#include <vector>
using namespace std;
#pragma once
namespace DuiLib
{
class CTreeViewUI;
class CCheckBoxUI;
class CLabelUI;
class COptionUI;
class DUILIB_API CTreeNodeUI : public CListContainerElementUI
{
public:
CTreeNodeUI(CTreeNodeUI* _ParentNode = NULL);
~CTreeNodeUI(void);
public:
LPCTSTR GetClass() const;
LPVOID GetInterface(LPCTSTR pstrName);
void DoEvent(TEventUI& event);
void Invalidate();
bool Select(bool bSelect = true, bool bTriggerEvent=true);
bool Add(CControlUI* _pTreeNodeUI);
bool AddAt(CControlUI* pControl, int iIndex);
void SetVisibleTag(bool _IsVisible);
bool GetVisibleTag();
void SetItemText(LPCTSTR pstrValue);
CDuiString GetItemText();
void CheckBoxSelected(bool _Selected);
bool IsCheckBoxSelected() const;
bool IsHasChild() const;
long GetTreeLevel() const;
bool AddChildNode(CTreeNodeUI* _pTreeNodeUI);
bool RemoveAt(CTreeNodeUI* _pTreeNodeUI);
void SetParentNode(CTreeNodeUI* _pParentTreeNode);
CTreeNodeUI* GetParentNode();
long GetCountChild();
void SetTreeView(CTreeViewUI* _CTreeViewUI);
CTreeViewUI* GetTreeView();
CTreeNodeUI* GetChildNode(int _nIndex);
void SetVisibleFolderBtn(bool _IsVisibled);
bool GetVisibleFolderBtn();
void SetVisibleCheckBtn(bool _IsVisibled);
bool GetVisibleCheckBtn();
void SetItemTextColor(DWORD _dwItemTextColor);
DWORD GetItemTextColor() const;
void SetItemHotTextColor(DWORD _dwItemHotTextColor);
DWORD GetItemHotTextColor() const;
void SetSelItemTextColor(DWORD _dwSelItemTextColor);
DWORD GetSelItemTextColor() const;
void SetSelItemHotTextColor(DWORD _dwSelHotItemTextColor);
DWORD GetSelItemHotTextColor() const;
void SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue);
CDuiPtrArray GetTreeNodes();
int GetTreeIndex();
int GetNodeIndex();
private:
CTreeNodeUI* GetLastNode();
CTreeNodeUI* CalLocation(CTreeNodeUI* _pTreeNodeUI);
public:
CHorizontalLayoutUI* GetTreeNodeHoriznotal() const {return pHoriz;};
CCheckBoxUI* GetFolderButton() const {return pFolderButton;};
CLabelUI* GetDottedLine() const {return pDottedLine;};
CCheckBoxUI* GetCheckBox() const {return pCheckBox;};
COptionUI* GetItemButton() const {return pItemButton;};
private:
long m_iTreeLavel;
bool m_bIsVisable;
bool m_bIsCheckBox;
DWORD m_dwItemTextColor;
DWORD m_dwItemHotTextColor;
DWORD m_dwSelItemTextColor;
DWORD m_dwSelItemHotTextColor;
CTreeViewUI* pTreeView;
CHorizontalLayoutUI* pHoriz;
CCheckBoxUI* pFolderButton;
CLabelUI* pDottedLine;
CCheckBoxUI* pCheckBox;
COptionUI* pItemButton;
CTreeNodeUI* pParentTreeNode;
CDuiPtrArray mTreeNodes;
};
class DUILIB_API CTreeViewUI : public CListUI,public INotifyUI
{
public:
CTreeViewUI(void);
~CTreeViewUI(void);
public:
virtual LPCTSTR GetClass() const;
virtual LPVOID GetInterface(LPCTSTR pstrName);
virtual bool Add(CControlUI* pControl);
virtual bool AddAt(CControlUI* pControl, int iIndex);
virtual bool Remove(CControlUI* pControl, bool bDoNotDestroy=false);
virtual bool RemoveAt(int iIndex, bool bDoNotDestroy=false);
virtual void RemoveAll();
long AddAt(CTreeNodeUI* pControl, int iIndex);
bool AddAt(CTreeNodeUI* pControl,CTreeNodeUI* _IndexNode);
virtual bool OnCheckBoxChanged(void* param);
virtual bool OnFolderChanged(void* param);
virtual bool OnDBClickItem(void* param);
virtual bool SetItemCheckBox(bool _Selected,CTreeNodeUI* _TreeNode = NULL);
virtual void SetItemExpand(bool _Expanded,CTreeNodeUI* _TreeNode = NULL);
virtual void Notify(TNotifyUI& msg);
virtual void SetVisibleFolderBtn(bool _IsVisibled);
virtual bool GetVisibleFolderBtn();
virtual void SetVisibleCheckBtn(bool _IsVisibled);
virtual bool GetVisibleCheckBtn();
virtual void SetItemMinWidth(UINT _ItemMinWidth);
virtual UINT GetItemMinWidth();
virtual void SetItemTextColor(DWORD _dwItemTextColor);
virtual void SetItemHotTextColor(DWORD _dwItemHotTextColor);
virtual void SetSelItemTextColor(DWORD _dwSelItemTextColor);
virtual void SetSelItemHotTextColor(DWORD _dwSelHotItemTextColor);
virtual void SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue);
private:
UINT m_uItemMinWidth;
bool m_bVisibleFolderBtn;
bool m_bVisibleCheckBtn;
};
}
#endif // __UITREEVIEW_H__