This specification outlines the archicture for event handling introduced in Equalizer 2.0.
Requirements
- Modern event definitions using EventI/OCommand
Data Flow
- The (agl,glx,wgl,qt) EventHandler receives a system event
- The event handler decodes the event into a PointerEvent, KeyEvent, SizeEvent, ButtonEvent, AxisEvent or stateless event
- The event handler calls (agl,glx,wgl,qt)
1 {Window::processEvent(}
2 * The system window performs system operations if necessary, and calls
3 ```GLWindow::processEvent( event type, [, translated event ]
- The GL window performs OpenGL procession if necessary, and calls
1 {Window::processEvent(}
2 * The eq::Window performs window updates and transforms the event to the
3 respective Channel coordinates (for PointerEvent) or calls
4 ```Config::sendEvent( event type ) << even
- The eq::Channel performs channel updates and calls
2 * Config::sendEvent transmits the event to the application node
3 * The application calls Config::handleEvents, which receives the event
4 and calls ```Config::handleEvent( EventICommand
- Config::handleEvent decodes the command and calls one of the
Config::handeEvent( event type, event )