// Generated by gmmproc 2.84.0 -- DO NOT MODIFY! #ifndef _GDKMM_SEAT_H #define _GDKMM_SEAT_H #include #include /* Copyright (C) 2015 The gtkmm Development Team * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * * This library 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 * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public * License along with this library. If not, see . */ #include #include #include #include #include #ifndef DOXYGEN_SHOULD_SKIP_THIS using GdkSeat = struct _GdkSeat; using GdkSeatClass = struct _GdkSeatClass; #endif /* DOXYGEN_SHOULD_SKIP_THIS */ #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Gdk { class GDKMM_API Seat_Class; } // namespace Gdk #endif //DOXYGEN_SHOULD_SKIP_THIS namespace Gdk { class GDKMM_API DeviceTool; class GDKMM_API Display; class GDKMM_API Surface; /** A Gdk::Seat object represents a collection of input devices that belong to a user. * * @newin{3,20} */ class GDKMM_API Seat : public Glib::Object { #ifndef DOXYGEN_SHOULD_SKIP_THIS public: using CppObjectType = Seat; using CppClassType = Seat_Class; using BaseObjectType = GdkSeat; using BaseClassType = GdkSeatClass; // noncopyable Seat(const Seat&) = delete; Seat& operator=(const Seat&) = delete; private: friend class Seat_Class; static CppClassType seat_class_; protected: explicit Seat(const Glib::ConstructParams& construct_params); explicit Seat(GdkSeat* castitem); #endif /* DOXYGEN_SHOULD_SKIP_THIS */ public: Seat(Seat&& src) noexcept; Seat& operator=(Seat&& src) noexcept; ~Seat() noexcept override; /** Get the GType for this class, for use with the underlying GObject type system. */ static GType get_type() G_GNUC_CONST; #ifndef DOXYGEN_SHOULD_SKIP_THIS static GType get_base_type() G_GNUC_CONST; #endif ///Provides access to the underlying C GObject. GdkSeat* gobj() { return reinterpret_cast(gobject_); } ///Provides access to the underlying C GObject. const GdkSeat* gobj() const { return reinterpret_cast(gobject_); } ///Provides access to the underlying C instance. The caller is responsible for unrefing it. Use when directly setting fields in structs. GdkSeat* gobj_copy(); private: protected: Seat(); public: /** @addtogroup gdkmmEnums gdkmm Enums and Flags */ /** * @var Capabilities::NONE * No input capabilities. * * @var Capabilities::POINTER * The seat has a pointer (e.g. mouse). * * @var Capabilities::TOUCH * The seat has touchscreen(s) attached. * * @var Capabilities::TABLET_STYLUS * The seat has drawing tablet(s) attached. * * @var Capabilities::KEYBOARD * The seat has keyboard(s) attached. * * @var Capabilities::TABLET_PAD * The seat has drawing tablet pad(s) attached. * * @var Capabilities::ALL_POINTING * The union of all pointing capabilities. * * @var Capabilities::ALL * The union of all capabilities. */ /** Flags describing the seat capabilities. * * @ingroup gdkmmEnums * @par Bitwise operators: * Seat::Capabilities operator|(Seat::Capabilities, Seat::Capabilities)
* Seat::Capabilities operator&(Seat::Capabilities, Seat::Capabilities)
* Seat::Capabilities operator^(Seat::Capabilities, Seat::Capabilities)
* Seat::Capabilities operator~(Seat::Capabilities)
* Seat::Capabilities& operator|=(Seat::Capabilities&, Seat::Capabilities)
* Seat::Capabilities& operator&=(Seat::Capabilities&, Seat::Capabilities)
* Seat::Capabilities& operator^=(Seat::Capabilities&, Seat::Capabilities)
*/ enum class Capabilities { NONE = 0x0, POINTER = 1 << 0, TOUCH = 1 << 1, TABLET_STYLUS = 1 << 2, KEYBOARD = 1 << 3, TABLET_PAD = 1 << 4, ALL_POINTING = 0x7, ALL = 0x1F }; /** Returns the `Gdk::Display` this seat belongs to. * * @return A `Gdk::Display`. This object * is owned by GTK and must not be freed. */ Glib::RefPtr get_display(); /** Returns the `Gdk::Display` this seat belongs to. * * @return A `Gdk::Display`. This object * is owned by GTK and must not be freed. */ Glib::RefPtr get_display() const; /** Returns the capabilities this `Gdk::Seat` currently has. * * @return The seat capabilities. */ Capabilities get_capabilities() const; /** Returns the devices that match the given capabilities. * * @param capabilities Capabilities to get devices for. * @return A list * of `Gdk::Devices`. */ std::vector> get_devices(Capabilities capabilities); /** Returns the devices that match the given capabilities. * * @param capabilities Capabilities to get devices for. * @return A list * of `Gdk::Devices`. */ std::vector> get_devices(Capabilities capabilities) const; /** Returns all `Gdk::DeviceTools` that are known to the application. * * @return A list of tools. */ std::vector> get_tools(); /** Returns all `Gdk::DeviceTools` that are known to the application. * * @return A list of tools. */ std::vector> get_tools() const; /** Returns the device that routes pointer events. * * @return A `Gdk::Device` with pointer * capabilities. This object is owned by GTK and must not be freed. */ Glib::RefPtr get_pointer(); /** Returns the device that routes pointer events. * * @return A `Gdk::Device` with pointer * capabilities. This object is owned by GTK and must not be freed. */ Glib::RefPtr get_pointer() const; /** Returns the device that routes keyboard events. * * @return A `Gdk::Device` with keyboard * capabilities. This object is owned by GTK and must not be freed. */ Glib::RefPtr get_keyboard(); /** Returns the device that routes keyboard events. * * @return A `Gdk::Device` with keyboard * capabilities. This object is owned by GTK and must not be freed. */ Glib::RefPtr get_keyboard() const; // We use no_default_handler because GdkSeatClass is private. /** * @par Slot Prototype: * void on_my_%device_added(const Glib::RefPtr& device) * * Flags: Run Last * * Emitted when a new input device is related to this seat. * * @param device The newly added `Gdk::Device`. */ Glib::SignalProxy&)> signal_device_added(); /** * @par Slot Prototype: * void on_my_%device_removed(const Glib::RefPtr& device) * * Flags: Run Last * * Emitted when an input device is removed (e.g.\ unplugged). * * @param device The just removed `Gdk::Device`. */ Glib::SignalProxy&)> signal_device_removed(); /** * @par Slot Prototype: * void on_my_%tool_added(const Glib::RefPtr& device) * * Flags: Run Last * * Emitted whenever a new tool is made known to the seat. * * The tool may later be assigned to a device (i.e. on * proximity with a tablet). The device will emit the * Gdk::Device::signal_tool_changed() signal accordingly. * * A same tool may be used by several devices. * * @newin{3,94} * * @param device The new `Gdk::DeviceTool` known to the seat. */ Glib::SignalProxy&)> signal_tool_added(); /** * @par Slot Prototype: * void on_my_%tool_removed(const Glib::RefPtr& device) * * Flags: Run Last * * Emitted whenever a tool is no longer known to this @a seat. * * @newin{3,94} * * @param device The just removed `Gdk::DeviceTool`. */ Glib::SignalProxy&)> signal_tool_removed(); /** `Gdk::Display` of this seat. * * @return A PropertyProxy_ReadOnly that allows you to get the value of the property, * or receive notification when the value of the property changes. */ Glib::PropertyProxy_ReadOnly< Glib::RefPtr > property_display() const; public: public: //C++ methods used to invoke GTK+ virtual functions: protected: //GTK+ Virtual Functions (override these to change behaviour): //Default Signal Handlers:: }; } // namespace Gdk namespace Gdk { /** @ingroup gdkmmEnums */ inline constexpr Seat::Capabilities operator|(Seat::Capabilities lhs, Seat::Capabilities rhs) { return static_cast(static_cast(lhs) | static_cast(rhs)); } /** @ingroup gdkmmEnums */ inline constexpr Seat::Capabilities operator&(Seat::Capabilities lhs, Seat::Capabilities rhs) { return static_cast(static_cast(lhs) & static_cast(rhs)); } /** @ingroup gdkmmEnums */ inline constexpr Seat::Capabilities operator^(Seat::Capabilities lhs, Seat::Capabilities rhs) { return static_cast(static_cast(lhs) ^ static_cast(rhs)); } /** @ingroup gdkmmEnums */ inline constexpr Seat::Capabilities operator~(Seat::Capabilities flags) { return static_cast(~static_cast(flags)); } /** @ingroup gdkmmEnums */ inline Seat::Capabilities& operator|=(Seat::Capabilities& lhs, Seat::Capabilities rhs) { return (lhs = static_cast(static_cast(lhs) | static_cast(rhs))); } /** @ingroup gdkmmEnums */ inline Seat::Capabilities& operator&=(Seat::Capabilities& lhs, Seat::Capabilities rhs) { return (lhs = static_cast(static_cast(lhs) & static_cast(rhs))); } /** @ingroup gdkmmEnums */ inline Seat::Capabilities& operator^=(Seat::Capabilities& lhs, Seat::Capabilities rhs) { return (lhs = static_cast(static_cast(lhs) ^ static_cast(rhs))); } } // namespace Gdk #ifndef DOXYGEN_SHOULD_SKIP_THIS namespace Glib { template <> class GDKMM_API Value : public Glib::Value_Flags { public: static GType value_type() G_GNUC_CONST; }; } // namespace Glib #endif /* DOXYGEN_SHOULD_SKIP_THIS */ namespace Glib { /** A Glib::wrap() method for this object. * * @param object The C instance. * @param take_copy False if the result should take ownership of the C instance. True if it should take a new copy or ref. * @result A C++ instance that wraps this C instance. * * @relates Gdk::Seat */ GDKMM_API Glib::RefPtr wrap(GdkSeat* object, bool take_copy = false); } #endif /* _GDKMM_SEAT_H */