Implement basic cursor availability

This commit is contained in:
Héctor Ramón Jiménez 2023-06-08 20:11:59 +02:00
parent c15f1b5f65
commit 34451bff18
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
55 changed files with 731 additions and 886 deletions

View file

@ -9,7 +9,7 @@ use crate::core::renderer;
use crate::core::text;
use crate::core::widget::Tree;
use crate::core::{
Clipboard, Element, Length, Padding, Pixels, Point, Rectangle, Shell, Size,
Clipboard, Element, Length, Padding, Pixels, Rectangle, Shell, Size,
Vector, Widget,
};
use crate::Text;
@ -136,7 +136,7 @@ where
tree: &mut Tree,
event: Event,
layout: Layout<'_>,
cursor_position: Point,
cursor: mouse::Cursor,
renderer: &Renderer,
clipboard: &mut dyn Clipboard,
shell: &mut Shell<'_, Message>,
@ -145,7 +145,7 @@ where
&mut tree.children[0],
event,
layout,
cursor_position,
cursor,
renderer,
clipboard,
shell,
@ -156,14 +156,14 @@ where
&self,
tree: &Tree,
layout: Layout<'_>,
cursor_position: Point,
cursor: mouse::Cursor,
viewport: &Rectangle,
renderer: &Renderer,
) -> mouse::Interaction {
self.content.as_widget().mouse_interaction(
&tree.children[0],
layout,
cursor_position,
cursor,
viewport,
renderer,
)
@ -176,7 +176,7 @@ where
theme: &Renderer::Theme,
inherited_style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
cursor: mouse::Cursor,
viewport: &Rectangle,
) {
self.content.as_widget().draw(
@ -185,7 +185,7 @@ where
theme,
inherited_style,
layout,
cursor_position,
cursor,
viewport,
);
@ -196,7 +196,7 @@ where
theme,
inherited_style,
layout,
cursor_position,
cursor,
viewport,
self.position,
self.gap,
@ -206,7 +206,7 @@ where
|renderer, limits| {
Widget::<(), Renderer>::layout(tooltip, renderer, limits)
},
|renderer, defaults, layout, cursor_position, viewport| {
|renderer, defaults, layout, viewport| {
Widget::<(), Renderer>::draw(
tooltip,
&Tree::empty(),
@ -214,7 +214,7 @@ where
theme,
defaults,
layout,
cursor_position,
cursor,
viewport,
);
},
@ -270,7 +270,7 @@ pub fn draw<Renderer>(
theme: &Renderer::Theme,
inherited_style: &renderer::Style,
layout: Layout<'_>,
cursor_position: Point,
cursor: mouse::Cursor,
viewport: &Rectangle,
position: Position,
gap: f32,
@ -278,13 +278,7 @@ pub fn draw<Renderer>(
snap_within_viewport: bool,
style: &<Renderer::Theme as container::StyleSheet>::Style,
layout_text: impl FnOnce(&Renderer, &layout::Limits) -> layout::Node,
draw_text: impl FnOnce(
&mut Renderer,
&renderer::Style,
Layout<'_>,
Point,
&Rectangle,
),
draw_text: impl FnOnce(&mut Renderer, &renderer::Style, Layout<'_>, &Rectangle),
) where
Renderer: core::Renderer,
Renderer::Theme: container::StyleSheet,
@ -293,7 +287,7 @@ pub fn draw<Renderer>(
let bounds = layout.bounds();
if bounds.contains(cursor_position) {
if let Some(cursor_position) = cursor.position_over(&bounds) {
let style = theme.appearance(style);
let defaults = renderer::Style {
@ -380,7 +374,6 @@ pub fn draw<Renderer>(
),
&text_layout,
),
cursor_position,
viewport,
)
});