soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
STreeAdapterBase< T > Class Template Reference

树形适配器基类模板 More...

#include <SAdapterBase.h>

Inheritance diagram for STreeAdapterBase< T >:
TObjRefImpl< TvAdatperImpl< ITvAdapter > > TvAdatperImpl< ITvAdapter >

Classes

struct  ItemInfo
 树节点数据结构 More...
 
class  TreeDataFreer
 树节点数据释放器类 More...
 

Public Types

typedef void(* FunTvItemDataFreer) (T cb)
 数据释放函数类型
 

Public Member Functions

 STreeAdapterBase ()
 构造函数
 
 ~STreeAdapterBase ()
 析构函数
 
ULONG_PTR GetItemDataByIndex (HSTREEITEM hItem, DATA_INDEX idx) const OVERRIDE
 获取hItem中的指定索引的数据
 
void SetItemDataByIndex (HSTREEITEM hItem, DATA_INDEX idx, ULONG_PTR data) OVERRIDE
 保存hItem指定索引的数据
 
HSTREEITEM GetParentItem (HSTREEITEM hItem) const OVERRIDE
 获取父项
 
BOOL HasChildren (HSTREEITEM hItem) const OVERRIDE
 检查是否有子项
 
HSTREEITEM GetFirstChildItem (HSTREEITEM hItem) const OVERRIDE
 获取第一个子项
 
HSTREEITEM GetLastChildItem (HSTREEITEM hItem) const OVERRIDE
 获取最后一个子项
 
HSTREEITEM GetPrevSiblingItem (HSTREEITEM hItem) const OVERRIDE
 获取前一个兄弟项
 
HSTREEITEM GetNextSiblingItem (HSTREEITEM hItem) const OVERRIDE
 获取下一个兄弟项
 
BOOL IsDecendentItem (HSTREEITEM hItem, HSTREEITEM hChild) const OVERRIDE
 检查是否为后代项
 
int getViewType (HSTREEITEM hItem) const OVERRIDE
 获取项视图类型
 
int getViewTypeCount () const OVERRIDE
 获取视图类型数量
 
void getView (HSTREEITEM hItem, SItemPanel *pItem, SXmlNode xmlTemplate)
 获取视图
 
void getView (HSTREEITEM hItem, IWindow *pItem, IXmlNode *pXmlTemplate) OVERRIDE
 获取视图(重载)
 
void getViewDesiredSize (SIZE *ret, HSTREEITEM hItem, SItemPanel *pItem, int wid, int hei)
 获取视图所需大小
 
void getViewDesiredSize (SIZE *ret, HSTREEITEM hItem, IWindow *pItem, int wid, int hei) OVERRIDE
 获取视图所需大小(重载)
 
void InitByTemplate (SXmlNode xmlTemplate)
 通过模板初始化适配器
 
void InitByTemplate (IXmlNode *pXmlTemplate) OVERRIDE
 通过模板初始化适配器(重载)
 
BOOL isViewWidthMatchParent () const OVERRIDE
 检查视图宽度是否匹配父容器
 
void ExpandItem (HSTREEITEM hItem, UINT uCode) OVERRIDE
 展开或折叠项
 
BOOL IsItemExpanded (HSTREEITEM hItem) const OVERRIDE
 检查项是否展开
 
void SetItemExpanded (HSTREEITEM hItem, BOOL bExpanded) OVERRIDE
 设置项展开状态
 
BOOL IsItemVisible (HSTREEITEM hItem) const OVERRIDE
 检查项是否可见
 
HSTREEITEM GetFirstVisibleItem () const OVERRIDE
 获取第一个可见项
 
HSTREEITEM GetLastVisibleItem () const OVERRIDE
 获取最后一个可见项
 
HSTREEITEM GetPrevVisibleItem (HSTREEITEM hItem) const OVERRIDE
 获取前一个可见项
 
HSTREEITEM GetNextVisibleItem (HSTREEITEM hItem) const OVERRIDE
 获取下一个可见项
 
HRESULT QueryInterface (REFGUID id, IObjRef **ppObj) OVERRIDE
 查询接口
 
HSTREEITEM InsertItem (const T &data, HSTREEITEM hParent=STVI_ROOT, HSTREEITEM hInsertAfter=STVI_LAST)
 插入项
 
void DeleteItem (HSTREEITEM hItem, BOOL bNotifyChange=TRUE)
 删除项
 
BOOL DeleteItemEx (HSTREEITEM hItem)
 删除项(扩展)
 
const T & GetItemData (HSTREEITEM hItem) const
 获取项数据
 
void SetItemData (HSTREEITEM hItem, const T &data)
 设置项数据
 
void SetDataFreer (FunTvItemDataFreer freer)
 设置数据释放函数
 
