X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fsynfigapp%2Finputdevice.h;h=5ed5b42dcb92f1e2e9d004d84e5eeff14757bf81;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=85a1c154f626766ff11c00e2f38beefa66d6338b;hpb=c6af6e1c3816eb3b15c573089b32e6ae65cd2f49;p=synfig.git diff --git a/synfig-studio/trunk/src/synfigapp/inputdevice.h b/synfig-studio/trunk/src/synfigapp/inputdevice.h index 85a1c15..5ed5b42 100644 --- a/synfig-studio/trunk/src/synfigapp/inputdevice.h +++ b/synfig-studio/trunk/src/synfigapp/inputdevice.h @@ -2,7 +2,7 @@ /*! \file inputdevice.h ** \brief Template Header ** -** $Id: inputdevice.h,v 1.1.1.1 2005/01/07 03:34:37 darco Exp $ +** $Id$ ** ** \legal ** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley @@ -27,6 +27,7 @@ /* === H E A D E R S ======================================================= */ +#include #include #include #include @@ -45,6 +46,16 @@ namespace synfigapp { class Settings; +/*! \class InputDevice inputdevice.h "synfigapp/inputdevice.h" +** \brief This class provides a device independent representation the state +** of an input device. +** \see studio::DeviceTracker +** \see synfigapp::Settings +** +** The represenation includes both the GDK state (e.g., mode) and synfigstudio +** state (e.g., outline color). An object of this class can be saved and +** restored using its Settings object, provided by the settings method. +*/ class InputDevice : public etl::shared_object { public: @@ -56,17 +67,45 @@ public: TYPE_CURSOR }; + enum Mode + { + MODE_DISABLED, + MODE_SCREEN, + MODE_WINDOW + }; + + enum AxisUse + { + AXIS_IGNORE, + AXIS_X, + AXIS_Y, + AXIS_PRESSURE, + AXIS_XTILT, + AXIS_YTILT, + AXIS_WHEEL, + AXIS_LAST + }; + + struct DeviceKey + { + unsigned int keyval; + unsigned int modifiers; + }; + typedef etl::handle Handle; private: synfig::String id_; Type type_; synfig::String state_; - synfig::Color foreground_color_; - synfig::Color background_color_; + synfig::Color outline_color_; + synfig::Color fill_color_; synfig::Distance bline_width_; synfig::Real opacity_; synfig::Color::BlendMethod blend_method_; + Mode mode_; + std::vector axes_; + std::vector keys_; DeviceSettings* device_settings; @@ -76,20 +115,26 @@ public: const synfig::String& get_id()const { return id_; } const synfig::String& get_state()const { return state_; } - const synfig::Color& get_foreground_color()const { return foreground_color_; } - const synfig::Color& get_background_color()const { return background_color_; } + const synfig::Color& get_outline_color()const { return outline_color_; } + const synfig::Color& get_fill_color()const { return fill_color_; } const synfig::Distance& get_bline_width()const { return bline_width_; } const synfig::Real& get_opacity()const { return opacity_; } const synfig::Color::BlendMethod& get_blend_method()const { return blend_method_; } Type get_type()const { return type_; } + Mode get_mode()const { return mode_; } + const std::vector & get_axes()const { return axes_; } + const std::vector & get_keys()const { return keys_; } void set_state(const synfig::String& x) { state_=x; } - void set_foreground_color(const synfig::Color& x) { foreground_color_=x; } - void set_background_color(const synfig::Color& x) { background_color_=x; } + void set_outline_color(const synfig::Color& x) { outline_color_=x; } + void set_fill_color(const synfig::Color& x) { fill_color_=x; } void set_bline_width(const synfig::Distance& x) { bline_width_=x; } void set_blend_method(const synfig::Color::BlendMethod& x) { blend_method_=x; } void set_opacity(const synfig::Real& x) { opacity_=x; } void set_type(Type x) { type_=x; } + void set_mode(Mode x) { mode_=x; } + void set_axes(const std::vector& x) { axes_=x; } + void set_keys(const std::vector& x) { keys_=x; } Settings& settings(); const Settings& settings()const;