19#include "../FxCommonFramework.h"
46#include <QtCore/QObject>
50#define FX_REDEFINE_EMIT
54#define FX_REDEFINE_SLOTS
69#include "XeThreadHelper.h"
76template <
class R,
class ... Args>
110 template <
class TReciver>
113 auto slot = [reciver, method,
this](Args&&... args)
115 TReciver* r =
dynamic_cast<TReciver*
>( reciver );
131 template <
class TReciver>
134 auto slot = [reciver, method,
this](Args&&... args) -> R
137 return (reciver->*method)( args... );
161 if ( m_pSender->signalsBlocked() )
164 XeThreadHelper::PostToThread(XE_THREAD_EVENT, [&, args ...]() {
slimsig::signal<R(Args...)>::emit(args...); });
166 slimsig::signal<R( Args... )>::emit( std::forward<Args&&>( args )... );
176#ifdef FX_REDEFINE_EMIT
179#ifdef FX_REDEFINE_SLOTS
CFxUIEmitScope(CFxUIObject *slot, CFxUIObject *pSender)
connection_type connect(TReciver *reciver, R(TReciver::*method)(Args... args))
connection_type connect(CFxUIObject *reciver, void(TReciver::*method)())
connection_type connect(std::function< void(Args...)> function)
CFxUISignal(CFxUIObject *sender)
typename base::Connection connection_type