26#ifndef TGUI_SIGNAL_MANAGER_HPP 
   27#define TGUI_SIGNAL_MANAGER_HPP 
   30#include <TGUI/Widget.hpp> 
   43        typedef std::shared_ptr<SignalManager> 
Ptr; 
 
   44        typedef std::shared_ptr<const SignalManager> 
ConstPtr; 
 
   46        using Delegate = std::function<void()>;
 
   47        using DelegateEx = std::function<void(std::shared_ptr<Widget>, 
const std::string&)>;
 
   49        typedef std::weak_ptr<Widget> Weak;
 
   50        typedef unsigned int SignalID;
 
   54            std::string m_widgetName;
 
   55            std::string m_signalName;
 
   56            std::pair<Delegate, DelegateEx> m_func;
 
   63            unsigned int m_signalWidgetID;
 
   90#if defined(__cpp_if_constexpr) && (__cpp_if_constexpr >= 201606L) 
  101        template <
typename Func, 
typename... BoundArgs>
 
  102        unsigned int connect(std::string widgetName, std::string signalName, Func&& handler, 
const BoundArgs&... args);
 
  115        template <
typename Func, 
typename... Args, 
typename std::enable_if<std::is_convertible<Func, std::function<void(
const Args&...)>>::value>::type* = 
nullptr>
 
  116        unsigned int connect(std::string widgetName, std::string signalName, Func&& handler, 
const Args&... args);
 
  130        template <
typename Func, 
typename... BoundArgs, 
typename std::enable_if<!std::is_convertible<Func, std::function<void(
const BoundArgs&...)>>::value 
 
  131                                                                                && std::is_convertible<Func, std::function<void(
const BoundArgs&..., std::shared_ptr<Widget>, 
const std::string&)>>::value>::type* = 
nullptr>
 
  132        unsigned int connect(std::string widgetName, std::string signalName, Func&& handler, BoundArgs&&... args);
 
  145        template <
typename Func, 
typename... BoundArgs>
 
  146        unsigned int connect(std::string widgetName, std::initializer_list<std::string> signalNames, Func&& handler, BoundArgs&&... args);
 
  174        virtual void remove(
Widget* widget);
 
  181        unsigned int generateUniqueId();
 
  183        unsigned int m_lastId;
 
  192        std::pair<Delegate, DelegateEx> makeSignal(
const Delegate&);
 
  198        std::pair<Delegate, DelegateEx> makeSignal(
const DelegateEx&);
 
  215        std::vector<Weak> m_widgets;
 
  216        std::map<SignalID, SignalTuple> m_signals;
 
  217        std::vector<ConnectedSignalTuple> m_connectedSignals;
 
Definition: SignalManager.hpp:40
 
virtual void connect(SignalID id)
Function that is called each time new signal is created with it id.
 
std::shared_ptr< const SignalManager > ConstPtr
Shared constant widget pointer.
Definition: SignalManager.hpp:44
 
virtual bool disconnect(unsigned int id)
Disconnect a signal handler.
 
virtual void disconnectAll()
Disconnect all signal handler.
 
virtual ~SignalManager()
Destructor.
 
SignalManager()
Default constructor.
 
std::shared_ptr< SignalManager > Ptr
Shared widget pointer.
Definition: SignalManager.hpp:43
 
static SignalManager::Ptr getSignalManager()
Retrieves Signal Manager that will be used to operate a signal.
 
static void setDefaultSignalManager(const SignalManager::Ptr &manager)
Sets Signal Manager that will be used to operate a signal.
 
Namespace that contains all TGUI functions and classes.
Definition: AbsoluteOrRelativeValue.hpp:37
 
Definition: SignalManager.hpp:60
 
Definition: SignalManager.hpp:53