summaryrefslogtreecommitdiffstats
path: root/native/src/widget/operation
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-08-05 05:15:41 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-08-05 05:15:41 +0200
commit66f7d43dc98df96c8b19cfd2aef6dcdd4187316c (patch)
treea252a9c81359d2f13401380538bd11c0ee6bbc37 /native/src/widget/operation
parent13dd1ca0a83cc95eea52e2106da9dc1ee1f37958 (diff)
downloadiced-66f7d43dc98df96c8b19cfd2aef6dcdd4187316c.tar.gz
iced-66f7d43dc98df96c8b19cfd2aef6dcdd4187316c.tar.bz2
iced-66f7d43dc98df96c8b19cfd2aef6dcdd4187316c.zip
Write missing documentation in `iced_native`
Diffstat (limited to 'native/src/widget/operation')
-rw-r--r--native/src/widget/operation/focusable.rs19
-rw-r--r--native/src/widget/operation/scrollable.rs5
2 files changed, 24 insertions, 0 deletions
diff --git a/native/src/widget/operation/focusable.rs b/native/src/widget/operation/focusable.rs
index 20a73291..d20bfef9 100644
--- a/native/src/widget/operation/focusable.rs
+++ b/native/src/widget/operation/focusable.rs
@@ -1,18 +1,30 @@
+//! Operate on widgets that can be focused.
use crate::widget::operation::{Operation, Outcome};
use crate::widget::Id;
+/// The internal state of a widget that can be focused.
pub trait Focusable {
+ /// Returns whether the widget is focused or not.
fn is_focused(&self) -> bool;
+
+ /// Focuses the widget.
fn focus(&mut self);
+
+ /// Unfocuses the widget.
fn unfocus(&mut self);
}
+/// A summary of the focusable widgets present on a widget tree.
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub struct Count {
+ /// The index of the current focused widget, if any.
focused: Option<usize>,
+
+ /// The total amount of focusable widgets.
total: usize,
}
+/// Produces an [`Operation`] that focuses the widget with the given [`Id`].
pub fn focus<T>(target: Id) -> impl Operation<T> {
struct Focus {
target: Id,
@@ -42,6 +54,7 @@ pub fn focus<T>(target: Id) -> impl Operation<T> {
Focus { target }
}
+/// Produces an [`Operation`] that generates a [`Count`].
pub fn count<T, O>(f: fn(Count) -> O) -> impl Operation<T>
where
O: Operation<T> + 'static,
@@ -82,6 +95,9 @@ where
}
}
+/// Produces an [`Operation`] that searches for the current focuses widget, and
+/// - if found, focuses the previous focusable widget.
+/// - if not found, focuses the last focusable widget.
pub fn focus_previous<T>() -> impl Operation<T> {
struct FocusPrevious {
count: Count,
@@ -118,6 +134,9 @@ pub fn focus_previous<T>() -> impl Operation<T> {
count(|count| FocusPrevious { count, current: 0 })
}
+/// Produces an [`Operation`] that searches for the current focuses widget, and
+/// - if found, focuses the next focusable widget.
+/// - if not found, focuses the first focusable widget.
pub fn focus_next<T>() -> impl Operation<T> {
struct FocusNext {
count: Count,
diff --git a/native/src/widget/operation/scrollable.rs b/native/src/widget/operation/scrollable.rs
index ed609d67..2210137d 100644
--- a/native/src/widget/operation/scrollable.rs
+++ b/native/src/widget/operation/scrollable.rs
@@ -1,9 +1,14 @@
+//! Operate on widgets that can be scrolled.
use crate::widget::{Id, Operation};
+/// The internal state of a widget that can be scrolled.
pub trait Scrollable {
+ /// Snaps the scroll of the widget to the given `percentage`.
fn snap_to(&mut self, percentage: f32);
}
+/// Produces an [`Operation`] that snaps the widget with the given [`Id`] to
+/// the provided `percentage`.
pub fn snap_to<T>(target: Id, percentage: f32) -> impl Operation<T> {
struct SnapTo {
target: Id,