mirror of
https://github.com/Ardour/ardour.git
synced 2025-12-12 17:46:34 +01:00
rollback to 3428, before the mysterious removal of libs/* at 3431/3432
git-svn-id: svn://localhost/ardour2/branches/3.0@3435 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
parent
9c0d7d72d7
commit
449aab3c46
2869 changed files with 1026749 additions and 0 deletions
394
libs/glibmm2/glib/glibmm/signalproxy.h
Normal file
394
libs/glibmm2/glib/glibmm/signalproxy.h
Normal file
|
|
@ -0,0 +1,394 @@
|
|||
// -*- c++ -*-
|
||||
/* This is a generated file, do not edit. Generated from signalproxy.h.m4 */
|
||||
|
||||
#ifndef _GLIBMM_SIGNALPROXY_H
|
||||
#define _GLIBMM_SIGNALPROXY_H
|
||||
|
||||
extern "C"
|
||||
{
|
||||
typedef void (*GCallback) (void);
|
||||
typedef struct _GObject GObject;
|
||||
}
|
||||
|
||||
#include <sigc++/sigc++.h>
|
||||
#include <glibmm/signalproxy_connectionnode.h>
|
||||
|
||||
|
||||
namespace Glib
|
||||
{
|
||||
|
||||
// Forward declarations
|
||||
class ObjectBase;
|
||||
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
struct SignalProxyInfo
|
||||
{
|
||||
const char* signal_name;
|
||||
GCallback callback;
|
||||
GCallback notify_callback;
|
||||
};
|
||||
|
||||
#endif //DOXYGEN_SHOULD_SKIP_THIS
|
||||
|
||||
// This base class is used by SignalProxyNormal and SignalProxyProperty.
|
||||
class SignalProxyBase
|
||||
{
|
||||
public:
|
||||
SignalProxyBase(Glib::ObjectBase* obj);
|
||||
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
static inline sigc::slot_base* data_to_slot(void* data)
|
||||
{
|
||||
SignalProxyConnectionNode *const pConnectionNode = static_cast<SignalProxyConnectionNode*>(data);
|
||||
|
||||
// Return 0 if the connection is blocked.
|
||||
return (!pConnectionNode->slot_.blocked()) ? &pConnectionNode->slot_ : 0;
|
||||
}
|
||||
#endif /* DOXYGEN_SHOULD_SKIP_THIS */
|
||||
|
||||
protected:
|
||||
ObjectBase* obj_;
|
||||
|
||||
private:
|
||||
SignalProxyBase& operator=(const SignalProxyBase&); // not implemented
|
||||
};
|
||||
|
||||
|
||||
// shared portion of a Signal
|
||||
/** The SignalProxy provides an API similar to sigc::signal that can be used to
|
||||
* connect sigc::slots to glib signals.
|
||||
*
|
||||
* This holds the name of the glib signal and the object
|
||||
* which might emit it. Actually, proxies are controlled by
|
||||
* the template derivatives, which serve as gatekeepers for the
|
||||
* types allowed on a particular signal.
|
||||
*
|
||||
*/
|
||||
class SignalProxyNormal : public SignalProxyBase
|
||||
{
|
||||
public:
|
||||
~SignalProxyNormal();
|
||||
|
||||
/// stops the current signal emmision (not in libsigc++)
|
||||
void emission_stop();
|
||||
|
||||
#ifndef DOXYGEN_SHOULD_SKIP_THIS
|
||||
// This callback for SignalProxy0<void>
|
||||
// is defined here to avoid code duplication.
|
||||
static void slot0_void_callback(GObject*, void* data);
|
||||
#endif
|
||||
|
||||
protected:
|
||||
|
||||
/** Create a proxy for a signal that can be emitted by @a obj.
|
||||
* @param obj The object that can emit the signal.
|
||||
* @param info Information about the signal, including its name, and the C callbacks that should be called by glib.
|
||||
*/
|
||||
SignalProxyNormal(Glib::ObjectBase* obj, const SignalProxyInfo* info);
|
||||
|
||||
/** Connects a signal to a generic signal handler. This is called by connect() in derived SignalProxy classes.
|
||||
*
|
||||
* @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::slot_base& connect_(const sigc::slot_base& slot, bool after);
|
||||
|
||||
/** Connects a signal to a signal handler without a return value.
|
||||
* This is called by connect() in derived SignalProxy classes.
|
||||
*
|
||||
* By default, the signal handler will be called before the default signal handler,
|
||||
* in which case any return value would be replaced anyway by that of the later signal handler.
|
||||
*
|
||||
* @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::slot_base& connect_notify_(const sigc::slot_base& slot, bool after);
|
||||
|
||||
private:
|
||||
const SignalProxyInfo* info_;
|
||||
|
||||
//TODO: We could maybe replace both connect_ and connect_notify_ with this in future, because they don't do anything extra.
|
||||
/** This is called by connect_ and connect_impl_.
|
||||
*/
|
||||
sigc::slot_base& connect_impl_(GCallback callback, const sigc::slot_base& slot, bool after);
|
||||
|
||||
// no copy assignment
|
||||
SignalProxyNormal& operator=(const SignalProxyNormal&);
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/**** Glib::SignalProxy0 ***************************************************/
|
||||
|
||||
/** Proxy for signals with 0 arguments.
|
||||
* Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
|
||||
*/
|
||||
template <class R>
|
||||
class SignalProxy0 : public SignalProxyNormal
|
||||
{
|
||||
public:
|
||||
typedef sigc::slot<R> SlotType;
|
||||
typedef sigc::slot<void> VoidSlotType;
|
||||
|
||||
SignalProxy0(ObjectBase* obj, const SignalProxyInfo* info)
|
||||
: SignalProxyNormal(obj, info) {}
|
||||
|
||||
/** Connects a signal to a signal handler.
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect(const SlotType& slot, bool after = true)
|
||||
{ return sigc::connection(connect_(slot, after)); }
|
||||
|
||||
/** Connects a signal to a signal handler without a return value.
|
||||
* By default, the signal handler will be called before the default signal handler,
|
||||
* in which case any return value would be replaced anyway by that of the later signal handler.
|
||||
*
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
|
||||
{ return sigc::connection(connect_notify_(slot, after)); }
|
||||
};
|
||||
|
||||
|
||||
/**** Glib::SignalProxy1 ***************************************************/
|
||||
|
||||
/** Proxy for signals with 1 arguments.
|
||||
* Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
|
||||
*/
|
||||
template <class R,class P1>
|
||||
class SignalProxy1 : public SignalProxyNormal
|
||||
{
|
||||
public:
|
||||
typedef sigc::slot<R,P1> SlotType;
|
||||
typedef sigc::slot<void,P1> VoidSlotType;
|
||||
|
||||
SignalProxy1(ObjectBase* obj, const SignalProxyInfo* info)
|
||||
: SignalProxyNormal(obj, info) {}
|
||||
|
||||
/** Connects a signal to a signal handler.
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect(const SlotType& slot, bool after = true)
|
||||
{ return sigc::connection(connect_(slot, after)); }
|
||||
|
||||
/** Connects a signal to a signal handler without a return value.
|
||||
* By default, the signal handler will be called before the default signal handler,
|
||||
* in which case any return value would be replaced anyway by that of the later signal handler.
|
||||
*
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
|
||||
{ return sigc::connection(connect_notify_(slot, after)); }
|
||||
};
|
||||
|
||||
|
||||
/**** Glib::SignalProxy2 ***************************************************/
|
||||
|
||||
/** Proxy for signals with 2 arguments.
|
||||
* Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
|
||||
*/
|
||||
template <class R,class P1,class P2>
|
||||
class SignalProxy2 : public SignalProxyNormal
|
||||
{
|
||||
public:
|
||||
typedef sigc::slot<R,P1,P2> SlotType;
|
||||
typedef sigc::slot<void,P1,P2> VoidSlotType;
|
||||
|
||||
SignalProxy2(ObjectBase* obj, const SignalProxyInfo* info)
|
||||
: SignalProxyNormal(obj, info) {}
|
||||
|
||||
/** Connects a signal to a signal handler.
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect(const SlotType& slot, bool after = true)
|
||||
{ return sigc::connection(connect_(slot, after)); }
|
||||
|
||||
/** Connects a signal to a signal handler without a return value.
|
||||
* By default, the signal handler will be called before the default signal handler,
|
||||
* in which case any return value would be replaced anyway by that of the later signal handler.
|
||||
*
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
|
||||
{ return sigc::connection(connect_notify_(slot, after)); }
|
||||
};
|
||||
|
||||
|
||||
/**** Glib::SignalProxy3 ***************************************************/
|
||||
|
||||
/** Proxy for signals with 3 arguments.
|
||||
* Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
|
||||
*/
|
||||
template <class R,class P1,class P2,class P3>
|
||||
class SignalProxy3 : public SignalProxyNormal
|
||||
{
|
||||
public:
|
||||
typedef sigc::slot<R,P1,P2,P3> SlotType;
|
||||
typedef sigc::slot<void,P1,P2,P3> VoidSlotType;
|
||||
|
||||
SignalProxy3(ObjectBase* obj, const SignalProxyInfo* info)
|
||||
: SignalProxyNormal(obj, info) {}
|
||||
|
||||
/** Connects a signal to a signal handler.
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect(const SlotType& slot, bool after = true)
|
||||
{ return sigc::connection(connect_(slot, after)); }
|
||||
|
||||
/** Connects a signal to a signal handler without a return value.
|
||||
* By default, the signal handler will be called before the default signal handler,
|
||||
* in which case any return value would be replaced anyway by that of the later signal handler.
|
||||
*
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
|
||||
{ return sigc::connection(connect_notify_(slot, after)); }
|
||||
};
|
||||
|
||||
|
||||
/**** Glib::SignalProxy4 ***************************************************/
|
||||
|
||||
/** Proxy for signals with 4 arguments.
|
||||
* Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
|
||||
*/
|
||||
template <class R,class P1,class P2,class P3,class P4>
|
||||
class SignalProxy4 : public SignalProxyNormal
|
||||
{
|
||||
public:
|
||||
typedef sigc::slot<R,P1,P2,P3,P4> SlotType;
|
||||
typedef sigc::slot<void,P1,P2,P3,P4> VoidSlotType;
|
||||
|
||||
SignalProxy4(ObjectBase* obj, const SignalProxyInfo* info)
|
||||
: SignalProxyNormal(obj, info) {}
|
||||
|
||||
/** Connects a signal to a signal handler.
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect(const SlotType& slot, bool after = true)
|
||||
{ return sigc::connection(connect_(slot, after)); }
|
||||
|
||||
/** Connects a signal to a signal handler without a return value.
|
||||
* By default, the signal handler will be called before the default signal handler,
|
||||
* in which case any return value would be replaced anyway by that of the later signal handler.
|
||||
*
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
|
||||
{ return sigc::connection(connect_notify_(slot, after)); }
|
||||
};
|
||||
|
||||
|
||||
/**** Glib::SignalProxy5 ***************************************************/
|
||||
|
||||
/** Proxy for signals with 5 arguments.
|
||||
* Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
|
||||
*/
|
||||
template <class R,class P1,class P2,class P3,class P4,class P5>
|
||||
class SignalProxy5 : public SignalProxyNormal
|
||||
{
|
||||
public:
|
||||
typedef sigc::slot<R,P1,P2,P3,P4,P5> SlotType;
|
||||
typedef sigc::slot<void,P1,P2,P3,P4,P5> VoidSlotType;
|
||||
|
||||
SignalProxy5(ObjectBase* obj, const SignalProxyInfo* info)
|
||||
: SignalProxyNormal(obj, info) {}
|
||||
|
||||
/** Connects a signal to a signal handler.
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect(const SlotType& slot, bool after = true)
|
||||
{ return sigc::connection(connect_(slot, after)); }
|
||||
|
||||
/** Connects a signal to a signal handler without a return value.
|
||||
* By default, the signal handler will be called before the default signal handler,
|
||||
* in which case any return value would be replaced anyway by that of the later signal handler.
|
||||
*
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
|
||||
{ return sigc::connection(connect_notify_(slot, after)); }
|
||||
};
|
||||
|
||||
|
||||
/**** Glib::SignalProxy6 ***************************************************/
|
||||
|
||||
/** Proxy for signals with 6 arguments.
|
||||
* Use the connect() method, with sigc::mem_fun() or sigc::ptr_fun() to connect signals to signal handlers.
|
||||
*/
|
||||
template <class R,class P1,class P2,class P3,class P4,class P5,class P6>
|
||||
class SignalProxy6 : public SignalProxyNormal
|
||||
{
|
||||
public:
|
||||
typedef sigc::slot<R,P1,P2,P3,P4,P5,P6> SlotType;
|
||||
typedef sigc::slot<void,P1,P2,P3,P4,P5,P6> VoidSlotType;
|
||||
|
||||
SignalProxy6(ObjectBase* obj, const SignalProxyInfo* info)
|
||||
: SignalProxyNormal(obj, info) {}
|
||||
|
||||
/** Connects a signal to a signal handler.
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect(const SlotType& slot, bool after = true)
|
||||
{ return sigc::connection(connect_(slot, after)); }
|
||||
|
||||
/** Connects a signal to a signal handler without a return value.
|
||||
* By default, the signal handler will be called before the default signal handler,
|
||||
* in which case any return value would be replaced anyway by that of the later signal handler.
|
||||
*
|
||||
* For instance, connect( sigc::mem_fun(*this, &TheClass::on_something) );
|
||||
*
|
||||
* @param slot The signal handler, which should have a void return type, usually created with sigc::mem_fun(), or sigc::ptr_fun().
|
||||
* @param after Whether this signal handler should be called before or after the default signal handler.
|
||||
*/
|
||||
sigc::connection connect_notify(const VoidSlotType& slot, bool after = false)
|
||||
{ return sigc::connection(connect_notify_(slot, after)); }
|
||||
};
|
||||
|
||||
|
||||
} // namespace Glib
|
||||
|
||||
|
||||
#endif /* _GLIBMM_SIGNALPROXY_H */
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue