Align navbar with new designs

This commit is contained in:
Jeremy Soller 2022-12-19 15:45:43 -07:00 committed by Michael Murphy
parent a716e0837d
commit 77c13cb732

View file

@ -149,77 +149,24 @@ impl Application for Window {
let content = responsive(|size| {
let condensed = size.width < 900.0;
// cosmic::navbar![
// nav_text_button("network-wireless", "Network & Wireless", condensed)
// .on_press(Message::Page(0))
// .style(if self.page == 0 {
// ButtonTheme::Primary
// } else {
// ButtonTheme::Text
// }),
// nav_text_button("preferences-desktop", "Bluetooth", condensed)
// .on_press(Message::Page(1))
// .style(if self.page == 1 {
// ButtonTheme::Primary
// } else {
// ButtonTheme::Text
// }),
// nav_text_button("system-software-update", "Personalization", condensed)
// .on_press(Message::Page(2))
// .style(if self.page == 2 {
// ButtonTheme::Primary
// } else {
// ButtonTheme::Text
// }),
// ]
let sidebar: Element<_> = nav_bar()
.source(BTreeMap::from([
(
nav_bar_section()
.title("Network & Wireless")
.icon("network-wireless"),
vec![nav_bar_page("Wi-Fi")],
),
(
nav_bar_section().title("Bluetooth").icon("cs-bluetooth"),
vec![nav_bar_page("Devices")],
),
(
nav_bar_section()
.title("Personalization")
.icon("applications-system"),
vec![
nav_bar_page("Desktop Session"),
nav_bar_page("Wallpaper"),
nav_bar_page("Appearance"),
nav_bar_page("Dock & Top Panel"),
nav_bar_page("Workspaces"),
nav_bar_page("Notifications"),
],
),
(
nav_bar_section()
.title("Input Devices")
.icon("input-keyboard"),
vec![nav_bar_page("Keyboard")],
),
(
nav_bar_section().title("Displays").icon("cs-display"),
vec![nav_bar_page("Keyboard")],
),
(
nav_bar_section().title("Power & Battery").icon("battery"),
vec![nav_bar_page("Status")],
),
(
nav_bar_section().title("Sound").icon("sound"),
vec![nav_bar_page("Volume")],
),
]))
.active(self.sidebar_toggled)
.condensed(condensed)
.into();
let sidebar: Element<_> = iced::widget::container(
iced::widget::column!(
cosmic::nav_button!("network-wireless-symbolic", "Wi-Fi", condensed, self.page == 0)
.on_press(Message::Page(0)),
cosmic::nav_button!("network-wired-symbolic", "Networking", condensed, self.page == 1)
.on_press(Message::Page(1)),
cosmic::nav_button!("bluetooth-active-symbolic", "Bluetooth", condensed, self.page == 2)
.on_press(Message::Page(2)),
cosmic::nav_button!("preferences-desktop-wallpaper-symbolic", "Desktop", condensed, self.page == 3)
.on_press(Message::Page(3)),
)
.spacing(14)
)
.height(Length::Fill)
.padding(11)
.max_width(300)
.style(theme::Container::Custom(cosmic::widget::nav_bar::nav_bar_sections_style))
.into();
let choose_theme = [Theme::Light, Theme::Dark].iter().fold(
row![].spacing(10).align_items(Alignment::Center),
@ -233,77 +180,79 @@ impl Application for Window {
},
);
let content: Element<_> = settings::view_column(vec![
settings::view_section("Debug")
.add(settings::item("Debug theme", choose_theme))
.add(settings::item(
"Debug layout",
toggler(String::from("Debug layout"), self.debug, Message::Debug)
))
.into(),
settings::view_section("Buttons")
.add(settings::item_row(vec![
button(ButtonTheme::Primary)
.text("Primary")
.on_press(Message::ButtonPressed)
.into(),
button(ButtonTheme::Secondary)
.text("Secondary")
.on_press(Message::ButtonPressed)
.into(),
button(ButtonTheme::Positive)
.text("Positive")
.on_press(Message::ButtonPressed)
.into(),
button(ButtonTheme::Destructive)
.text("Destructive")
.on_press(Message::ButtonPressed)
.into(),
button(ButtonTheme::Text)
.text("Text")
.on_press(Message::ButtonPressed)
.into()
]))
.add(settings::item_row(vec![
button(ButtonTheme::Primary).text("Primary").into(),
button(ButtonTheme::Secondary).text("Secondary").into(),
button(ButtonTheme::Positive).text("Positive").into(),
button(ButtonTheme::Destructive).text("Destructive").into(),
button(ButtonTheme::Text).text("Text").into(),
]))
.into(),
settings::view_section("Controls")
.add(settings::item("Toggler", toggler(None, self.toggler_value, Message::TogglerToggled)))
.add(settings::item(
"Pick List (TODO)",
pick_list(
vec!["Option 1", "Option 2", "Option 3", "Option 4",],
self.pick_list_selected,
Message::PickListSelected
)
.padding([8, 0, 8, 16])
))
.add(settings::item(
"Slider",
slider(0.0..=100.0, self.slider_value, Message::SliderChanged)
.width(Length::Units(250))
))
.add(settings::item(
"Progress",
progress_bar(0.0..=100.0, self.slider_value)
.width(Length::Units(250))
.height(Length::Units(4))
))
.add(settings::item_row(vec![
checkbox("Checkbox", self.checkbox_value, Message::CheckboxToggled).into()
]))
.add(settings::item(
format!("Spin Button (Range {}:{})", self.spin_button.min, self.spin_button.max),
self.spin_button.view(Message::SpinButton),
))
.into()
])
.into();
let content: Element<_> = match self.page {
_ => settings::view_column(vec![
settings::view_section("Debug")
.add(settings::item("Debug theme", choose_theme))
.add(settings::item(
"Debug layout",
toggler(String::from("Debug layout"), self.debug, Message::Debug)
))
.into(),
settings::view_section("Buttons")
.add(settings::item_row(vec![
button(ButtonTheme::Primary)
.text("Primary")
.on_press(Message::ButtonPressed)
.into(),
button(ButtonTheme::Secondary)
.text("Secondary")
.on_press(Message::ButtonPressed)
.into(),
button(ButtonTheme::Positive)
.text("Positive")
.on_press(Message::ButtonPressed)
.into(),
button(ButtonTheme::Destructive)
.text("Destructive")
.on_press(Message::ButtonPressed)
.into(),
button(ButtonTheme::Text)
.text("Text")
.on_press(Message::ButtonPressed)
.into()
]))
.add(settings::item_row(vec![
button(ButtonTheme::Primary).text("Primary").into(),
button(ButtonTheme::Secondary).text("Secondary").into(),
button(ButtonTheme::Positive).text("Positive").into(),
button(ButtonTheme::Destructive).text("Destructive").into(),
button(ButtonTheme::Text).text("Text").into(),
]))
.into(),
settings::view_section("Controls")
.add(settings::item("Toggler", toggler(None, self.toggler_value, Message::TogglerToggled)))
.add(settings::item(
"Pick List (TODO)",
pick_list(
vec!["Option 1", "Option 2", "Option 3", "Option 4",],
self.pick_list_selected,
Message::PickListSelected
)
.padding([8, 0, 8, 16])
))
.add(settings::item(
"Slider",
slider(0.0..=100.0, self.slider_value, Message::SliderChanged)
.width(Length::Units(250))
))
.add(settings::item(
"Progress",
progress_bar(0.0..=100.0, self.slider_value)
.width(Length::Units(250))
.height(Length::Units(4))
))
.add(settings::item_row(vec![
checkbox("Checkbox", self.checkbox_value, Message::CheckboxToggled).into()
]))
.add(settings::item(
format!("Spin Button (Range {}:{})", self.spin_button.min, self.spin_button.max),
self.spin_button.view(Message::SpinButton),
))
.into()
])
.into(),
};
let mut widgets = Vec::with_capacity(2);