Struct gdk4::Cursor[][src]

pub struct Cursor(_);
Expand description

Cursor is 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 SurfaceExt::set_cursor() or SurfaceExt::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 Display, so they can be shared. However, the appearance of cursors may vary when used on different platforms.

Named and texture cursors

There are multiple ways to create cursors. The platform’s own cursors can be created with 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 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 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.

Implementations

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” “default” “help” “pointer”
“context-menu” “progress” “wait” “cell”
“crosshair” “text” “vertical-text” “alias”
“copy” “no-drop” “move” “not-allowed”
“grab” “grabbing” “all-scroll” “col-resize”
“row-resize” “n-resize” “e-resize” “s-resize”
“w-resize” “ne-resize” “nw-resize” “sw-resize”
“se-resize” “ew-resize” “ns-resize” “nesw-resize”
“nwse-resize” “zoom-in” “zoom-out”
name

the name of the cursor

fallback

None or the Cursor to fall back to when this one cannot be supported

Returns

a new Cursor, or None if there is no cursor with the given name

Creates a new cursor from a Texture.

texture

the texture providing the pixel data

hotspot_x

the horizontal offset of the “hotspot” of the cursor

hotspot_y

the vertical offset of the “hotspot” of the cursor

fallback

the Cursor to fall back to when this one cannot be supported

Returns

a new Cursor

Creates a new builder-pattern struct instance to construct Cursor objects.

This method returns an instance of CursorBuilder which can be used to create Cursor objects.

Returns the fallback for this self.

The fallback will be used if this cursor is not available on a given Display. 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 the Display it is used on does not support textured cursors.

Returns

the fallback of the cursor or None to use the default cursor as fallback

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 from_texture().

Returns

the horizontal offset of the hotspot or 0 for named cursors

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 from_texture().

Returns

the vertical offset of the hotspot or 0 for named cursors

Returns the name of the cursor.

If the cursor is not a named cursor, None will be returned.

Returns

the name of the cursor or None if it is not a named cursor

Returns the texture for the cursor.

If the cursor is a named cursor, None will be returned.

Returns

the texture for cursor or None if it is a named cursor

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Formats the value using the given formatter. Read more

Formats the value using the given formatter. Read more

Feeds this value into the given Hasher. Read more

Feeds a slice of this type into the given Hasher. Read more

This method returns an Ordering between self and other. Read more

Compares and returns the maximum of two values. Read more

Compares and returns the minimum of two values. Read more

Restrict a value to a certain interval. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

This method returns an ordering between self and other values if one exists. Read more

This method tests less than (for self and other) and is used by the < operator. Read more

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

This method tests greater than (for self and other) and is used by the > operator. Read more

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

Returns the type identifier of Self.

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Upcasts an object to a superclass or interface T. Read more

Upcasts an object to a reference of its superclass or interface T. Read more

Tries to downcast to a subclass or interface implementor T. Read more

Tries to downcast to a reference of its subclass or interface implementor T. Read more

Tries to cast to an object of type T. This handles upcasting, downcasting and casting between interface and interface implementors. All checks are performed at runtime, while downcast and upcast will do many checks at compile-time already. Read more

Tries to cast to reference to an object of type T. This handles upcasting, downcasting and casting between interface and interface implementors. All checks are performed at runtime, while downcast and upcast will do many checks at compile-time already. Read more

Casts to T unconditionally. Read more

Casts to &T unconditionally. Read more

Performs the conversion.

Performs the conversion.

Returns true if the object is an instance of (can be cast to) T.

Safety Read more

Safety Read more

Safety Read more

Safety Read more

Safety Read more

Safety Read more

Same as connect but takes a SignalId instead of a signal name.

Same as connect_local but takes a SignalId instead of a signal name.

Same as connect_unsafe but takes a SignalId instead of a signal name.

Emit signal by signal id.

Same as emit but takes Value for the arguments.

Emit signal by its name.

Same as emit_by_name but takes Value for the arguments.

Emit signal with details by signal id.

Same as emit_with_details but takes Value for the arguments.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

Returns a SendValue clone of self.

Converts the given value to a String. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.