#[non_exhaustive]
pub enum CursorIcon {
Show 34 variants Default, ContextMenu, Help, Pointer, Progress, Wait, Cell, Crosshair, Text, VerticalText, Alias, Copy, Move, NoDrop, NotAllowed, Grab, Grabbing, EResize, NResize, NeResize, NwResize, SResize, SeResize, SwResize, WResize, EwResize, NsResize, NeswResize, NwseResize, ColResize, RowResize, AllScroll, ZoomIn, ZoomOut,
}
Expand description

Describes the appearance of the (usually mouse) cursor icon.

The names are taken from the CSS W3C specification: https://www.w3.org/TR/css-ui-3/#cursor

Examples

use cursor_icon::CursorIcon;

// Get the cursor icon for the default cursor.
let cursor_icon = CursorIcon::Default;

Variants (Non-exhaustive)§

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

Default

The platform-dependent default cursor. Often rendered as arrow.

§

ContextMenu

A context menu is available for the object under the cursor. Often rendered as an arrow with a small menu-like graphic next to it.

§

Help

Help is available for the object under the cursor. Often rendered as a question mark or a balloon.

§

Pointer

The cursor is a pointer that indicates a link. Often rendered as the backside of a hand with the index finger extended.

§

Progress

A progress indicator. The program is performing some processing, but is different from CursorIcon::Wait in that the user may still interact with the program.

§

Wait

Indicates that the program is busy and the user should wait. Often rendered as a watch or hourglass.

§

Cell

Indicates that a cell or set of cells may be selected. Often rendered as a thick plus-sign with a dot in the middle.

§

Crosshair

A simple crosshair (e.g., short line segments resembling a “+” sign). Often used to indicate a two dimensional bitmap selection mode.

§

Text

Indicates text that may be selected. Often rendered as an I-beam.

§

VerticalText

Indicates vertical-text that may be selected. Often rendered as a horizontal I-beam.

§

Alias

Indicates an alias of/shortcut to something is to be created. Often rendered as an arrow with a small curved arrow next to it.

§

Copy

Indicates something is to be copied. Often rendered as an arrow with a small plus sign next to it.

§

Move

Indicates something is to be moved.

§

NoDrop

Indicates that the dragged item cannot be dropped at the current cursor location. Often rendered as a hand or pointer with a small circle with a line through it.

§

NotAllowed

Indicates that the requested action will not be carried out. Often rendered as a circle with a line through it.

§

Grab

Indicates that something can be grabbed (dragged to be moved). Often rendered as the backside of an open hand.

§

Grabbing

Indicates that something is being grabbed (dragged to be moved). Often rendered as the backside of a hand with fingers closed mostly out of view.

§

EResize

The east border to be moved.

§

NResize

The north border to be moved.

§

NeResize

The north-east corner to be moved.

§

NwResize

The north-west corner to be moved.

§

SResize

The south border to be moved.

§

SeResize

The south-east corner to be moved.

§

SwResize

The south-west corner to be moved.

§

WResize

The west border to be moved.

§

EwResize

The east and west borders to be moved.

§

NsResize

The south and north borders to be moved.

§

NeswResize

The north-east and south-west corners to be moved.

§

NwseResize

The north-west and south-east corners to be moved.

§

ColResize

Indicates that the item/column can be resized horizontally. Often rendered as arrows pointing left and right with a vertical bar separating them.

§

RowResize

Indicates that the item/row can be resized vertically. Often rendered as arrows pointing up and down with a horizontal bar separating them.

§

AllScroll

Indicates that the something can be scrolled in any direction. Often rendered as arrows pointing up, down, left, and right with a dot in the middle.

§

ZoomIn

Indicates that something can be zoomed in. Often rendered as a magnifying glass with a “+” in the center of the glass.

§

ZoomOut

Indicates that something can be zoomed in. Often rendered as a magnifying glass with a “-” in the center of the glass.

Implementations§

source§

impl CursorIcon

source

pub fn name(&self) -> &'static str

The name of the cursor icon as defined in w3c standard.

This name most of the time could be passed as is to cursor loading libraries on X11/Wayland and could be used as-is on web.

Examples
use cursor_icon::CursorIcon;
use wayland_cursor::CursorTheme;

// Choose a cursor to load.
let cursor = CursorIcon::Help;

// Load the Wayland cursor theme.
let mut cursor_theme = CursorTheme::load(conn, shm, 32)?;

// Load the cursor.
let cursor = cursor_theme.get_cursor(cursor.name());
if let Some(cursor) = cursor {
    println!("Total number of images: {}", cursor.image_count());
}
source

pub fn alt_names(&self) -> &[&'static str]

A list of alternative names for the cursor icon as commonly found in legacy Xcursor themes.

This should only be used as a fallback in case the cursor theme does not adhere to the w3c standard.

Trait Implementations§

source§

impl Clone for CursorIcon

source§

fn clone(&self) -> CursorIcon

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for CursorIcon

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for CursorIcon

source§

fn default() -> CursorIcon

Returns the “default value” for a type. Read more
source§

impl Display for CursorIcon

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl FromStr for CursorIcon

source§

fn from_str(name: &str) -> Result<Self, Self::Err>

Parse a string slice into CursorIcon.

The name is a lower kebab case CursorIcon varaint name, e.g. nesw-resize. The set of possible valid name values matches exactly the set of CursorIcon::name outputs.

§

type Err = ParseError

The associated error which can be returned from parsing.
source§

impl Hash for CursorIcon

source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

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

impl PartialEq for CursorIcon

source§

fn eq(&self, other: &CursorIcon) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
source§

impl Copy for CursorIcon

source§

impl Eq for CursorIcon

source§

impl StructuralEq for CursorIcon

source§

impl StructuralPartialEq for CursorIcon

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

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

fn clone_into(&self, target: &mut T)

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

impl<T> ToString for T
where T: Display + ?Sized,

source§

default fn to_string(&self) -> String

Converts the given value to a String. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.