X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=synfig-studio%2Ftrunk%2Fsrc%2Fsynfigapp%2Finputdevice.h;h=5ed5b42dcb92f1e2e9d004d84e5eeff14757bf81;hb=9459638ad6797b8139f1e9f0715c96076dbf0890;hp=238033492742d81242dd24b3116c895ef1373f70;hpb=02252941b29de64037116f4d37991a38d9ff0d94;p=synfig.git diff --git a/synfig-studio/trunk/src/synfigapp/inputdevice.h b/synfig-studio/trunk/src/synfigapp/inputdevice.h index 2380334..5ed5b42 100644 --- a/synfig-studio/trunk/src/synfigapp/inputdevice.h +++ b/synfig-studio/trunk/src/synfigapp/inputdevice.h @@ -1,20 +1,21 @@ /* === S Y N F I G ========================================================= */ -/*! \file template.h +/*! \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 Robert B. Quattlebaum Jr. +** Copyright (c) 2002-2005 Robert B. Quattlebaum Jr., Adrian Bentley ** -** This software and associated documentation -** are CONFIDENTIAL and PROPRIETARY property of -** the above-mentioned copyright holder. +** This package is free software; you can redistribute it and/or +** modify it under the terms of the GNU General Public License as +** published by the Free Software Foundation; either version 2 of +** the License, or (at your option) any later version. ** -** You may not copy, print, publish, or in any -** other way distribute this software without -** a prior written agreement with -** the copyright holder. +** This package is distributed in the hope that it will be useful, +** but WITHOUT ANY WARRANTY; without even the implied warranty of +** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +** General Public License for more details. ** \endlegal */ /* ========================================================================= */ @@ -26,6 +27,7 @@ /* === H E A D E R S ======================================================= */ +#include #include #include #include @@ -43,7 +45,17 @@ class DeviceSettings; 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: @@ -55,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::Distance bline_width_; + 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; @@ -75,21 +115,27 @@ 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; }; // END of class InputDevice