Sourceforge.net - The VCF's Project Host
   The VCF Website Home   |   Online Discussion Forums   |   Sourceforge.net Project Page   

VCF::EventHandler Class Reference

EventHandler's form the back bone of the event model in the VCF. More...

#include <vcf/FoundationKit/EventHandler.h>

Inheritance diagram for VCF::EventHandler:

VCF::Object VCF::EventHandlerInstance< SOURCE, EVENT > VCF::EventHandlerInstance< SOURCE_TYPE, ButtonEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ColumnModelEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ComponentEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ControlEvent > VCF::EventHandlerInstance< SOURCE_TYPE, DragSourceEvent > VCF::EventHandlerInstance< SOURCE_TYPE, DropTargetEvent > VCF::EventHandlerInstance< SOURCE_TYPE, Event > VCF::EventHandlerInstance< SOURCE_TYPE, FocusEvent > VCF::EventHandlerInstance< SOURCE_TYPE, FrameEvent > VCF::EventHandlerInstance< SOURCE_TYPE, HelpEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ImageListEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ItemEditorEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ItemEvent > VCF::EventHandlerInstance< SOURCE_TYPE, KeyboardEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ListModelEvent > VCF::EventHandlerInstance< SOURCE_TYPE, MenuItemEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ModelEvent > VCF::EventHandlerInstance< SOURCE_TYPE, MouseEvent > VCF::EventHandlerInstance< SOURCE_TYPE, NotifyEvent > VCF::EventHandlerInstance< SOURCE_TYPE, OutputReadyEvent > VCF::EventHandlerInstance< SOURCE_TYPE, PropertyChangeEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ScrollEvent > VCF::EventHandlerInstance< SOURCE_TYPE, SocketEvent > VCF::EventHandlerInstance< SOURCE_TYPE, TableModelEvent > VCF::EventHandlerInstance< SOURCE_TYPE, TabModelEvent > VCF::EventHandlerInstance< SOURCE_TYPE, TextEvent > VCF::EventHandlerInstance< SOURCE_TYPE, TimerEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ToolTipEvent > VCF::EventHandlerInstance< SOURCE_TYPE, TreeModelEvent > VCF::EventHandlerInstance< SOURCE_TYPE, UndoRedoEvent > VCF::EventHandlerInstance< SOURCE_TYPE, ValidationEvent > VCF::EventHandlerInstance< SOURCE_TYPE, WhatsThisHelpEvent > VCF::EventHandlerInstance< SOURCE_TYPE, WindowEvent > VCF::EventHandlerInstance< SOURCE_TYPE, XMLParserEvent > VCF::StaticEventHandlerInstance< EVENT > List of all members.

Public Types

typedef std::vector< EventHandler * > Vector

Public Member Functions

 EventHandler ()
virtual ~EventHandler ()
virtual void invoke (Event *e)=0
 Called during the events dispatch cycle.
virtual ObjectgetSource ()
 Returns the source that the event handler is attached to.
void addHandlerToSource (Object *source, const String &handlerName)
 Adds the EventHandler to it's source object.
String getHandlerName ()

Protected Member Functions

String getHandlerNameFromSource (Object *source)

Detailed Description

EventHandler's form the back bone of the event model in the VCF.

The EventHandler base class provides a clean way to invoke the class specific member function pointers in the derived EventHandlerInstance template class.

The EventHandler is an abstract class an cannot be created. Instead you need to derive your own custom class from it and implement the invoke() method. Typically you can just use one of the already provided class, either the StaticEventHandlerInstance for wrapping static (or "C" style functions), or the various template derived classes that wrap a classes member function.


Member Typedef Documentation

typedef std::vector<EventHandler*> VCF::EventHandler::Vector
 


Constructor & Destructor Documentation

VCF::EventHandler::EventHandler  )  [inline]
 

virtual VCF::EventHandler::~EventHandler  )  [virtual]
 


Member Function Documentation

void VCF::EventHandler::addHandlerToSource Object source,
const String handlerName
 

Adds the EventHandler to it's source object.

For this to work the source must be derived from ObjectWithEvents. By adding the event handler to the source, the handler's memory will be cleaned up by the source when the source is destroyed.

The EventHandler may be retreived at any time by calling the getEventHandler() method on the source (once again, assuming the source is derived from ObjectWithEvents).

Parameters:
Object the source to which the EventHandler will be added.
String the name the EventHandler is referred to. This should be a reasonably unique name.

String VCF::EventHandler::getHandlerName  ) 
 

String VCF::EventHandler::getHandlerNameFromSource Object source  )  [protected]
 

virtual Object* VCF::EventHandler::getSource  )  [inline, virtual]
 

Returns the source that the event handler is attached to.

Some event handler implementations may not return a source for public use, or may not use one at all, so this method may return NULL. An example of not using a source would be the StaticEventHandlerInstance which is used to wrap static functions. The default implementation returns a NULL object source.

Reimplemented in VCF::EventHandlerInstance< SOURCE, EVENT >, VCF::EventHandlerInstance< SOURCE_TYPE, HelpEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ControlEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, TableModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, KeyboardEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, PropertyChangeEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, DropTargetEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, TabModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ItemEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, TimerEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, SocketEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, UndoRedoEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, Event >, VCF::EventHandlerInstance< SOURCE_TYPE, WindowEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ItemEditorEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, OutputReadyEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, TreeModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ColumnModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ButtonEvent >, VCF::EventHandlerInstance< Win32Listview, ItemEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, WhatsThisHelpEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ToolTipEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ScrollEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ListModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, TextEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, MenuItemEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ImageListEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, DragSourceEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, FocusEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, NotifyEvent >, VCF::EventHandlerInstance< Win32Tree, ItemEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ValidationEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, FrameEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ComponentEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, XMLParserEvent >, and VCF::EventHandlerInstance< SOURCE_TYPE, MouseEvent >.

virtual void VCF::EventHandler::invoke Event e  )  [pure virtual]
 

Called during the events dispatch cycle.

The implementation will end up calling the appropriate call back method.

Implemented in VCF::EventHandlerInstance< SOURCE, EVENT >, VCF::StaticEventHandlerInstance< EVENT >, VCF::EventHandlerInstance< SOURCE_TYPE, HelpEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ControlEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, TableModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, KeyboardEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, PropertyChangeEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, DropTargetEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, TabModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ItemEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, TimerEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, SocketEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, UndoRedoEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, Event >, VCF::EventHandlerInstance< SOURCE_TYPE, WindowEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ItemEditorEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, OutputReadyEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, TreeModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ColumnModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ButtonEvent >, VCF::EventHandlerInstance< Win32Listview, ItemEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, WhatsThisHelpEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ToolTipEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ScrollEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ListModelEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, TextEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, MenuItemEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ImageListEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, DragSourceEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, FocusEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, NotifyEvent >, VCF::EventHandlerInstance< Win32Tree, ItemEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ValidationEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, FrameEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, ComponentEvent >, VCF::EventHandlerInstance< SOURCE_TYPE, XMLParserEvent >, and VCF::EventHandlerInstance< SOURCE_TYPE, MouseEvent >.


The documentation for this class was generated from the following file:
   Comments or Suggestions?    License Information