SeatProtocol
public protocol SeatProtocol : ObjectProtocol
The SeatProtocol
protocol exposes the methods and properties of an underlying GdkSeat
instance.
The default implementation of these can be found in the protocol extension below.
For a concrete class that implements these methods and properties, see Seat
.
Alternatively, use SeatRef
as a lighweight, unowned
reference if you already have an instance you just want to use.
The GdkSeat
object represents a collection of input devices
that belong to a user.
-
Untyped pointer to the underlying
GdkSeat
instance.Declaration
Swift
var ptr: UnsafeMutableRawPointer! { get }
-
seat_ptr
Default implementationTyped pointer to the underlying
GdkSeat
instance.Default Implementation
Return the stored, untyped pointer as a typed pointer to the
GdkSeat
instance.Declaration
Swift
var seat_ptr: UnsafeMutablePointer<GdkSeat>! { get }
-
Required Initialiser for types conforming to
SeatProtocol
Declaration
Swift
init(raw: UnsafeMutableRawPointer)
-
bind(property:
Extension methodto: _: flags: transformFrom: transformTo: ) Bind a
SeatPropertyName
source property to a given target object.Declaration
Swift
@discardableResult @inlinable func bind<Q, T>(property source_property: SeatPropertyName, to target: T, _ target_property: Q, flags f: BindingFlags = .default, transformFrom transform_from: @escaping GLibObject.ValueTransformer = { $0.transform(destValue: $1) }, transformTo transform_to: @escaping GLibObject.ValueTransformer = { $0.transform(destValue: $1) }) -> BindingRef! where Q : PropertyNameProtocol, T : ObjectProtocol
Parameters
source_property
the source property to bind
target
the target object to bind to
target_property
the target property to bind to
flags
the flags to pass to the
Binding
transform_from
ValueTransformer
to use for forward transformationtransform_to
ValueTransformer
to use for backwards transformationReturn Value
binding reference or
nil
in case of an error -
get(property:
Extension method) Get the value of a Seat property
Declaration
Swift
@inlinable func get(property: SeatPropertyName) -> GLibObject.Value
Parameters
property
the property to get the value for
Return Value
the value of the named property
-
set(property:
Extension methodvalue: ) Set the value of a Seat property. Note that this will only have an effect on properties that are writable and not construct-only!
Declaration
Swift
@inlinable func set(property: SeatPropertyName, value v: GLibObject.Value)
Parameters
property
the property to get the value for
Return Value
the value of the named property
-
connect(signal:
Extension methodflags: handler: ) Connect a Swift signal handler to the given, typed
SeatSignalName
signalDeclaration
Swift
@discardableResult @inlinable func connect(signal s: SeatSignalName, flags f: ConnectFlags = ConnectFlags(0), handler h: @escaping SignalHandler) -> Int
Parameters
signal
The signal to connect
flags
The connection flags to use
data
A pointer to user data to provide to the callback
destroyData
A
GClosureNotify
C function to destroy the data pointed to byuserData
handler
The Swift signal handler (function or callback) to invoke on the given signal
Return Value
The signal handler ID (always greater than 0 for successful connections)
-
connect(signal:
Extension methodflags: data: destroyData: signalHandler: ) Connect a C signal handler to the given, typed
SeatSignalName
signalDeclaration
Swift
@discardableResult @inlinable func connect(signal s: SeatSignalName, flags f: ConnectFlags = ConnectFlags(0), data userData: gpointer!, destroyData destructor: GClosureNotify? = nil, signalHandler h: @escaping GCallback) -> Int
Parameters
signal
The signal to connect
flags
The connection flags to use
data
A pointer to user data to provide to the callback
destroyData
A
GClosureNotify
C function to destroy the data pointed to byuserData
signalHandler
The C function to be called on the given signal
Return Value
The signal handler ID (always greater than 0 for successful connections)
-
onDeviceAdded(flags:
Extension methodhandler: ) The
device-added
signal is emitted when a new input device is related to this seat.Note
This represents the underlyingdevice-added
signalDeclaration
Parameters
flags
Flags
unownedSelf
Reference to instance of self
device
the newly added
GdkDevice
.handler
The signal handler to call Run the given callback whenever the
deviceAdded
signal is emitted -
deviceAddedSignal
Extension methodTyped
device-added
signal for using theconnect(signal:)
methodsDeclaration
Swift
static var deviceAddedSignal: SeatSignalName { get }
-
onDeviceRemoved(flags:
Extension methodhandler: ) The
device-removed
signal is emitted when an input device is removed (e.g. unplugged).Note
This represents the underlyingdevice-removed
signalDeclaration
Parameters
flags
Flags
unownedSelf
Reference to instance of self
device
the just removed
GdkDevice
.handler
The signal handler to call Run the given callback whenever the
deviceRemoved
signal is emitted -
deviceRemovedSignal
Extension methodTyped
device-removed
signal for using theconnect(signal:)
methodsDeclaration
Swift
static var deviceRemovedSignal: SeatSignalName { get }
-
onToolAdded(flags:
Extension methodhandler: ) The
tool-added
signal is 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 theGdkDevice::tool-changed
signal accordingly.A same tool may be used by several devices.
Note
This represents the underlyingtool-added
signalDeclaration
Swift
@discardableResult @inlinable func onToolAdded(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: SeatRef, _ tool: DeviceToolRef) -> Void) -> Int
Parameters
flags
Flags
unownedSelf
Reference to instance of self
tool
the new
GdkDeviceTool
known to the seathandler
The signal handler to call Run the given callback whenever the
toolAdded
signal is emitted -
toolAddedSignal
Extension methodTyped
tool-added
signal for using theconnect(signal:)
methodsDeclaration
Swift
static var toolAddedSignal: SeatSignalName { get }
-
onToolRemoved(flags:
Extension methodhandler: ) This signal is emitted whenever a tool is no longer known to this
seat
.Note
This represents the underlyingtool-removed
signalDeclaration
Swift
@discardableResult @inlinable func onToolRemoved(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: SeatRef, _ tool: DeviceToolRef) -> Void) -> Int
Parameters
flags
Flags
unownedSelf
Reference to instance of self
tool
the just removed
GdkDeviceTool
handler
The signal handler to call Run the given callback whenever the
toolRemoved
signal is emitted -
toolRemovedSignal
Extension methodTyped
tool-removed
signal for using theconnect(signal:)
methodsDeclaration
Swift
static var toolRemovedSignal: SeatSignalName { get }
-
onNotifyDisplay(flags:
Extension methodhandler: ) The notify signal is emitted on an object when one of its properties has its value set through
g_object_set_property()
,g_object_set()
, et al.Note that getting this signal doesn’t itself guarantee that the value of the property has actually changed. When it is emitted is determined by the derived GObject class. If the implementor did not create the property with
G_PARAM_EXPLICIT_NOTIFY
, then any call tog_object_set_property()
results innotify
being emitted, even if the new value is the same as the old. If they did passG_PARAM_EXPLICIT_NOTIFY
, then this signal is emitted only when they explicitly callg_object_notify()
org_object_notify_by_pspec()
, and common practice is to do that only when the value has actually changed.This signal is typically used to obtain change notification for a single property, by specifying the property name as a detail in the
g_signal_connect()
call, like this: (C Language Example):g_signal_connect (text_view->buffer, "notify::paste-target-list", G_CALLBACK (gtk_text_view_target_list_notify), text_view)
It is important to note that you must use canonical parameter names as detail strings for the notify signal.
Note
This represents the underlyingnotify::display
signalDeclaration
Swift
@discardableResult @inlinable func onNotifyDisplay(flags: ConnectFlags = ConnectFlags(0), handler: @escaping (_ unownedSelf: SeatRef, _ pspec: ParamSpecRef) -> Void) -> Int
Parameters
flags
Flags
unownedSelf
Reference to instance of self
pspec
the
GParamSpec
of the property which changed.handler
The signal handler to call Run the given callback whenever the
notifyDisplay
signal is emitted -
notifyDisplaySignal
Extension methodTyped
notify::display
signal for using theconnect(signal:)
methodsDeclaration
Swift
static var notifyDisplaySignal: SeatSignalName { get }
-
getCapabilities()
Extension methodReturns the capabilities this
GdkSeat
currently has.Declaration
Swift
@inlinable func getCapabilities() -> SeatCapabilities
-
getDisplay()
Extension methodReturns the
GdkDisplay
this seat belongs to.Declaration
Swift
@inlinable func getDisplay() -> DisplayRef!
-
getKeyboard()
Extension methodReturns the master device that routes keyboard events.
Declaration
Swift
@inlinable func getKeyboard() -> DeviceRef!
-
getPointer()
Extension methodReturns the master device that routes pointer events.
Declaration
Swift
@inlinable func getPointer() -> DeviceRef!
-
getSlaves(capabilities:
Extension method) Returns the slave devices that match the given capabilities.
Declaration
Swift
@inlinable func getSlaves(capabilities: SeatCapabilities) -> GLib.ListRef!
-
Grabs the seat so that all events corresponding to the given
capabilities
are passed to this application until the seat is ungrabbed withgdk_seat_ungrab()
, or the window becomes hidden. This overrides any previous grab on the seat by this client.As a rule of thumb, if a grab is desired over
GDK_SEAT_CAPABILITY_POINTER
, all other “pointing” capabilities (eg.GDK_SEAT_CAPABILITY_TOUCH
) should be grabbed too, so the user is able to interact with all of those while the grab holds, you should thus useGDK_SEAT_CAPABILITY_ALL_POINTING
most commonly.Grabs are used for operations which need complete control over the events corresponding to the given capabilities. For example in GTK+ this is used for Drag and Drop operations, popup menus and such.
Note that if the event mask of a
GdkWindow
has selected both button press and button release events, or touch begin and touch end, then a press event will cause an automatic grab until the button is released, equivalent to a grab on the window withowner_events
set totrue
. This is done because most applications expect to receive paired press and release events.If you set up anything at the time you take the grab that needs to be cleaned up when the grab ends, you should handle the
GdkEventGrabBroken
events that are emitted when the grab ends unvoluntarily.Declaration
Swift
@inlinable func grab<WindowT>(window: WindowT, capabilities: SeatCapabilities, ownerEvents: Bool, cursor: CursorRef? = nil, event: EventRef? = nil, prepareFunc: GdkSeatGrabPrepareFunc? = nil, prepareFuncData: gpointer! = nil) -> GdkGrabStatus where WindowT : WindowProtocol
-
Grabs the seat so that all events corresponding to the given
capabilities
are passed to this application until the seat is ungrabbed withgdk_seat_ungrab()
, or the window becomes hidden. This overrides any previous grab on the seat by this client.As a rule of thumb, if a grab is desired over
GDK_SEAT_CAPABILITY_POINTER
, all other “pointing” capabilities (eg.GDK_SEAT_CAPABILITY_TOUCH
) should be grabbed too, so the user is able to interact with all of those while the grab holds, you should thus useGDK_SEAT_CAPABILITY_ALL_POINTING
most commonly.Grabs are used for operations which need complete control over the events corresponding to the given capabilities. For example in GTK+ this is used for Drag and Drop operations, popup menus and such.
Note that if the event mask of a
GdkWindow
has selected both button press and button release events, or touch begin and touch end, then a press event will cause an automatic grab until the button is released, equivalent to a grab on the window withowner_events
set totrue
. This is done because most applications expect to receive paired press and release events.If you set up anything at the time you take the grab that needs to be cleaned up when the grab ends, you should handle the
GdkEventGrabBroken
events that are emitted when the grab ends unvoluntarily.Declaration
Swift
@inlinable func grab<CursorT, EventT, WindowT>(window: WindowT, capabilities: SeatCapabilities, ownerEvents: Bool, cursor: CursorT?, event: EventT?, prepareFunc: GdkSeatGrabPrepareFunc? = nil, prepareFuncData: gpointer! = nil) -> GdkGrabStatus where CursorT : CursorProtocol, EventT : EventProtocol, WindowT : WindowProtocol
-
ungrab()
Extension methodReleases a grab added through
gdk_seat_grab()
.Declaration
Swift
@inlinable func ungrab()
-
capabilities
Extension methodReturns the capabilities this
GdkSeat
currently has.Declaration
Swift
@inlinable var capabilities: SeatCapabilities { get }
-
display
Extension methodGdkDisplay
of this seat.Declaration
Swift
@inlinable var display: DisplayRef! { get }
-
keyboard
Extension methodReturns the master device that routes keyboard events.
Declaration
Swift
@inlinable var keyboard: DeviceRef! { get }
-
pointer
Extension methodReturns the master device that routes pointer events.
Declaration
Swift
@inlinable var pointer: DeviceRef! { get }
-
parentInstance
Extension methodUndocumented
Declaration
Swift
@inlinable var parentInstance: GObject { get }