#include <Wt/WSignalMapper>
Public Slots | |
void | map () |
Slot to which to connect the source signal. | |
void | map1 (A1 a) |
Slot to which to connect the source signal, passing the argument to the receiver. | |
Public Member Functions | |
WSignalMapper (WObject *parent=0) | |
Create a new WSignalMapper. | |
void | setMapping (WObject *sender, const T &data) |
Associate data with a sender. | |
void | mapConnect (SignalBase &signal, const T &data) |
Map a signal without arguments. | |
template<typename S> | |
void | mapConnect1 (S &signal, const T &data) |
Map a signal with one argument. | |
Public Attributes | |
Signal< T, A1 > | mapped |
Signal emitted in response to a signal sent to map() or map1(). |
This class is useful if you have to respond to the same signal of many objects or widgets, but need to identify the sender through some property.
Consider the following example, where you can check for the sender, by adding it as a mapped argument:
void Test::createWidgets() { WSignalMapper<WText*> MyMap* = new WSignalMapper<WText*>(this); MyMap->mapped.connect(SLOT(this, Test::onClick)); MyMap->mapConnect(text1->clicked, text1); MyMap->mapConnect(text2->clicked, text2); MyMap->mapConnect(text3->clicked, text3); } void Test::onClick(WText* source) { // source is where it is coming from // ... }
The type T may be any type that has proper copy semantics and a default constructor. The mapper may pass one extra argument (type A1) from the original signal to the mapped signal. In that case, you must connect the original signal to the map1() slot, or use mapConnect1().
void Wt::WSignalMapper< T, A1 >::setMapping | ( | WObject * | sender, | |
const T & | data | |||
) | [inline] |
void Wt::WSignalMapper< T, A1 >::mapConnect | ( | SignalBase & | signal, | |
const T & | data | |||
) | [inline] |
Map a signal without arguments.
Connect the given signal with the slot, and associate the data when it is triggered.
void Wt::WSignalMapper< T, A1 >::mapConnect1 | ( | S & | signal, | |
const T & | data | |||
) | [inline] |
Map a signal with one argument.
Connect the given signal with the slot, and associate the data when it is triggered. The signal argument will be passed to the mapped signal.
void Wt::WSignalMapper< T, A1 >::map | ( | ) | [inline, slot] |
Slot to which to connect the source signal.
When a signal triggers the slot, the sender is identified and used to find corresponding data set with setMapping(), which is then use to propagate further in the mapped signal.
void Wt::WSignalMapper< T, A1 >::map1 | ( | A1 | a | ) | [inline, slot] |
Slot to which to connect the source signal, passing the argument to the receiver.
When a signal triggers the slot, the sender is identified and used to find corresponding data set with setMapping(), which is then use to propagate further in the mapped signal. The additional argument a is passed as the second argument to the mapped signal.
Signal<T, A1> Wt::WSignalMapper< T, A1 >::mapped |
Signal emitted in response to a signal sent to map() or map1().
The first argument propagated is the data that is associated with the specific sender, set in setMapping() or mapConnect(). The second argument is an argument passed from the originating signal.