// .h
enum class SlideMultiplexerCtrlId
{
// public
SelectionChanged,
ChangeCurrentPage,
};
} // namespace sd
namespace sd { namespace tools {
class SlideMultiplexerCtrlEvent
{
public:
SlideMultiplexerCtrlId const meEventId;
const void* mpUserData;
SlideMultiplexerCtrlEvent(
SlideMultiplexerCtrlId eEventId,
const void* pUserData);
};
class SdSlideMultiplexerCtrl
{
public:
SdSlideMultiplexerCtrl() = default;
virtual ~SdSlideMultiplexerCtrl() = default;
void AddListener(const Link<SlideMultiplexerCtrlEvent&, void>& rCallback);
void RemoveListener(const Link<SlideMultiplexerCtrlEvent&, void>& rCallback);
void CallListeners(SlideMultiplexerCtrlId eId,
void const * pUserData);
private:
typedef ::std::vector<Link<SlideMultiplexerCtrlEvent&, void>> ListenerList;
ListenerList maListeners;
};
// .cpp
//===== EventMultiplexerEvent ===================