Write documentation for the new canvas API
This commit is contained in:
parent
1501a93915
commit
d4c4198f72
8 changed files with 122 additions and 17 deletions
|
|
@ -1,8 +1,12 @@
|
|||
use iced_native::{Point, Rectangle};
|
||||
|
||||
/// The mouse cursor state.
|
||||
#[derive(Debug, Clone, Copy, PartialEq)]
|
||||
pub enum Cursor {
|
||||
/// The cursor has a defined position.
|
||||
Available(Point),
|
||||
|
||||
/// The cursor is currently unavailable (i.e. out of bounds or busy).
|
||||
Unavailable,
|
||||
}
|
||||
|
||||
|
|
@ -17,6 +21,9 @@ impl Cursor {
|
|||
}
|
||||
}
|
||||
|
||||
/// Returns the absolute position of the [`Cursor`], if available.
|
||||
///
|
||||
/// [`Cursor`]: enum.Cursor.html
|
||||
pub fn position(&self) -> Option<Point> {
|
||||
match self {
|
||||
Cursor::Available(position) => Some(*position),
|
||||
|
|
@ -24,6 +31,13 @@ impl Cursor {
|
|||
}
|
||||
}
|
||||
|
||||
/// Returns the relative position of the [`Cursor`] inside the given bounds,
|
||||
/// if available.
|
||||
///
|
||||
/// If the [`Cursor`] is not over the provided bounds, this method will
|
||||
/// return `None`.
|
||||
///
|
||||
/// [`Cursor`]: enum.Cursor.html
|
||||
pub fn position_in(&self, bounds: &Rectangle) -> Option<Point> {
|
||||
if self.is_over(bounds) {
|
||||
self.position_from(bounds.position())
|
||||
|
|
@ -32,6 +46,10 @@ impl Cursor {
|
|||
}
|
||||
}
|
||||
|
||||
/// Returns the relative position of the [`Cursor`] from the given origin,
|
||||
/// if available.
|
||||
///
|
||||
/// [`Cursor`]: enum.Cursor.html
|
||||
pub fn position_from(&self, origin: Point) -> Option<Point> {
|
||||
match self {
|
||||
Cursor::Available(position) => {
|
||||
|
|
@ -41,6 +59,10 @@ impl Cursor {
|
|||
}
|
||||
}
|
||||
|
||||
/// Returns whether the [`Cursor`] is currently over the provided bounds
|
||||
/// or not.
|
||||
///
|
||||
/// [`Cursor`]: enum.Cursor.html
|
||||
pub fn is_over(&self, bounds: &Rectangle) -> bool {
|
||||
match self {
|
||||
Cursor::Available(position) => bounds.contains(*position),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue