 8eeb01e935
			
		
	
	
		8eeb01e935
		
			
		
	
	
	
	
		
			
			# Objective - When finding the `CursorIcon` doc, it should be easier to find out where to use it. - When saying it is partially copied from the browser, be more clear about the provenance and link to the spec document. ## Solution - Link to the example code. - Link to the CSS3 UI spec document.
		
			
				
	
	
		
			98 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Rust
		
	
	
	
	
	
| use bevy_reflect::{prelude::ReflectDefault, Reflect};
 | |
| 
 | |
| #[cfg(feature = "serialize")]
 | |
| use bevy_reflect::{ReflectDeserialize, ReflectSerialize};
 | |
| 
 | |
| /// The icon to display for a [`Window`](crate::window::Window)'s [`Cursor`](crate::window::Cursor).
 | |
| ///
 | |
| /// Examples of all of these cursors can be found [here](https://www.w3schools.com/cssref/playit.php?filename=playcss_cursor&preval=crosshair).
 | |
| /// This `enum` is simply a copy of a similar `enum` found in [`winit`](https://docs.rs/winit/latest/winit/window/enum.CursorIcon.html).
 | |
| /// `winit`, in turn, is based upon the [CSS3 UI spec](https://www.w3.org/TR/css-ui-3/#cursor).
 | |
| ///
 | |
| /// See the [`window_settings`] example for usage.
 | |
| ///
 | |
| /// [`window_settings`]: https://github.com/bevyengine/bevy/blob/latest/examples/window/window_settings.rs
 | |
| #[derive(Default, Debug, Hash, PartialEq, Eq, Clone, Copy, Reflect)]
 | |
| #[cfg_attr(
 | |
|     feature = "serialize",
 | |
|     derive(serde::Serialize, serde::Deserialize),
 | |
|     reflect(Serialize, Deserialize)
 | |
| )]
 | |
| #[reflect(Debug, PartialEq, Default)]
 | |
| pub enum CursorIcon {
 | |
|     /// The platform-dependent default cursor.
 | |
|     #[default]
 | |
|     Default,
 | |
|     /// A simple crosshair.   
 | |
|     Crosshair,
 | |
|     /// A hand (often used to indicate links in web browsers).    
 | |
|     Hand,
 | |
|     /// An arrow. This is the default cursor on most systems.    
 | |
|     Arrow,
 | |
|     /// Indicates something is to be moved.    
 | |
|     Move,
 | |
|     /// Indicates text that may be selected or edited.    
 | |
|     Text,
 | |
|     /// Program busy indicator.    
 | |
|     Wait,
 | |
|     /// Help indicator (often rendered as a "?")    
 | |
|     Help,
 | |
|     /// Progress indicator. Shows that processing is being done.
 | |
|     ///
 | |
|     /// But in contrast with "Wait" the user may still interact with the program.
 | |
|     /// Often rendered as a spinning beach ball, or an arrow with a watch or hourglass.    
 | |
|     Progress,
 | |
|     /// Cursor showing that something cannot be done.    
 | |
|     NotAllowed,
 | |
|     /// Indicates that a context menu is available.
 | |
|     ContextMenu,
 | |
|     /// Indicates that a cell (or set of cells) may be selected.
 | |
|     Cell,
 | |
|     /// Indicates vertical text that may be selected or edited.
 | |
|     VerticalText,
 | |
|     /// Indicates that an alias of something is to be created.
 | |
|     Alias,
 | |
|     /// Indicates something is to be copied.
 | |
|     Copy,
 | |
|     /// Indicates that the dragged item cannot be dropped here.
 | |
|     NoDrop,
 | |
|     /// Indicates that something can be grabbed.
 | |
|     Grab,
 | |
|     /// Indicates that something is grabbed.
 | |
|     Grabbing,
 | |
|     /// Indicates that the user can scroll by dragging the mouse.
 | |
|     AllScroll,
 | |
|     /// Indicates that the user can zoom in.
 | |
|     ZoomIn,
 | |
|     /// Indicates that the user can zoom out.
 | |
|     ZoomOut,
 | |
|     /// Indicates that an edge of a box is to be moved right (east).
 | |
|     EResize,
 | |
|     /// Indicates that an edge of a box is to be moved up (north).
 | |
|     NResize,
 | |
|     /// Indicates that an edge of a box is to be moved up and right (north/east).
 | |
|     NeResize,
 | |
|     /// indicates that an edge of a box is to be moved up and left (north/west).
 | |
|     NwResize,
 | |
|     /// Indicates that an edge of a box is to be moved down (south).
 | |
|     SResize,
 | |
|     /// The cursor indicates that an edge of a box is to be moved down and right (south/east).
 | |
|     SeResize,
 | |
|     /// The cursor indicates that an edge of a box is to be moved down and left (south/west).
 | |
|     SwResize,
 | |
|     /// Indicates that an edge of a box is to be moved left (west).
 | |
|     WResize,
 | |
|     /// Indicates a bidirectional resize cursor.
 | |
|     EwResize,
 | |
|     /// Indicates a bidirectional resize cursor.
 | |
|     NsResize,
 | |
|     /// Indicates a bidirectional resize cursor.
 | |
|     NeswResize,
 | |
|     /// Indicates a bidirectional resize cursor.
 | |
|     NwseResize,
 | |
|     /// Indicates that a column can be resized horizontally.
 | |
|     ColResize,
 | |
|     /// Indicates that the row can be resized vertically.
 | |
|     RowResize,
 | |
| }
 |