Update to latest libcosmic/iced
This commit is contained in:
parent
9b98c20da2
commit
e569e14a99
9 changed files with 640 additions and 552 deletions
|
|
@ -293,7 +293,7 @@ where
|
|||
Length::Fill
|
||||
}
|
||||
|
||||
fn layout(&self, renderer: &Renderer, limits: &Limits) -> Node {
|
||||
fn layout(&self, tree: &mut Tree, renderer: &Renderer, limits: &Limits) -> Node {
|
||||
let min_size = Size {
|
||||
height: TAB_HEIGHT as f32,
|
||||
width: if self.active {
|
||||
|
|
@ -328,6 +328,7 @@ where
|
|||
} else {
|
||||
&self.elements[0..2]
|
||||
},
|
||||
&mut tree.children,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -84,13 +84,16 @@ where
|
|||
tree.diff_children(std::slice::from_mut(&mut self.text))
|
||||
}
|
||||
|
||||
fn layout(&self, renderer: &Renderer, limits: &Limits) -> Node {
|
||||
fn layout(&self, tree: &mut Tree, renderer: &Renderer, limits: &Limits) -> Node {
|
||||
let limits = limits.width(self.width).height(self.height);
|
||||
let child_limits = Limits::new(
|
||||
Size::new(limits.min().width, limits.min().height - 4.),
|
||||
Size::new(limits.max().width * 2., limits.max().height - 4.),
|
||||
);
|
||||
let mut content = self.text.as_widget().layout(renderer, &child_limits);
|
||||
let mut content =
|
||||
self.text
|
||||
.as_widget()
|
||||
.layout(&mut tree.children[0], renderer, &child_limits);
|
||||
content.move_to(Point::new(0., 2.));
|
||||
let size = limits.resolve(content.size());
|
||||
|
||||
|
|
|
|||
|
|
@ -359,7 +359,7 @@ where
|
|||
tree.diff_children(&mut self.elements)
|
||||
}
|
||||
|
||||
fn layout(&self, renderer: &Renderer, limits: &Limits) -> Node {
|
||||
fn layout(&self, tree: &mut Tree, renderer: &Renderer, limits: &Limits) -> Node {
|
||||
let limits = limits.width(self.width).height(self.height);
|
||||
|
||||
// calculate the smallest possible size
|
||||
|
|
@ -372,7 +372,8 @@ where
|
|||
|
||||
let mut nodes = self.elements[2..self.elements.len() - 2]
|
||||
.iter()
|
||||
.map(|tab| tab.as_widget().layout(renderer, &child_limits))
|
||||
.zip(tree.children.iter_mut())
|
||||
.map(|(tab, tab_tree)| tab.as_widget().layout(tab_tree, renderer, &child_limits))
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
// sum up
|
||||
|
|
@ -401,6 +402,7 @@ where
|
|||
0.,
|
||||
cosmic::iced::Alignment::Center,
|
||||
&self.elements[2..self.elements.len() - 2],
|
||||
&mut tree.children[2..self.elements.len() - 2],
|
||||
)
|
||||
.children()
|
||||
.to_vec()
|
||||
|
|
@ -412,7 +414,8 @@ where
|
|||
|
||||
let mut nodes = self.elements[2..self.elements.len() - 3]
|
||||
.iter()
|
||||
.map(|tab| {
|
||||
.zip(tree.children[2..].iter_mut())
|
||||
.map(|(tab, tab_tree)| {
|
||||
let child_limits = Limits::new(
|
||||
Size::new(min_width, limits.min().height),
|
||||
Size::new(f32::INFINITY, limits.max().height),
|
||||
|
|
@ -420,7 +423,7 @@ where
|
|||
.width(Length::Shrink)
|
||||
.height(Length::Shrink);
|
||||
|
||||
let mut node = tab.as_widget().layout(renderer, &child_limits);
|
||||
let mut node = tab.as_widget().layout(tab_tree, renderer, &child_limits);
|
||||
node.move_to(Point::new(offset, 0.));
|
||||
offset += node.bounds().width;
|
||||
node
|
||||
|
|
|
|||
|
|
@ -66,8 +66,14 @@ where
|
|||
self.elem.as_widget().height()
|
||||
}
|
||||
|
||||
fn layout(&self, renderer: &Renderer, limits: &layout::Limits) -> layout::Node {
|
||||
let node = self.elem.as_widget().layout(renderer, limits);
|
||||
fn layout(
|
||||
&self,
|
||||
state: &mut Tree,
|
||||
renderer: &Renderer,
|
||||
limits: &layout::Limits,
|
||||
) -> layout::Node {
|
||||
let state = &mut state.children[0];
|
||||
let node = self.elem.as_widget().layout(state, renderer, limits);
|
||||
layout::Node::with_children(node.size(), vec![node])
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ use std::{
|
|||
use calloop::LoopHandle;
|
||||
use cosmic::{
|
||||
iced::Background,
|
||||
iced_core::{alignment::Horizontal, Length, Rectangle as IcedRectangle},
|
||||
iced_core::{alignment::Horizontal, Length, Pixels, Rectangle as IcedRectangle},
|
||||
iced_widget::{self, horizontal_rule, text::Appearance as TextAppearance, Column, Row},
|
||||
theme,
|
||||
widget::{button, horizontal_space, icon::from_name, text},
|
||||
|
|
@ -395,7 +395,7 @@ impl Program for ContextMenu {
|
|||
if let Some(shortcut) = shortcut.as_ref() {
|
||||
components.push(
|
||||
text(shortcut)
|
||||
.line_height(20.)
|
||||
.line_height(Pixels(20.))
|
||||
.size(14)
|
||||
.horizontal_alignment(Horizontal::Right)
|
||||
.width(Length::Shrink)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue