gi-gdk-3.0.14: Gdk bindings

CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (garetxe@gmail.com)
Safe HaskellNone
LanguageHaskell2010

GI.Gdk.Objects.Device

Contents

Description

The Device object represents a single input device, such as a keyboard, a mouse, a touchpad, etc.

See the DeviceManager documentation for more information about the various kinds of master and slave devices, and their relationships.

Synopsis

Exported types

toDevice :: (MonadIO m, IsDevice o) => o -> m Device Source #

Methods

getAssociatedDevice

deviceGetAssociatedDevice Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> m (Maybe Device)

Returns: The associated device, or Nothing

Returns the associated device to device, if device is of type DeviceTypeMaster, it will return the paired pointer or keyboard.

If device is of type DeviceTypeSlave, it will return the master device to which device is attached to.

If device is of type DeviceTypeFloating, Nothing will be returned, as there is no associated device.

Since: 3.0

getAxes

deviceGetAxes Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> m [AxisFlags] 

Returns the axes currently available on the device.

Since: 3.22

getAxisUse

deviceGetAxisUse Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a pointer Device.

-> Word32

index_: the index of the axis.

-> m AxisUse

Returns: a AxisUse specifying how the axis is used.

Returns the axis use for index_.

Since: 2.20

getDeviceType

deviceGetDeviceType Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> m DeviceType

Returns: the DeviceType for device.

Returns the device type for device.

Since: 3.0

getDisplay

deviceGetDisplay Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> m Display

Returns: a Display. This memory is owned by GTK+, and must not be freed or unreffed.

Returns the Display to which device pertains.

Since: 3.0

getHasCursor

deviceGetHasCursor Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> m Bool

Returns: True if the pointer follows device motion

Determines whether the pointer follows device motion. This is not meaningful for keyboard devices, which don't have a pointer.

Since: 2.20

getKey

deviceGetKey Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device.

-> Word32

index_: the index of the macro button to get.

-> m (Bool, Word32, [ModifierType])

Returns: True if keyval is set for index.

If index_ has a valid keyval, this function will return True and fill in keyval and modifiers with the keyval settings.

Since: 2.20

getLastEventWindow

deviceGetLastEventWindow Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device, with a source other than InputSourceKeyboard

-> m (Maybe Window)

Returns: the last window the device

Gets information about which window the given pointer device is in, based on events that have been received so far from the display server. If another application has a pointer grab, or this application has a grab with owner_events = False, Nothing may be returned even if the pointer is physically over one of this application's windows.

Since: 3.12

getMode

deviceGetMode Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> m InputMode

Returns: a InputSource

Determines the mode of the device.

Since: 2.20

getNAxes

deviceGetNAxes Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a pointer Device

-> m Int32

Returns: the number of axes.

Returns the number of axes the device currently has.

Since: 3.0

getNKeys

deviceGetNKeys Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> m Int32

Returns: the number of keys.

Returns the number of keys the device currently has.

Since: 2.24

getName

deviceGetName Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> m Text

Returns: a name

Determines the name of the device.

Since: 2.20

getPosition

deviceGetPosition Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: pointer device to query status about.

-> m (Screen, Int32, Int32) 

Gets the current location of device. As a slave device coordinates are those of its master pointer, This function may not be called on devices of type DeviceTypeSlave, unless there is an ongoing grab on them, see deviceGrab.

Since: 3.0

getPositionDouble

deviceGetPositionDouble Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: pointer device to query status about.

-> m (Screen, Double, Double) 

Gets the current location of device in double precision. As a slave device's coordinates are those of its master pointer, this function may not be called on devices of type DeviceTypeSlave, unless there is an ongoing grab on them. See deviceGrab.

Since: 3.10

getProductId

deviceGetProductId Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a slave Device

-> m (Maybe Text)

Returns: the product ID, or Nothing

Returns the product ID of this device, or Nothing if this information couldn't be obtained. This ID is retrieved from the device, and is thus constant for it. See deviceGetVendorId for more information.

