Tulip  4.4.0
Better Visualization Through Research
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Groups Pages
tlp::InteractorComposite Class Reference

Inherits tlp::Interactor.

Inherited by tlp::GLInteractorComposite.

Public Types

typedef QList
< InteractorComponent * >
::const_iterator 
const_iterator
 
typedef QList
< InteractorComponent * >
::iterator 
iterator
 

Public Slots

virtual void install (QObject *target)
 
virtual void setView (tlp::View *view)
 
virtual void undoIsDone ()
 
virtual void uninstall ()
 
- Public Slots inherited from tlp::Interactor
virtual void install (QObject *target)=0
 
virtual void setView (tlp::View *)=0
 
virtual void undoIsDone ()=0
 
virtual void uninstall ()=0
 

Public Member Functions

 InteractorComposite (const QIcon &icon, const QString &text="")
 
virtual QAction * action () const
 
iterator begin ()
 
const_iterator begin () const
 
virtual QCursor cursor () const
 
iterator end ()
 
const_iterator end () const
 
void push_back (InteractorComponent *component)
 
void push_front (InteractorComponent *component)
 
virtual tlp::Viewview () const
 
- Public Member Functions inherited from tlp::Interactor
virtual std::string category () const
 
virtual QWidget * configurationWidget () const =0
 
virtual void construct ()=0
 
std::string icon () const
 
virtual bool isCompatible (const std::string &viewName) const =0
 
virtual unsigned int priority () const =0
 
- Public Member Functions inherited from tlp::Plugin
virtual std::string author () const =0
 
virtual std::string date () const =0
 
virtual std::string group () const =0
 
virtual int id () const
 
virtual std::string info () const =0
 
virtual std::string major () const
 
virtual std::string minor () const
 
virtual std::string name () const =0
 
virtual std::string programmingLanguage () const
 
virtual std::string release () const =0
 
virtual std::string tulipMajor () const
 
virtual std::string tulipMinor () const
 
virtual std::string tulipRelease () const =0
 
- Public Member Functions inherited from tlp::WithParameter
template<typename T >
void addInOutParameter (const std::string &name, const std::string &help=std::string(), const std::string &defaultValue=std::string(), bool isMandatory=true)
 
template<typename T >
void addInParameter (const std::string &name, const std::string &help, const std::string &defaultValue, bool isMandatory=true)
 
template<typename T >
void addOutParameter (const std::string &name, const std::string &help=std::string(), const std::string &defaultValue=std::string(), bool isMandatory=true)
 
template<typename T >
void addParameter (const std::string &name, const std::string &help=std::string(), const std::string &defaultValue=std::string(), bool isMandatory=true)
 
const
tlp::ParameterDescriptionList
getParameters () const
 
bool inputRequired () const
 
- Public Member Functions inherited from tlp::WithDependency
void addDependency (const char *name, const char *release)
 
const std::list< Dependency > & dependencies () const
 

Protected Slots

void lastTargetDestroyed ()
 

Protected Member Functions

QObject * lastTarget () const
 
void setLastTarget (QObject *)
 
- Protected Member Functions inherited from tlp::Interactor
virtual bool eventFilter (QObject *obj, QEvent *ev)
 

Protected Attributes

QList< tlp::InteractorComponent * > _components
 

Additional Inherited Members

- Properties inherited from tlp::Interactor
QAction action
 
QCursor cursor
 
unsigned int
 
tlp::View view
 

Detailed Description

event handler stored inside an InteractorComposite

This is meant to be focused on event handling only. An InteractorComponent should respond to user inputs in its eventFilter method and return true to avoid further propagation of the event to other components. This system is inherited from Qt event handling, see QObject::eventFilter() for details.

subclass of Interactor that allows building Interactors using component classes focused specifically on input handling.

The composite behaves like a regular interactor. Event handling is made using InteractorComponent subclasses. Basically, an InteractorComposite is a list of InteractorComponent. Each of them are meant to be pushed in the list using the push_back and push_front methods. When an event is caught by the InteractorComposite, it will iterate over all components (in th order provided by the list) and run eventFilter on each one of them until one of the component returns true.

When subclassing InteractorComposite, you should push your components in the construct() method (take care of the order they are pushed in). Once the setView() method is called (after construct()), the init() method will be run on every components.

Examples:
interactor_plugin/interactor_plugin.cpp.

Definition at line 87 of file InteractorComposite.h.

Constructor & Destructor Documentation

tlp::InteractorComposite::InteractorComposite ( const QIcon &  icon,
const QString &  text = "" 
)

Default constructor.

Parameters
iconThe icon set on the interactor's action
textThe text set on the interactor's action

Member Function Documentation

virtual QAction* tlp::InteractorComposite::action ( ) const
virtual
Returns
a QAction associated to this interactor. This is used by the overleying system to associate an icon/text to the interactor.
Warning
The parent (QObject::parent()) object of this QAction MUST BE the Interactor.

Implements tlp::Interactor.

iterator tlp::InteractorComposite::begin ( )

Since InteractorComposte behaves like a list of InteractorComponent, this method is here to allow this class to be iterable.

const_iterator tlp::InteractorComposite::begin ( ) const

Since InteractorComposte behaves like a list of InteractorComponent, this method is here to allow this class to be iterable.

virtual QCursor tlp::InteractorComposite::cursor ( ) const
virtual
Returns
The cursor associated to this interactor. When the interactor gets active on a view, the View's cursor is changed to what this method returns.

Implements tlp::Interactor.

iterator tlp::InteractorComposite::end ( )

Since InteractorComposte behaves like a list of InteractorComponent, this method is here to allow this class to be iterable.

const_iterator tlp::InteractorComposite::end ( ) const

Since InteractorComposte behaves like a list of InteractorComponent, this method is here to allow this class to be iterable.

QObject* tlp::InteractorComposite::lastTarget ( ) const
protected
Returns
The last target the interactor was installed on.
Note
If the lastTarget is destroyed before uninstall was called, the lastTarget() method will return NULL.
void tlp::InteractorComposite::push_back ( InteractorComponent *  component)

Pushs an InteractorComponent at the end of the list.

void tlp::InteractorComposite::push_front ( InteractorComponent *  component)

Pushs an InteractorComponent at the beggining of the list.

void tlp::InteractorComposite::setLastTarget ( QObject *  )
protected

backup a QObject into the InteractorComposite. This can be used to store the last target the interactor was installed on. This can be used when uninstall is called.

virtual tlp::View* tlp::InteractorComposite::view ( ) const
virtual
Returns
the View object associated to this Interactor.
Warning
The returned object MUST be the same as the one passed down to the setView method.

Implements tlp::Interactor.