Enum smithay_client_toolkit::seat::pointer::CursorIcon
#[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
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§
§impl CursorIcon
impl CursorIcon
pub fn name(&self) -> &'static str
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());
}
Trait Implementations§
§impl Clone for CursorIcon
impl Clone for CursorIcon
§fn clone(&self) -> CursorIcon
fn clone(&self) -> CursorIcon
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read more§impl Debug for CursorIcon
impl Debug for CursorIcon
§impl Default for CursorIcon
impl Default for CursorIcon
§fn default() -> CursorIcon
fn default() -> CursorIcon
§impl Display for CursorIcon
impl Display for CursorIcon
§impl FromStr for CursorIcon
impl FromStr for CursorIcon
§fn from_str(name: &str) -> Result<CursorIcon, <CursorIcon as FromStr>::Err>
fn from_str(name: &str) -> Result<CursorIcon, <CursorIcon as FromStr>::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
type Err = ParseError
§impl Hash for CursorIcon
impl Hash for CursorIcon
§impl PartialEq for CursorIcon
impl PartialEq for CursorIcon
impl Copy for CursorIcon
impl Eq for CursorIcon
impl StructuralPartialEq for CursorIcon
Auto Trait Implementations§
impl Freeze for CursorIcon
impl RefUnwindSafe for CursorIcon
impl Send for CursorIcon
impl Sync for CursorIcon
impl Unpin for CursorIcon
impl UnwindSafe for CursorIcon
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.