Since: 3.16

getSeat

deviceGetSeat Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: A Device

-> m Seat

Returns: A Seat. This memory is owned by GTK+ and must not be freed.

Returns the Seat the device belongs to.

Since: 3.20

getSource

deviceGetSource Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> m InputSource

Returns: a InputSource

Determines the type of the device.

Since: 2.20

getVendorId

deviceGetVendorId Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a slave Device

-> m (Maybe Text)

Returns: the vendor ID, or Nothing

Returns the vendor ID of this device, or Nothing if this information couldn't be obtained. This ID is retrieved from the device, and is thus constant for it.

This function, together with deviceGetProductId, can be used to eg. compose Settings paths to store settings for this device.

C code

static GSettings *
get_device_settings (GdkDevice *device)
{
  const gchar *vendor, *product;
  GSettings *settings;
  GdkDevice *device;
  gchar *path;

  vendor = gdk_device_get_vendor_id (device);
  product = gdk_device_get_product_id (device);

  path = g_strdup_printf ("/org/example/app/devices/%s:%s/", vendor, product);
  settings = g_settings_new_with_path (DEVICE_SCHEMA, path);
  g_free (path);

  return settings;
}

Since: 3.16

getWindowAtPosition

deviceGetWindowAtPosition Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: pointer Device to query info to.

-> m (Maybe Window, Int32, Int32)

Returns: the Window under the device position, or Nothing.

Obtains the window underneath device, returning the location of the device in winX and winY. Returns Nothing if the window tree under device is not known to GDK (for example, belongs to another application).

As a slave device coordinates are those of its master pointer, This function may not be called on devices of type DeviceTypeSlave, unless there is an ongoing grab on them, see deviceGrab.

Since: 3.0

getWindowAtPositionDouble

deviceGetWindowAtPositionDouble Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: pointer Device to query info to.

-> m (Maybe Window, Double, Double)

Returns: the Window under the device position, or Nothing.

Obtains the window underneath device, returning the location of the device in winX and winY in double precision. Returns Nothing if the window tree under device is not known to GDK (for example, belongs to another application).

As a slave device coordinates are those of its master pointer, This function may not be called on devices of type DeviceTypeSlave, unless there is an ongoing grab on them, see deviceGrab.

Since: 3.0

grab

deviceGrab Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a, IsWindow b, IsCursor c) 
=> a

device: a Device. To get the device you can use gtk_get_current_event_device() or eventGetDevice if the grab is in reaction to an event. Also, you can use deviceManagerGetClientPointer but only in code that isn’t triggered by a Event and there aren’t other means to get a meaningful Device to operate on.

-> b

window: the Window which will own the grab (the grab window)

-> GrabOwnership

grabOwnership: specifies the grab ownership.

-> Bool

ownerEvents: if False then all device events are reported with respect to window and are only reported if selected by eventMask. If True then pointer events for this application are reported as normal, but pointer events outside this application are reported with respect to window and only if selected by eventMask. In either mode, unreported events are discarded.

-> [EventMask]

eventMask: specifies the event mask, which is used in accordance with ownerEvents.

-> Maybe c

cursor: the cursor to display while the grab is active if the device is a pointer. If this is Nothing then the normal cursors are used for window and its descendants, and the cursor for window is used elsewhere.

-> Word32

time_: the timestamp of the event which led to this pointer grab. This usually comes from the Event struct, though CURRENT_TIME can be used if the time isn’t known.

-> m GrabStatus

Returns: GrabStatusSuccess if the grab was successful.

Deprecated: (Since version 3.20.)Use seatGrab instead.

Grabs the device so that all events coming from this device are passed to this application until the device is ungrabbed with deviceUngrab, or the window becomes unviewable. This overrides any previous grab on the device by this client.

Note that device and window need to be on the same display.

