wip: update to use latest iced

This commit is contained in:
Ashley Wulber 2024-01-30 22:14:00 -05:00 committed by Ashley Wulber
parent ca1469a6b2
commit f4ad098647
49 changed files with 956 additions and 854 deletions

View file

@ -8,7 +8,6 @@ use iced::advanced::widget::{self, Operation, OperationOutputWrapper};
use iced::advanced::{overlay, renderer};
use iced::advanced::{Clipboard, Shell};
use iced::{event, mouse, Event, Point, Rectangle, Size};
use iced_core::Widget;
pub(super) struct Overlay<'a, 'b, Message> {
pub(super) content: &'b mut Element<'a, Message>,
@ -16,7 +15,8 @@ pub(super) struct Overlay<'a, 'b, Message> {
pub(super) width: f32,
}
impl<'a, 'b, Message> overlay::Overlay<Message, crate::Renderer> for Overlay<'a, 'b, Message>
impl<'a, 'b, Message> overlay::Overlay<Message, crate::Theme, crate::Renderer>
for Overlay<'a, 'b, Message>
where
Message: Clone,
{
@ -31,13 +31,13 @@ where
.width(self.width)
.height(bounds.height - 8.0 - position.y);
let mut node = self
let node = self
.content
.as_widget()
.layout(self.tree, renderer, &limits);
let node_size = node.size();
node.move_to(Point {
node.clone().move_to(Point {
x: if bounds.width > node_size.width - 8.0 {
bounds.width - node_size.width - 8.0
} else {
@ -48,9 +48,7 @@ where
} else {
0.0
},
});
node
})
}
fn on_event(
@ -82,7 +80,7 @@ where
layout: Layout<'_>,
cursor: mouse::Cursor,
) {
self.content.draw(
self.content.as_widget().draw(
self.tree,
renderer,
theme,
@ -120,7 +118,7 @@ where
&'c mut self,
layout: Layout<'_>,
renderer: &crate::Renderer,
) -> Option<overlay::Element<'c, Message, crate::Renderer>> {
) -> Option<overlay::Element<'c, Message, crate::Theme, crate::Renderer>> {
self.content
.as_widget_mut()
.overlay(self.tree, layout, renderer)

View file

@ -8,9 +8,9 @@ use crate::{Apply, Element, Renderer, Theme};
use super::overlay::Overlay;
use iced_core::alignment;
use iced_core::event::{self, Event};
use iced_core::widget::{Operation, Tree};
use iced_core::{alignment, Border};
use iced_core::{
layout, mouse, overlay as iced_overlay, renderer, Clipboard, Color, Layout, Length, Padding,
Rectangle, Shell, Widget,
@ -84,9 +84,11 @@ impl<'a, Message: Clone + 'static> ContextDrawer<'a, Message> {
icon_color: Some(Color::from(palette.primary.on)),
text_color: Some(Color::from(palette.primary.on)),
background: Some(iced::Background::Color(palette.primary.base.into())),
border_radius: palette.corner_radii.radius_s.into(),
border_width: 0.0,
border_color: Color::TRANSPARENT,
border: Border {
radius: palette.corner_radii.radius_s.into(),
..Default::default()
},
..Default::default()
}
}))
.layer(cosmic_theme::Layer::Primary)
@ -105,7 +107,7 @@ impl<'a, Message: Clone + 'static> ContextDrawer<'a, Message> {
}
}
impl<'a, Message: Clone> Widget<Message, Renderer> for ContextDrawer<'a, Message> {
impl<'a, Message: Clone> Widget<Message, crate::Theme, Renderer> for ContextDrawer<'a, Message> {
fn children(&self) -> Vec<Tree> {
vec![Tree::new(&self.content), Tree::new(&self.drawer)]
}
@ -114,12 +116,8 @@ impl<'a, Message: Clone> Widget<Message, Renderer> for ContextDrawer<'a, Message
tree.diff_children(&mut [&mut self.content, &mut self.drawer]);
}
fn width(&self) -> Length {
self.content.as_widget().width()
}
fn height(&self) -> Length {
self.content.as_widget().height()
fn size(&self) -> iced_core::Size<Length> {
self.content.as_widget().size()
}
fn layout(
@ -211,7 +209,7 @@ impl<'a, Message: Clone> Widget<Message, Renderer> for ContextDrawer<'a, Message
tree: &'b mut Tree,
layout: Layout<'_>,
_renderer: &Renderer,
) -> Option<iced_overlay::Element<'b, Message, Renderer>> {
) -> Option<iced_overlay::Element<'b, Message, crate::Theme, Renderer>> {
let bounds = layout.bounds();
Some(iced_overlay::Element::new(