34#include <NDEVR/Event.h>
35#include <NDEVR/SoftwareService.h>
36#include <NDEVR/Dictionary.h>
37#include <NDEVR/INIInterface.h>
38#include <NDEVR/TranslatedString.h>
39#include <NDEVR/UUID.h>
43 class DesignObjectLookup;
The core class for assigning actions to key-presses and registering them as a program-wide service.
Definition KeyController.h:71
virtual void getINI(INIFactory &factory) override
Buffer< KeyOption > m_key_options
Definition KeyController.h:84
bool m_save_ini_on_change_key_option_change
Definition KeyController.h:83
virtual void resetKeyControllerToDefaults()=0
virtual void setKeyOption(const KeyOption &option)
const TranslatedString & keyControllerTitle() const
Definition KeyController.h:77
const Buffer< KeyOption > & currentKeyMaps() const
Definition KeyController.h:78
virtual bool processKeyEvent(const String &id, const KeyEvent &key_event, DesignObjectLookup *lookup, Camera *camera)=0
virtual void addKeyOption(const KeyOption &option)
BasicKeyController(const TranslatedString &key_controller_title)
bool processKeyEvent(const KeyEvent &key_event, DesignObjectLookup *lookup, Camera *camera) final override
TranslatedString m_key_controller_title
Definition KeyController.h:85
The equivelent of std::vector but with a bit more control. The basic array unit of the library.
Definition Buffer.hpp:56
A core class where all Design Objects including models, materials, and geometries are stored....
Definition DesignObjectLookup.h:65
A hash-based key-value store, useful for quick associative lookups. Key features include:
Definition Dictionary.h:61
Contains methods for easily reading and writing to an INI file including efficient casting,...
Definition INIReader.h:68
Contains methods for easily reading and writing to an INI file including.
Definition INIInterface.h:45
Base class for KeyController, a service which provides functionality based on user key-presses.
Definition KeyController.h:51
virtual bool processKeyEvent(const KeyEvent &key_event, DesignObjectLookup *lookup, Camera *camera)=0
A high-level controller that stores many sub controllers that can be used to modify behaviors on user...
Definition KeyController.h:93
Buffer< KeyControllerBase * > controllers() const
virtual ~KeyController()
Definition KeyController.h:96
void addController(UUID id, KeyControllerBase *controller)
void removeController(UUID id)
static KeyController & DefaultKeyController()
bool hasController(UUID id) const
bool processKeyEvent(const KeyEvent &event, DesignObjectLookup *lookup, Camera *camera) override
A class which describes a user key press.
Definition Event.h:49
Software Services provide an interface for adding to or changing the software behavior via functional...
Definition SoftwareService.h:9
Software Service Managers take a Software service to modify the behavior of the software.
Definition SoftwareService.h:15
The core String class for the NDEVR API.
Definition String.h:69
Any text displayed to the user should be defined as a TranslatedString which allows the program to lo...
Definition TranslatedString.h:13
A universally unique identifier (UUID) is a 128-bit number used to identify information in computer s...
Definition UUID.h:60
An action that can be tied to a specific KeyPress within the software.
Definition KeyController.h:61
TranslatedString display_name
Definition KeyController.h:63
String id
Definition KeyController.h:62
KeyEvent key_event
Definition KeyController.h:64