Move list_view to libcosmic

This commit is contained in:
Jeremy Soller 2022-09-30 09:57:11 -06:00
parent bfcaf829eb
commit 8e42dc46ea
No known key found for this signature in database
GPG key ID: 87F211AF2BE4C2FE
3 changed files with 97 additions and 92 deletions

View file

@ -3,8 +3,8 @@ use cosmic::{
widget::{
button,
icon,
list_view,
nav_bar,
list_view_style,
},
settings,
iced::{theme, Alignment, Color, Element, Length, Sandbox, Theme},
@ -123,8 +123,7 @@ impl Sandbox for Window {
,
vertical_space(Length::Units(16)),
text("Buttons").font(FONT_SEMIBOLD),
container(
column![
list_view!(
row![
button!("Primary")
.style(theme::Button::Primary)
@ -170,16 +169,11 @@ impl Sandbox for Window {
.padding([8, 16])
,
].spacing(12),
]
.padding([12, 16])
.spacing(12)
)
.style(theme::Container::Custom(list_view_style))
,
vertical_space(Length::Units(16)),
text("Controls").font(FONT_SEMIBOLD),
container(
column![
list_view!(
row![
text("Toggler"),
horizontal_space(Length::Fill),
@ -209,11 +203,7 @@ impl Sandbox for Window {
,
horizontal_rule(12),
checkbox("Checkbox", self.checkbox_value, Message::CheckboxToggled),
]
.padding([12, 16])
.spacing(12)
)
.style(theme::Container::Custom(list_view_style))
]
.spacing(8)
.padding(24)

View file

@ -2,13 +2,28 @@ use iced::{
Background,
Color,
Theme,
widget::{
container,
},
widget,
};
pub fn list_view_style(theme: &Theme) -> container::Appearance {
container::Appearance {
#[macro_export]
macro_rules! list_view {
($($x:expr),+ $(,)?) => (
$crate::iced::widget::Container::new(
$crate::iced::widget::Column::with_children(
vec![$($crate::iced::Element::from($x)),+]
)
.spacing(12)
)
.padding([12, 16])
.style(theme::Container::Custom(
$crate::widget::list_view_style
))
);
}
pub use list_view;
pub fn list_view_style(theme: &Theme) -> widget::container::Appearance {
widget::container::Appearance {
text_color: None,
background: Some(Background::Color(
match theme {

View file

@ -16,7 +16,7 @@ mod icon;
pub use self::icon::icon;
mod list_view;
pub use list_view::list_view_style;
pub use list_view::{list_view, list_view_style};
mod nav_bar;
pub use nav_bar::{nav_bar, nav_bar_style};