Device grabs are used for operations which need complete control over the given device events (either pointer or keyboard). For example in GTK+ this is used for Drag and Drop operations, popup menus and such.

Note that if the event mask of an X window has selected both button press and button release events, then a button press event will cause an automatic pointer grab until the button is released. X does this automatically since most applications expect to receive button press and release events in pairs. It is equivalent to a pointer grab on the window with ownerEvents set to True.

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 EventGrabBroken events that are emitted when the grab ends unvoluntarily.

Since: 3.0

grabInfoLibgtkOnly

deviceGrabInfoLibgtkOnly Source #

Arguments

:: (HasCallStack, MonadIO m, IsDisplay a, IsDevice b) 
=> a

display: the display for which to get the grab information

-> b

device: device to get the grab information from

-> m (Bool, Window, Bool)

Returns: True if this application currently has the keyboard grabbed.

Deprecated: (Since version 3.16)The symbol was never meant to be used outside of GTK+

Determines information about the current keyboard grab. This is not public API and must not be used by applications.

listAxes

deviceListAxes Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a pointer Device

-> m [Atom]

Returns: A List of GdkAtoms, free with g_list_free().

Returns a List of GdkAtoms, containing the labels for the axes that device currently has.

Since: 3.0

listSlaveDevices

deviceListSlaveDevices Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> m [Device]

Returns: the list of slave devices, or Nothing. The list must be freed with g_list_free(), the contents of the list are owned by GTK+ and should not be freed.

If the device if of type DeviceTypeMaster, it will return the list of slave devices attached to it, otherwise it will return Nothing

setAxisUse

deviceSetAxisUse Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a pointer Device

-> Word32

index_: the index of the axis

-> AxisUse

use: specifies how the axis is used

-> m () 

Specifies how an axis of a device is used.

setKey

deviceSetKey Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> Word32

index_: the index of the macro button to set

-> Word32

keyval: the keyval to generate

-> [ModifierType]

modifiers: the modifiers to set

-> m () 

Specifies the X key event to generate when a macro button of a device is pressed.

setMode

deviceSetMode Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device.

-> InputMode

mode: the input mode.

-> m Bool

Returns: True if the mode was successfully changed.

Sets a the mode of an input device. The mode controls if the device is active and whether the device’s range is mapped to the entire screen or to a single window.

Note: This is only meaningful for floating devices, master devices (and slaves connected to these) drive the pointer cursor, which is not limited by the input mode.

ungrab

deviceUngrab Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a) 
=> a

device: a Device

-> Word32

time_: a timestap (e.g. CURRENT_TIME).

-> m () 

Deprecated: (Since version 3.20.)Use seatUngrab instead.

Release any grab on device.

Since: 3.0

warp

deviceWarp Source #

Arguments

:: (HasCallStack, MonadIO m, IsDevice a, IsScreen b) 
=> a

device: the device to warp.

-> b

screen: the screen to warp device to.

-> Int32

x: the X coordinate of the destination.

-> Int32

y: the Y coordinate of the destination.

-> m () 

Warps device in display to the point x,y on the screen screen, unless the device is confined to a window by a grab, in which case it will be moved as far as allowed by the grab. Warping the pointer creates events as if the user had moved the mouse instantaneously to the destination.

Note that the pointer should normally be under the control of the user. This function was added to cover some rare use cases like keyboard navigation support for the color picker in the GtkColorSelectionDialog.

Since: 3.0

Properties

associatedDevice

axes

deviceManager

display

hasCursor

inputMode

inputSource

nAxes

name

numTouches

productId

seat

clearDeviceSeat :: (MonadIO m, IsDevice o) => o -> m () Source #

setDeviceSeat :: (MonadIO m, IsDevice o, IsSeat a) => o -> a -> m () Source #

tool

type

vendorId

Signals

changed

type C_DeviceChangedCallback = Ptr () -> Ptr () -> IO () Source #

toolChanged