From cca66b9ec4e494c1d919bff0f71a820d8afab1fa Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 20:24:48 +0200 Subject: Adding upstream version 1.2.2. Signed-off-by: Daniel Baumann --- src/device-manager.h | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100644 src/device-manager.h (limited to 'src/device-manager.h') diff --git a/src/device-manager.h b/src/device-manager.h new file mode 100644 index 0000000..07f4508 --- /dev/null +++ b/src/device-manager.h @@ -0,0 +1,88 @@ +// SPDX-License-Identifier: GPL-2.0-or-later +/* + * Inkscape::DeviceManager - a view of input devices available. + * + * Copyright 2010 Jon A. Cruz + * + * Released under GNU GPL v2+, read the file 'COPYING' for more information. + */ + +#ifndef SEEN_INKSCAPE_DEVICE_MANAGER_H +#define SEEN_INKSCAPE_DEVICE_MANAGER_H + + +#include +#include +#include + +namespace Inkscape { + +class InputDevice : public Glib::Object { +public: + virtual Glib::ustring getId() const = 0; + virtual Glib::ustring getName() const = 0; + virtual Gdk::InputSource getSource() const = 0; + virtual Gdk::InputMode getMode() const = 0; + virtual bool hasCursor() const = 0; + virtual gint getNumAxes() const = 0; + virtual gint getNumKeys() const = 0; + virtual Glib::ustring getLink() const = 0; + virtual gint getLiveAxes() const = 0; + virtual gint getLiveButtons() const = 0; + +protected: + InputDevice(); + ~InputDevice() override; + +private: + InputDevice(InputDevice const &) = delete; // no copy + void operator=(InputDevice const &) = delete; // no assign +}; + +class DeviceManager : public Glib::Object { +public: + static DeviceManager& getManager(); + + virtual void loadConfig() = 0; + virtual void saveConfig() = 0; + + virtual std::list > getDevices() = 0; + + virtual sigc::signal > signalDeviceChanged() = 0; + virtual sigc::signal > signalAxesChanged() = 0; + virtual sigc::signal > signalButtonsChanged() = 0; + virtual sigc::signal > signalLinkChanged() = 0; + + virtual void addAxis(Glib::ustring const & id, gint axis) = 0; + virtual void addButton(Glib::ustring const & id, gint button) = 0; + virtual void setLinkedTo(Glib::ustring const & id, Glib::ustring const& link) = 0; + + virtual void setMode( Glib::ustring const & id, Gdk::InputMode mode ) = 0; + virtual void setAxisUse( Glib::ustring const & id, guint index, Gdk::AxisUse use ) = 0; + virtual void setKey( Glib::ustring const & id, guint index, guint keyval, Gdk::ModifierType mods ) = 0; + +protected: + DeviceManager(); + ~DeviceManager() override; + +private: + DeviceManager(DeviceManager const &) = delete; // no copy + void operator=(DeviceManager const &) = delete; // no assign +}; + + + +} // namespace Inkscape + +#endif // SEEN_INKSCAPE_DEVICE_MANAGER_H + +/* + Local Variables: + mode:c++ + c-file-style:"stroustrup" + c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) + indent-tabs-mode:nil + fill-column:99 + End: +*/ +// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:fileencoding=utf-8:textwidth=99 : -- cgit v1.2.3