#include <signal.hh>
Public Member Functions | |
| Emitter () | |
| ~Emitter () | |
| void | intoStringBuffer (misc::StringBuffer *sb) |
| Store a textual representation of the object in a misc::StringBuffer. | |
Protected Member Functions | |
| void | emitVoid (int signalNo, int argc, Object **argv) |
| Emit a void signal. | |
| bool | emitBool (int signalNo, int argc, Object **argv) |
| Emit a boolean signal. | |
| void | connect (Receiver *receiver) |
| Connect a receiver to the emitter. | |
| virtual bool | emitToReceiver (Receiver *receiver, int signalNo, int argc, Object **argv)=0 |
| A sub class must implement this for a call to a single receiver. | |
Private Member Functions | |
| void | unconnect (Receiver *receiver) |
Private Attributes | |
| container::typed::List < Receiver > * | receivers |
Friends | |
| class | Receiver |
If defining a signal group, a sub class of this class must be defined, with
There are two representations of signals:
| lout::signal::Emitter::Emitter | ( | ) |
References receivers.
| lout::signal::Emitter::~Emitter | ( | ) |
| void lout::signal::Emitter::connect | ( | Receiver * | receiver | ) | [protected] |
Connect a receiver to the emitter.
This is protected, a sub class should define a wrapper, with the respective receiver as an argument, to gain type safety.
References lout::container::typed::List< T >::append(), lout::signal::Receiver::connectTo(), and receivers.
Referenced by dw::core::ui::Resource::ActivateEmitter::connectActivate(), dw::core::ui::Resource::ClickedEmitter::connectClicked(), lout::signal::ObservedObject::DeletionEmitter::connectDeletion(), dw::core::Layout::Emitter::connectLayout(), and dw::core::Layout::LinkEmitter::connectLink().
| bool lout::signal::Emitter::emitBool | ( | int | signalNo, | |
| int | argc, | |||
| Object ** | argv | |||
| ) | [protected] |
Emit a boolean signal.
This method should be called by a wrapper, which folds the signal, delegates the emission to here, and returns the same boolean value.
References emitToReceiver(), lout::container::typed::Collection< T >::iterator(), and receivers.
Referenced by dw::core::Layout::LinkEmitter::emitClick(), dw::core::Layout::LinkEmitter::emitEnter(), dw::core::Layout::LinkEmitter::emitPress(), and dw::core::Layout::LinkEmitter::emitRelease().
| virtual bool lout::signal::Emitter::emitToReceiver | ( | Receiver * | receiver, | |
| int | signalNo, | |||
| int | argc, | |||
| Object ** | argv | |||
| ) | [protected, pure virtual] |
A sub class must implement this for a call to a single receiver.
This methods gets the signal in a folded representation, it has to unfold it, and pass it to a single receiver. For boolean signals, the return value of the receiver must be returned, for void signals, the return value is discarded.
Implemented in dw::core::Layout::LinkEmitter, dw::core::Layout::Emitter, dw::core::ui::Resource::ActivateEmitter, dw::core::ui::Resource::ClickedEmitter, and lout::signal::ObservedObject::DeletionEmitter.
Referenced by emitBool(), and emitVoid().
| void lout::signal::Emitter::emitVoid | ( | int | signalNo, | |
| int | argc, | |||
| Object ** | argv | |||
| ) | [protected] |
Emit a void signal.
This method should be called by a wrapper (return value void), which folds the signal, and delegates the emission to here.
References emitToReceiver(), lout::container::typed::Collection< T >::iterator(), and receivers.
Referenced by dw::core::ui::Resource::ActivateEmitter::emitActivate(), dw::core::Layout::Emitter::emitCanvasSizeChanged(), dw::core::ui::Resource::ClickedEmitter::emitClicked(), lout::signal::ObservedObject::DeletionEmitter::emitDeletion(), dw::core::ui::Resource::ActivateEmitter::emitEnter(), and dw::core::ui::Resource::ActivateEmitter::emitLeave().
| void lout::signal::Emitter::intoStringBuffer | ( | misc::StringBuffer * | sb | ) | [virtual] |
Store a textual representation of the object in a misc::StringBuffer.
This is used by object::Object::toString.
Reimplemented from lout::object::Object.
References lout::misc::StringBuffer::append(), lout::container::typed::Collection< T >::intoStringBuffer(), and receivers.
| void lout::signal::Emitter::unconnect | ( | Receiver * | receiver | ) | [private] |
References receivers, and lout::container::typed::List< T >::removeRef().
Referenced by lout::signal::Receiver::~Receiver().
friend class Receiver [friend] |
Referenced by connect(), emitBool(), Emitter(), emitVoid(), intoStringBuffer(), unconnect(), and ~Emitter().
1.5.9