- Public Member Functions inherited from TObjRefImpl< TvAdatperImpl< ITvAdapter > >
 TObjRefImpl ()
 Constructor that initializes the reference count to 1.
 
virtual ~TObjRefImpl ()
 Virtual destructor.
 
long AddRef () override
 Increments the reference count.
 
long Release () override
 Decrements the reference count and deletes the object if the count reaches zero.
 
void OnFinalRelease () override
 Deletes the object.
 
- Public Member Functions inherited from TvAdatperImpl< ITvAdapter >
void notifyBranchChanged (HSTREEITEM hBranch)
 通知所有观察者分支已更改
 
void notifyBranchInvalidated (HSTREEITEM hBranch, bool bInvalidParents=true, bool bInvalidChildren=true)
 通知所有观察者分支已失效
 
void notifyBranchExpandChanged (HSTREEITEM hBranch, BOOL bExpandedOld, BOOL bExpandedNew)
 通知所有观察者分支展开状态已更改
 
void notifyItemBeforeRemove (HSTREEITEM hItem)
 通知所有观察者项将被移除
 
void registerDataSetObserver (ITvDataSetObserver *observer) OVERRIDE
 注册一个数据集观察者
 
void unregisterDataSetObserver (ITvDataSetObserver *observer) OVERRIDE
 注销一个数据集观察者
 

Protected Attributes

CSTree< ItemInfom_tree
 树对象
 
TreeDataFreer m_treeFreer
 树数据释放器
 
ULONG_PTR m_rootUserData [DATA_INDEX_NUMBER]
 根节点用户数据
 
- Protected Attributes inherited from TObjRefImpl< TvAdatperImpl< ITvAdapter > >
LONG m_cRef
 Reference count.
 
- Protected Attributes inherited from TvAdatperImpl< ITvAdapter >
STvObserverMgr m_obzMgr
 观察者管理器
 

Detailed Description

template<typename T>
class STreeAdapterBase< T >

树形适配器基类模板

Template Parameters
T数据类型

Definition at line 624 of file SAdapterBase.h.

Member Typedef Documentation

◆ FunTvItemDataFreer

template<typename T>
typedef void(* STreeAdapterBase< T >::FunTvItemDataFreer) (T cb)

数据释放函数类型

Definition at line 629 of file SAdapterBase.h.

Constructor & Destructor Documentation

◆ STreeAdapterBase()

template<typename T>
STreeAdapterBase< T >::STreeAdapterBase ( )
inline

构造函数

Definition at line 672 of file SAdapterBase.h.

◆ ~STreeAdapterBase()

template<typename T>
STreeAdapterBase< T >::~STreeAdapterBase ( )
inline

析构函数

Definition at line 681 of file SAdapterBase.h.

Member Function Documentation

◆ DeleteItem()

template<typename T>
void STreeAdapterBase< T >::DeleteItem ( HSTREEITEM hItem,
BOOL bNotifyChange = TRUE )
inline

删除项

Parameters
hItem项句柄
bNotifyChange是否通知更改

Definition at line 1071 of file SAdapterBase.h.

◆ DeleteItemEx()

template<typename T>
BOOL STreeAdapterBase< T >::DeleteItemEx ( HSTREEITEM hItem)
inline

删除项(扩展)

Parameters
hItem项句柄
Returns
删除结果

Definition at line 1092 of file SAdapterBase.h.

◆ ExpandItem()

template<typename T>
void STreeAdapterBase< T >::ExpandItem ( HSTREEITEM hItem,
UINT uCode )
inline

展开或折叠项

Parameters
hItem项句柄
uCode展开/折叠代码

Definition at line 906 of file SAdapterBase.h.

◆ GetFirstChildItem()

template<typename T>
HSTREEITEM STreeAdapterBase< T >::GetFirstChildItem ( HSTREEITEM hItem) const
inline

获取第一个子项

Parameters
hItem项句柄
Returns
第一个子项句柄

Definition at line 747 of file SAdapterBase.h.

◆ GetFirstVisibleItem()

template<typename T>
HSTREEITEM STreeAdapterBase< T >::GetFirstVisibleItem ( ) const
inline

获取第一个可见项

Returns
第一个可见项句柄

Definition at line 972 of file SAdapterBase.h.

◆ GetItemData()

template<typename T>
const T & STreeAdapterBase< T >::GetItemData ( HSTREEITEM hItem) const
inline

获取项数据

Parameters
hItem项句柄
Returns
数据对象引用

Definition at line 1102 of file SAdapterBase.h.

◆ GetItemDataByIndex()

template<typename T>
ULONG_PTR STreeAdapterBase< T >::GetItemDataByIndex ( HSTREEITEM hItem,
DATA_INDEX idx ) const
inline

