Code

convert almost all libnrtype to Geom::
[inkscape.git] / src / device-manager.h
index 0b532aae28a979dd82b5272d2ff9481976e1f13d..1bfb5120c109ea6ddb2ec6a4ea195452143f0a6c 100644 (file)
 
 namespace Inkscape {
 
-class InputDevice {
+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();
@@ -34,11 +38,19 @@ private:
     void operator=(InputDevice const &); // no assign
 };
 
-class DeviceManager {
+class DeviceManager : public Glib::Object {
 public:
     static DeviceManager& getManager();
 
     virtual std::list<InputDevice const *> getDevices() = 0;
+    virtual sigc::signal<void, const Glib::RefPtr<InputDevice>& > signalDeviceChanged() = 0;
+    virtual sigc::signal<void, const Glib::RefPtr<InputDevice>& > signalAxesChanged() = 0;
+    virtual sigc::signal<void, const Glib::RefPtr<InputDevice>& > signalButtonsChanged() = 0;
+    virtual sigc::signal<void, const Glib::RefPtr<InputDevice>& > 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;
 
 protected:
     DeviceManager();