10.08.2013 Views

Bachelor Thesis - Computer Graphics Group

Bachelor Thesis - Computer Graphics Group

Bachelor Thesis - Computer Graphics Group

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

The gesture capture library identifies the affected window by a top-level window<br />

handle used by the Windows API. Application::Window and Application<br />

classes have been created to wrap the concept of a window and the<br />

corresponding application. The window handle is wrapped as soon as possible<br />

in the event handler and never used directly in the rest of the application.<br />

The Application::Window object provides higher-level methods to manipulate<br />

other windows. These are mainly used in the commands implementation<br />

classes. The Application object provides access to the program’s executable<br />

icon and version information mainly used in the user interface. It is also used<br />

in the action mapping process as described later.<br />

5.3 Engine<br />

The main application class is the Engine, which descends from QApplication.<br />

It represents the application instance and provides the main event loop.<br />

Only one instance is allowed. In Qt based applications, this is the first class to<br />

be instantiated. However, before the Engine is initialized, we need to make<br />

sure that the following conditions are met:<br />

1. a previous instance of our application must not be already running. Multiple<br />

instances would be sharing the configuration file, one overwriting<br />

changes by the other. In addition, the gesture capture library can only<br />

be used by one application at a time<br />

2. the gesture capture library must initialize properly. Setting up the mouse<br />

hook can fail for some reason. A personal firewall solution may be preventing<br />

applications from setting system wide hooks for example<br />

If any of these conditions fail, it is considered a fatal error and the start-up process<br />

is aborted. When all conditions are met, the Engine class is instantiated<br />

and initialized. Then the main event loop is entered. It is being executed until<br />

the application quits, either by the user or automatically when the operating<br />

system is being shutdown.<br />

The Engine is responsible for many aspects. It has to:<br />

• set-up various application specific parameters, such as the application<br />

name and icon, used throughout the user interface<br />

• manage the configuration. The XML based configuration as well as a set<br />

of special configuration independent settings which have to be loaded at<br />

start-up. Configuration is saved automatically in certain situations, such<br />

as when the applications exits or the user clicks a save button<br />

31

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!