获取hItem中的指定索引的数据

Parameters
hItem项句柄
idx索引
Returns
用户数据

Definition at line 692 of file SAdapterBase.h.

◆ GetLastChildItem()

template<typename T>
HSTREEITEM STreeAdapterBase< T >::GetLastChildItem ( HSTREEITEM hItem) const
inline

获取最后一个子项

Parameters
hItem项句柄
Returns
最后一个子项句柄

Definition at line 758 of file SAdapterBase.h.

◆ GetLastVisibleItem()

template<typename T>
HSTREEITEM STreeAdapterBase< T >::GetLastVisibleItem ( ) const
inline

获取最后一个可见项

Returns
最后一个可见项句柄

Definition at line 981 of file SAdapterBase.h.

◆ GetNextSiblingItem()

template<typename T>
HSTREEITEM STreeAdapterBase< T >::GetNextSiblingItem ( HSTREEITEM hItem) const
inline

获取下一个兄弟项

Parameters
hItem项句柄
Returns
下一个兄弟项句柄

Definition at line 780 of file SAdapterBase.h.

◆ GetNextVisibleItem()

template<typename T>
HSTREEITEM STreeAdapterBase< T >::GetNextVisibleItem ( HSTREEITEM hItem) const
inline

获取下一个可见项

Parameters
hItem项句柄
Returns
下一个可见项句柄

Definition at line 1019 of file SAdapterBase.h.

◆ GetParentItem()

template<typename T>
HSTREEITEM STreeAdapterBase< T >::GetParentItem ( HSTREEITEM hItem) const
inline

获取父项

Parameters
hItem项句柄
Returns
父项句柄

Definition at line 722 of file SAdapterBase.h.

◆ GetPrevSiblingItem()

template<typename T>
HSTREEITEM STreeAdapterBase< T >::GetPrevSiblingItem ( HSTREEITEM hItem) const
inline

获取前一个兄弟项

Parameters
hItem项句柄
Returns
前一个兄弟项句柄

Definition at line 769 of file SAdapterBase.h.

◆ GetPrevVisibleItem()

template<typename T>
HSTREEITEM STreeAdapterBase< T >::GetPrevVisibleItem ( HSTREEITEM hItem) const
inline

获取前一个可见项

Parameters
hItem项句柄
Returns
前一个可见项句柄

Definition at line 1001 of file SAdapterBase.h.

◆ getView() [1/2]

template<typename T>
void STreeAdapterBase< T >::getView ( HSTREEITEM hItem,
IWindow * pItem,
IXmlNode * pXmlTemplate )
inline

获取视图(重载)

Parameters
hItem项句柄
pItem项窗口对象
pXmlTemplateXML模板对象指针

Definition at line 839 of file SAdapterBase.h.

◆ getView() [2/2]

template<typename T>
void STreeAdapterBase< T >::getView ( HSTREEITEM hItem,
SItemPanel * pItem,
SXmlNode xmlTemplate )
inline

获取视图

Parameters
hItem项句柄
pItem项面板对象
xmlTemplateXML模板对象

Definition at line 829 of file SAdapterBase.h.

◆ getViewDesiredSize() [1/2]

template<typename T>
void STreeAdapterBase< T >::getViewDesiredSize ( SIZE * ret,
HSTREEITEM hItem,
IWindow * pItem,
int wid,
int hei )
inline

获取视图所需大小(重载)

Parameters
ret返回的大小对象
hItem项句柄
pItem项窗口对象
wid宽度
hei高度

Definition at line 867 of file SAdapterBase.h.

◆ getViewDesiredSize() [2/2]

template<typename T>
void STreeAdapterBase< T >::getViewDesiredSize ( SIZE * ret,
HSTREEITEM hItem,
SItemPanel * pItem,
int wid,
int hei )
inline

获取视图所需大小

Parameters
ret返回的大小对象
hItem项句柄
pItem项面板对象
wid宽度
hei高度

Definition at line 854 of file SAdapterBase.h.

◆ getViewType()

template<typename T>
int STreeAdapterBase< T >::getViewType ( HSTREEITEM hItem) const
inline

获取项视图类型

Parameters
hItem项句柄
Returns
视图类型

Definition at line 809 of file SAdapterBase.h.

◆ getViewTypeCount()

template<typename T>
int STreeAdapterBase< T >::getViewTypeCount ( ) const
inline

获取视图类型数量

Returns
视图类型数量

Definition at line 818 of file SAdapterBase.h.

◆ HasChildren()

template<typename T>
BOOL STreeAdapterBase< T >::HasChildren ( HSTREEITEM hItem) const
inline

检查是否有子项

