YSTest  PreAlpha_b400_20130424
The YSLib Test Project
 全部  命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义  
WidgetIteration.h 文件参考

部件迭代接口。 更多...

#include "ywidget.h"
WidgetIteration.h 的引用(Include)关系图:
此图展示该文件直接或间接的被哪些文件引用了:

浏览源代码.

命名空间

namespace  YSLib
 
namespace  YSLib::UI
 

宏定义

#define DefSubscriptor(_q, _type,...)
 成员下标访问操作。
 
#define DefSubscriptorBase(_q, _type, _tBase, _vBaseN,...)
 基于基类的成员下标访问操作。
 
#define DefWidgetSubscriptor(...)
 部件成员下标访问操作。
 
#define DefWidgetSubscriptorBase(_tBase,...)
 基于基类的部件成员下标访问操作。
 
#define DefWidgetBegin(_tIter)
 使用指定部件引用和索引定义迭代器起始。
 
#define DefWidgetEnd(_tIter)
 使用指定部件引用和索引定义迭代器结束。
 
#define DefWidgetChildrenGetter
 定义部件成员迭代器范围操作。
 
#define DefWidgetMemberIterationOperations(_tIter)
 定义部件成员迭代器起始、终止和范围操作。
 
#define DefWidgetMemberIteration(...)
 定义部件成员下标及部件成员迭代器起始、终止和范围操作。
 
#define DefWidgetMemberIterationBase(_tBase,...)
 定义基于基类的部件成员下标及部件成员迭代器起始、终止和范围操作。
 

详细描述

部件迭代接口。

版本
r173
作者
FrankHB frank.nosp@m.hb19.nosp@m.89@gm.nosp@m.ail..nosp@m.com
自从
build 356
创建时间:
2012-11-25 16:36:34 +0800
修改时间:
2013-03-13 13:06 +0800
文本编码:
UTF-8
模块名称:
YSLib::UI::WidgetIteration

在文件 WidgetIteration.h 中定义.

宏定义说明

#define DefSubscriptor (   _q,
  _type,
  ... 
)
值:
_type& \
operator[](size_t idx) _q \
{ \
return std::initializer_list<std::reference_wrapper<_type>> \
{__VA_ARGS__}.begin()[idx]; \
}

成员下标访问操作。

自从
build 356

在文件 WidgetIteration.h40 行定义.

#define DefSubscriptorBase (   _q,
  _type,
  _tBase,
  _vBaseN,
  ... 
)
值:
_type& \
operator[](size_t idx) _q \
{ \
return idx < _vBaseN ? _tBase::operator[](idx) \
: std::initializer_list<std::reference_wrapper<_type>> \
{__VA_ARGS__}.begin()[idx - _vBaseN].get(); \
}

基于基类的成员下标访问操作。

自从
build 357

在文件 WidgetIteration.h52 行定义.

#define DefWidgetBegin (   _tIter)
值:
_tIter \
GetBegin() \
{ \
return _tIter(*this, 0); \
}

使用指定部件引用和索引定义迭代器起始。

自从
build 356

在文件 WidgetIteration.h90 行定义.

#define DefWidgetChildrenGetter
值:
DefGetter(override, WidgetRange, Children, \
WidgetRange(GetBegin(), GetEnd()))

定义部件成员迭代器范围操作。

自从
build 357

使用 GetBegin() 和 GetEnd() 实现 GetChildren() 。

在文件 WidgetIteration.h115 行定义.

#define DefWidgetEnd (   _tIter)
值:
_tIter \
GetEnd() \
{ \
return _tIter(*this, GetChildrenCount()); \
}

使用指定部件引用和索引定义迭代器结束。

自从
build 356

在文件 WidgetIteration.h101 行定义.

#define DefWidgetMemberIteration (   ...)
值:
DefWidgetSubscriptor(__VA_ARGS__)

定义部件成员下标及部件成员迭代器起始、终止和范围操作。

自从
build 356

在文件 WidgetIteration.h134 行定义.

#define DefWidgetMemberIterationBase (   _tBase,
  ... 
)
值:
DefWidgetSubscriptorBase(_tBase, __VA_ARGS__)

定义基于基类的部件成员下标及部件成员迭代器起始、终止和范围操作。

自从
build 357

在文件 WidgetIteration.h142 行定义.

#define DefWidgetMemberIterationOperations (   _tIter)
值:
DefWidgetBegin(_tIter) \
DefWidgetEnd(_tIter) \
DefWidgetChildrenGetter

定义部件成员迭代器起始、终止和范围操作。

自从
build 356

在文件 WidgetIteration.h124 行定义.

#define DefWidgetSubscriptor (   ...)
值:
DefSubscriptor(ynoexcept, IWidget, __VA_ARGS__) \
DefGetter(const ynothrow, size_t, ChildrenCount, \
ystdex::sizeof_params(__VA_ARGS__))

部件成员下标访问操作。

自从
build 356

在文件 WidgetIteration.h69 行定义.

#define DefWidgetSubscriptorBase (   _tBase,
  ... 
)
值:
DefSubscriptorBase(ynoexcept, IWidget, _tBase, _tBase::GetChildrenCount(), \
__VA_ARGS__) \
DefGetter(const ynothrow, size_t, ChildrenCount, \
_tBase::GetChildrenCount() + ystdex::sizeof_params(__VA_ARGS__))

基于基类的部件成员下标访问操作。

自从
build 357

在文件 WidgetIteration.h79 行定义.