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