Parameters
hItem项句柄
Returns
有子项返回TRUE,否则返回FALSE

Definition at line 737 of file SAdapterBase.h.

◆ InitByTemplate() [1/2]

template<typename T>
void STreeAdapterBase< T >::InitByTemplate ( IXmlNode * pXmlTemplate)
inline

通过模板初始化适配器(重载)

Parameters
pXmlTemplateXML模板对象指针

Definition at line 886 of file SAdapterBase.h.

◆ InitByTemplate() [2/2]

template<typename T>
void STreeAdapterBase< T >::InitByTemplate ( SXmlNode xmlTemplate)
inline

通过模板初始化适配器

Parameters
xmlTemplateXML模板对象

Definition at line 877 of file SAdapterBase.h.

◆ InsertItem()

template<typename T>
HSTREEITEM STreeAdapterBase< T >::InsertItem ( const T & data,
HSTREEITEM hParent = STVI_ROOT,
HSTREEITEM hInsertAfter = STVI_LAST )
inline

插入项

Parameters
data数据对象
hParent父项句柄
hInsertAfter插入位置
Returns
插入的项句柄

Definition at line 1059 of file SAdapterBase.h.

◆ IsDecendentItem()

template<typename T>
BOOL STreeAdapterBase< T >::IsDecendentItem ( HSTREEITEM hItem,
HSTREEITEM hChild ) const
inline

检查是否为后代项

Parameters
hItem父项句柄
hChild子项句柄
Returns
是后代项返回TRUE,否则返回FALSE

Definition at line 792 of file SAdapterBase.h.

◆ IsItemExpanded()

template<typename T>
BOOL STreeAdapterBase< T >::IsItemExpanded ( HSTREEITEM hItem) const
inline

检查项是否展开

Parameters
hItem项句柄
Returns
展开返回TRUE,否则返回FALSE

Definition at line 934 of file SAdapterBase.h.

◆ IsItemVisible()

template<typename T>
BOOL STreeAdapterBase< T >::IsItemVisible ( HSTREEITEM hItem) const
inline

检查项是否可见

Parameters
hItem项句柄
Returns
可见返回TRUE,否则返回FALSE

Definition at line 956 of file SAdapterBase.h.

◆ isViewWidthMatchParent()

template<typename T>
BOOL STreeAdapterBase< T >::isViewWidthMatchParent ( ) const
inline

检查视图宽度是否匹配父容器

Returns
匹配返回TRUE,否则返回FALSE

Definition at line 896 of file SAdapterBase.h.

◆ QueryInterface()

template<typename T>
HRESULT STreeAdapterBase< T >::QueryInterface ( REFGUID id,
IObjRef ** ppObj )
inline

查询接口

Parameters
id接口ID
ppObj接口对象指针
Returns
查询结果

Definition at line 1046 of file SAdapterBase.h.

◆ SetDataFreer()

template<typename T>
void STreeAdapterBase< T >::SetDataFreer ( FunTvItemDataFreer freer)
inline

设置数据释放函数

Parameters
freer数据释放函数

Definition at line 1125 of file SAdapterBase.h.

◆ SetItemData()

template<typename T>
void STreeAdapterBase< T >::SetItemData ( HSTREEITEM hItem,
const T & data )
inline

设置项数据

Parameters
hItem项句柄
data数据对象

Definition at line 1114 of file SAdapterBase.h.

◆ SetItemDataByIndex()

template<typename T>
void STreeAdapterBase< T >::SetItemDataByIndex ( HSTREEITEM hItem,
DATA_INDEX idx,
ULONG_PTR data )
inline

保存hItem指定索引的数据

Parameters
hItem项句柄
idx索引
data数据

Definition at line 706 of file SAdapterBase.h.

◆ SetItemExpanded()

template<typename T>
void STreeAdapterBase< T >::SetItemExpanded ( HSTREEITEM hItem,
BOOL bExpanded )
inline

设置项展开状态

Parameters
hItem项句柄
bExpanded展开状态

Definition at line 946 of file SAdapterBase.h.

Member Data Documentation

◆ m_rootUserData

template<typename T>
ULONG_PTR STreeAdapterBase< T >::m_rootUserData[DATA_INDEX_NUMBER]
protected

根节点用户数据

Definition at line 1133 of file SAdapterBase.h.

◆ m_tree

template<typename T>
CSTree<ItemInfo> STreeAdapterBase< T >::m_tree
protected

树对象

Definition at line 1131 of file SAdapterBase.h.

◆ m_treeFreer

template<typename T>
TreeDataFreer STreeAdapterBase< T >::m_treeFreer
protected

树数据释放器

Definition at line 1132 of file SAdapterBase.h.


The documentation for this class was generated from the following file: