// Version: $Id: 94ac197070122eb280bf6370fe7c8993514bccc1 $ // // // Commentary: // // // Change Log: // // // Code: #pragma once #include #include "dtkComposerTransmitter.h" #include "dtkComposerTransmitterEmitter.h" #include "dtkComposerTransmitterReceiver.h" // ///////////////////////////////////////////////////////////////// // dtkComposerTransmitterProxyVariant // ///////////////////////////////////////////////////////////////// class DTKCOMPOSER_EXPORT dtkComposerTransmitterProxyVariant : public dtkComposerTransmitter { public: dtkComposerTransmitterProxyVariant(dtkComposerNode *parent = 0); ~dtkComposerTransmitterProxyVariant(void); public: void enableReceiver(void); void enableEmitter(void); public: QVariant variant(void); public: QVariantList allData(void); public: QVariant data(void); public: void clearData(void); public: template T data(void); template T constData(void); public: void setVariant(const QVariant& variant); public: template void setData(const T& data); template void setData( T& data); public: dtkComposerTransmitter::Kind kind(void) const; QString kindName(void) const; public: bool enableCopy(void); public: bool enableConnection(dtkComposerTransmitter *transmitter); public: bool isEmpty(void) const; bool connect(dtkComposerTransmitter *transmitter); bool disconnect(dtkComposerTransmitter *transmitter); public: LinkMap rightLinks(dtkComposerTransmitter *transmitter, dtkComposerTransmitterLinkList list); LinkMap leftLinks(dtkComposerTransmitter *transmitter, dtkComposerTransmitterLinkList list); private: dtkComposerTransmitterReceiverVariant m_receiver; dtkComposerTransmitterEmitterVariant m_emitter; dtkComposerTransmitter *m_transmitter; }; // ///////////////////////////////////////////////////////////////// inline QVariant dtkComposerTransmitterProxyVariant::data(void) { return m_receiver.data(); } template inline T dtkComposerTransmitterProxyVariant::data(void) { return m_receiver.data(); } template inline T dtkComposerTransmitterProxyVariant::constData(void) { return m_receiver.constData(); } inline void dtkComposerTransmitterProxyVariant::setVariant(const QVariant& variant) { m_emitter.setVariant(variant); } template inline void dtkComposerTransmitterProxyVariant::setData(const T& data) { m_emitter.setData(data); } template inline void dtkComposerTransmitterProxyVariant::setData(T& data) { m_emitter.setData(data); } // // dtkComposerTransmitterProxyVariant.h ends here