19 template <
typename TOwner,
typename TDelegate>
34 TDelegate &(*_accessor)(
TOwner *);
57 template <TDelegate (TOwner::*accessor)()>
68 template <TDelegate (TOwner::*accessor)() const>
79 template <TDelegate TOwner::*field>
91 template <
typename TDelegate>
101 TDelegate &(*_accessor)();
127 template <
typename TRet,
typename... Args>
141 static constexpr std::ptrdiff_t _STATICOFFSET =
142 (std::numeric_limits<std::ptrdiff_t>::max)();
160 template <
typename TOwner>
194 template <
typename T>
196 ->
typename std::enable_if<_DelegateCanAddSubtract<TDelegate, T>::value>::type
198 this->GetDelegate() += std::forward<T>(
handler);
205 template <
typename T>
207 ->
typename std::enable_if<_DelegateCanAddSubtract<TDelegate, T>::value>::type
209 this->GetDelegate() -= std::forward<T>(
handler);
216 template <
typename TOwner>
234 std::ptrdiff_t _offset;
251 return _offset == _STATICOFFSET;
258 void SetOwner(
void *owner)
noexcept
260 if (owner ==
nullptr) {
261 _offset = _STATICOFFSET;
263 _offset =
reinterpret_cast<uint8_t *
>(owner) -
reinterpret_cast<uint8_t *
>(
this);
270 void *GetOwner() const noexcept
275 return const_cast<uint8_t *
>(
reinterpret_cast<const uint8_t *
>(
this)) + _offset;
282 TDelegate &GetDelegate()
const
284 return _extractor(GetOwner(), _accessor);
299 template <
typename TSender,
typename TEventArgs = EventArgs>
委托类,类似于C::中的委托,支持存储和调用任意可调用对象
Definition Delegate.h:407
auto operator+=(T &&handler) const -> typename std::enable_if< _DelegateCanAddSubtract< TDelegate, T >::value >::type
添加事件处理程序
Definition Event.h:195
Event(const StaticEventInitializer< TDelegate > &initializer)
构造静态事件
Definition Event.h:178
auto operator-=(T &&handler) const -> typename std::enable_if< _DelegateCanAddSubtract< TDelegate, T >::value >::type
移除事件处理程序
Definition Event.h:206
Event(const MemberEventInitializer< TOwner, TDelegate > &initializer)
构造成员事件
Definition Event.h:161
static StaticEventInitializer< TDelegate > Init()
初始化静态事件
Definition Event.h:225
static MemberEventInitializer< TOwner, TDelegate > Init(TOwner *owner)
初始化成员事件
Definition Event.h:217
值转换器接口
Definition IValueConverter.h:14
成员事件初始化器
Definition Event.h:21
MemberEventInitializer & Delegate(TDelegate &(*accessor)(TOwner *))
设置委托访问器
Definition Event.h:48
MemberEventInitializer(TOwner *owner)
构造成员事件初始化器
Definition Event.h:40
MemberEventInitializer & Delegate()
使用成员函数获取委托
Definition Event.h:58
静态事件初始化器
Definition Event.h:93
StaticEventInitializer()
构造静态事件初始化器
Definition Event.h:107
StaticEventInitializer & Delegate(TDelegate &(*accessor)())
设置委托访问器
Definition Event.h:115
SimpleWindow框架的顶级命名空间,所有公共类型、控件、枚举和工具函数均定义于此。
Definition Alignment.h:4
事件参数结构体
Definition Event.h:293