Basics
Guides
API Reference
Basics
Guides
API Reference
[34:7] extends: object
Used to create and destroy cursors. Cursors are immutable objects, so once you created them, there is no way to modify them later. You should create a new cursor when you want to change something about it. Cursors by themselves are not very interesting: they must be bound to a window for users to see them. This is done with [method@Gdk.Surface.set_cursor] or [method@Gdk.Surface.set_device_cursor]. Applications will typically use higher-level GTK functions such as gtk_widget_set_cursor() instead. Cursors are not bound to a given [class@Gdk.Display], so they can be shared. However, the appearance of cursors may vary when used on different platforms.
platform's own cursors can be created with [ctor@Gdk.Cursor.new_from_name]. That function lists the commonly available names that are shared with the CSS specification. Other names may be available, depending on the platform in use. On some platforms, what images are used for named cursors may be influenced by the cursor theme. Another option to create a cursor is to use [ctor@Gdk.Cursor.new_from_texture] and provide an image to use for the cursor. To ease work with unsupported cursors, a fallback cursor can be provided. If a [class@Gdk.Surface] cannot use a cursor because of the reasons mentioned above, it will try the fallback cursor. Fallback cursors can themselves have fallback cursors again, so it is possible to provide a chain of progressively easier to support cursors. If none of the provided cursors can be supported, the default cursor will be the ultimate fallback.
Cursor (name = null, fallback = null)
Creates a new cursor by looking up @name in the current cursor theme. A recommended set of cursor names that will work across different platforms can be found in the CSS specification: | | | | | --- | --- | --- | | | "none" | No cursor | |
| "default" | The default cursor | |
| "help" | Help is available | |
| "pointer" | Indicates a link or interactive element | |
|"context-menu" | A context menu is available | |
| "progress" | Progress indicator | |
| "wait" | Busy cursor | |
| "cell" | Cell(s) may be selected | |
| "crosshair" | Simple crosshair | |
| "text" | Text may be selected | |
| "vertical-text" | Vertical text may be selected | |
| "alias" | DND: Something will be linked | |
| "copy" | DND: Something will be copied | |
| "move" | DND: Something will be moved | |
| "dnd-ask" | DND: User can choose action to be carried out | |
| "no-drop" | DND: Can't drop here | |
| "not-allowed" | DND: Action will not be carried out | |
| "grab" | DND: Something can be grabbed | |
| "grabbing" | DND: Something is being grabbed | |
| "n-resize" | Resizing: Move north border | |
| "e-resize" | Resizing: Move east border | |
| "s-resize" | Resizing: Move south border | |
| "w-resize" | Resizing: Move west border | |
| "ne-resize" | Resizing: Move north-east corner | |
| "nw-resize" | Resizing: Move north-west corner | |
| "sw-resize" | Resizing: Move south-west corner | |
| "se-resize" | Resizing: Move south-east corner | |
| "col-resize" | Resizing: Move an item or border horizontally | |
| "row-resize" | Resizing: Move an item or border vertically | |
| "ew-resize" | Moving: Something can be moved horizontally | |
| "ns-resize" | Moving: Something can be moved vertically | |
| "nesw-resize" | Moving: Something can be moved diagonally, north-east to south-west | |
| "nwse-resize" | Moving: something can be moved diagonally, north-west to south-east | |
| "all-resize" | Moving: Something can be moved in any direction | |
| "all-scroll" | Can scroll in any direction | |
| "zoom-in" | Zoom in | |
| "zoom-out" | Zoom out |
name is the name of the cursor.fallback is %NULL or the GdkCursor to fall back to when this one cannot be supported.toNativeHandle (Source)
Normalizes a constructor argument into a raw pointer carrier. Accepts a raw NativeHandle, a raw NativeBuffer returned from
fn.call(...), another generated wrapper exposinghandle(), or null. Returns null when the argument carries no pointer.
Source is the raw handle, raw buffer, wrapper, or null.A raw pointer carrier or null when no pointer is present.getLib ()
Returns the opened native library for this generated wrapper.
The opened native library.handle ()
Returns the wrapped NativeHandle.
The wrapped NativeHandle.isNull ()
Returns true when the wrapped handle is null.
A bool.describe ()
Returns a small string for debugging generated wrappers.
A string.asObject ()
Wraps this handle as
Object.
A Object object.get_fallback ()
Returns the fallback for this @cursor. The fallback will be used if this cursor is not available on a given
GdkDisplay. For named cursors, this can happen when using nonstandard names or when using an incomplete cursor theme. For textured cursors, this can happen when the texture is too large or when theGdkDisplayit is used on does not support textured cursors.
get_hotspot_x ()
Returns the horizontal offset of the hotspot. The hotspot indicates the pixel that will be directly above the cursor. Note that named cursors may have a nonzero hotspot, but this function will only return the hotspot position for cursors created with [ctor@Gdk.Cursor.new_from_texture].
get_hotspot_y ()
Returns the vertical offset of the hotspot. The hotspot indicates the pixel that will be directly above the cursor. Note that named cursors may have a nonzero hotspot, but this function will only return the hotspot position for cursors created with [ctor@Gdk.Cursor.new_from_texture].
get_name ()
Returns the name of the cursor. If the cursor is not a named cursor, %NULL will be returned.
get_texture ()
Returns the texture for the cursor. If the cursor is a named cursor, %NULL will be returned.
[254:14] static extends: object
Generated metadata helpers for Cursor class surfaces.
properties ()
Returns property metadata for
Cursor.
A list.[233:14] static extends: object
Alternate constructors for Cursor. Usage:
CursorCtors.<name>(...). The primary constructor lives
directly on Cursor.
newFromTexture (object texture, int hotspot_x, int hotspot_y, object fallback)
Creates a new cursor from a
GdkTexture.
texture is the texture providing the pixel data.hotspot_x is the horizontal offset of the “hotspot” of the cursor.hotspot_y is the vertical offset of the “hotspot” of the cursor.fallback is the GdkCursor to fall back to when this one cannot be supported.A new Cursor.
Aussom
Write once. Embed everywhere.
Copyright 2026 Austin Lehman. All rights reserved.
| "default" | The default cursor | |
| "help" | Help is available | |
| "pointer" | Indicates a link or interactive element | |
|"context-menu" | A context menu is available | |
| "progress" | Progress indicator | |
| "wait" | Busy cursor | |
| "cell" | Cell(s) may be selected | |
| "crosshair" | Simple crosshair | |
| "text" | Text may be selected | |
| "vertical-text" | Vertical text may be selected | |
| "alias" | DND: Something will be linked | |
| "copy" | DND: Something will be copied | |
| "move" | DND: Something will be moved | |
| "dnd-ask" | DND: User can choose action to be carried out | |
| "no-drop" | DND: Can't drop here | |
| "not-allowed" | DND: Action will not be carried out | |
| "grab" | DND: Something can be grabbed | |
| "grabbing" | DND: Something is being grabbed | |
| "n-resize" | Resizing: Move north border | |
| "e-resize" | Resizing: Move east border | |
| "s-resize" | Resizing: Move south border | |
| "w-resize" | Resizing: Move west border | |
| "ne-resize" | Resizing: Move north-east corner | |
| "nw-resize" | Resizing: Move north-west corner | |
| "sw-resize" | Resizing: Move south-west corner | |
| "se-resize" | Resizing: Move south-east corner | |
| "col-resize" | Resizing: Move an item or border horizontally | |
| "row-resize" | Resizing: Move an item or border vertically | |
| "ew-resize" | Moving: Something can be moved horizontally | |
| "ns-resize" | Moving: Something can be moved vertically | |
| "nesw-resize" | Moving: Something can be moved diagonally, north-east to south-west | |
| "nwse-resize" | Moving: something can be moved diagonally, north-west to south-east | |
| "all-resize" | Moving: Something can be moved in any direction | |
| "all-scroll" | Can scroll in any direction | |
| "zoom-in" | Zoom in | |
| "zoom-out" | Zoom out |