Move desktop views into separate file
This commit is contained in:
parent
4ba38dc25d
commit
8c78f23902
3 changed files with 69 additions and 18 deletions
|
|
@ -6,4 +6,4 @@ edition = "2021"
|
||||||
publish = false
|
publish = false
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
libcosmic = { path = "../..", default-features = false, features = ["debug", "swbuf", "winit"] }
|
libcosmic = { path = "../..", default-features = false, features = ["debug", "wgpu", "winit"] }
|
||||||
|
|
|
||||||
|
|
@ -381,19 +381,7 @@ impl Application for Window {
|
||||||
]).into(),
|
]).into(),
|
||||||
Page::Networking(Some(sub_page)) => self.view_unimplemented_sub_page(sub_page),
|
Page::Networking(Some(sub_page)) => self.view_unimplemented_sub_page(sub_page),
|
||||||
Page::Bluetooth => self.view_bluetooth(),
|
Page::Bluetooth => self.view_bluetooth(),
|
||||||
Page::Desktop(None) => settings::view_column(vec![
|
Page::Desktop(desktop_page_opt) => self.view_desktop(desktop_page_opt),
|
||||||
self.page_title(self.page),
|
|
||||||
column!(
|
|
||||||
self.sub_page_button(DesktopPage::DesktopOptions),
|
|
||||||
self.sub_page_button(DesktopPage::Wallpaper),
|
|
||||||
self.sub_page_button(DesktopPage::Appearance),
|
|
||||||
self.sub_page_button(DesktopPage::DockAndTopPanel),
|
|
||||||
self.sub_page_button(DesktopPage::Workspaces),
|
|
||||||
self.sub_page_button(DesktopPage::Notifications),
|
|
||||||
).spacing(16).into()
|
|
||||||
]).into(),
|
|
||||||
Page::Desktop(Some(DesktopPage::DesktopOptions)) => self.view_desktop_options(),
|
|
||||||
Page::Desktop(Some(sub_page)) => self.view_unimplemented_sub_page(sub_page),
|
|
||||||
Page::InputDevices(None) => settings::view_column(vec![
|
Page::InputDevices(None) => settings::view_column(vec![
|
||||||
self.page_title(self.page),
|
self.page_title(self.page),
|
||||||
column!(
|
column!(
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,9 @@
|
||||||
use cosmic::{
|
use cosmic::{
|
||||||
Element,
|
Element,
|
||||||
iced::Length,
|
iced::Length,
|
||||||
iced::widget::horizontal_space,
|
iced::widget::{column, container, horizontal_space, image, row, text},
|
||||||
widget::{settings, toggler},
|
theme,
|
||||||
|
widget::{list_column, settings, toggler},
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{Message, Page, SubPage, Window};
|
use super::{Message, Page, SubPage, Window};
|
||||||
|
|
@ -66,12 +67,34 @@ impl SubPage for DesktopPage {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Window {
|
impl Window {
|
||||||
pub(super) fn view_desktop_options(&self) -> Element<Message> {
|
pub(super) fn view_desktop(&self, desktop_page_opt: Option<DesktopPage>) -> Element<Message> {
|
||||||
|
match desktop_page_opt {
|
||||||
|
None => settings::view_column(vec![
|
||||||
|
self.page_title(self.page),
|
||||||
|
column!(
|
||||||
|
self.sub_page_button(DesktopPage::DesktopOptions),
|
||||||
|
self.sub_page_button(DesktopPage::Wallpaper),
|
||||||
|
self.sub_page_button(DesktopPage::Appearance),
|
||||||
|
self.sub_page_button(DesktopPage::DockAndTopPanel),
|
||||||
|
self.sub_page_button(DesktopPage::Workspaces),
|
||||||
|
self.sub_page_button(DesktopPage::Notifications),
|
||||||
|
).spacing(16).into()
|
||||||
|
]).into(),
|
||||||
|
Some(DesktopPage::DesktopOptions) => self.view_desktop_options(),
|
||||||
|
Some(DesktopPage::Wallpaper) => self.view_desktop_wallpaper(),
|
||||||
|
Some(DesktopPage::Workspaces) => self.view_desktop_workspaces(),
|
||||||
|
Some(sub_page) => self.view_unimplemented_sub_page(sub_page),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fn view_desktop_options(&self) -> Element<Message> {
|
||||||
settings::view_column(vec![
|
settings::view_column(vec![
|
||||||
self.parent_page_button(DesktopPage::DesktopOptions),
|
self.parent_page_button(DesktopPage::DesktopOptions),
|
||||||
|
|
||||||
settings::view_section("Super Key Action")
|
settings::view_section("Super Key Action")
|
||||||
.add(settings::item("TODO", horizontal_space(Length::Fill)))
|
.add(settings::item("Launcher", horizontal_space(Length::Fill)))
|
||||||
|
.add(settings::item("Workspaces", horizontal_space(Length::Fill)))
|
||||||
|
.add(settings::item("Applications", horizontal_space(Length::Fill)))
|
||||||
.into(),
|
.into(),
|
||||||
|
|
||||||
settings::view_section("Hot Corner")
|
settings::view_section("Hot Corner")
|
||||||
|
|
@ -89,4 +112,44 @@ impl Window {
|
||||||
.into(),
|
.into(),
|
||||||
]).into()
|
]).into()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn view_desktop_wallpaper(&self) -> Element<Message> {
|
||||||
|
settings::view_column(vec![
|
||||||
|
self.parent_page_button(DesktopPage::Wallpaper),
|
||||||
|
|
||||||
|
row!(
|
||||||
|
horizontal_space(Length::Fill),
|
||||||
|
container(
|
||||||
|
image(
|
||||||
|
"/usr/share/backgrounds/pop/kate-hazen-COSMIC-desktop-wallpaper.png"
|
||||||
|
).width(Length::Units(300))
|
||||||
|
)
|
||||||
|
.padding(4)
|
||||||
|
.style(theme::Container::Box),
|
||||||
|
horizontal_space(Length::Fill),
|
||||||
|
).into(),
|
||||||
|
|
||||||
|
list_column()
|
||||||
|
.add(settings::item("Same background on all displays", toggler(None, self.toggler_value, Message::TogglerToggled)))
|
||||||
|
.add(settings::item("Background fit", text("TODO")))
|
||||||
|
.add(settings::item("Slideshow", toggler(None, self.toggler_value, Message::TogglerToggled)))
|
||||||
|
.into(),
|
||||||
|
]).into()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn view_desktop_workspaces(&self) -> Element<Message> {
|
||||||
|
settings::view_column(vec![
|
||||||
|
self.parent_page_button(DesktopPage::Wallpaper),
|
||||||
|
|
||||||
|
settings::view_section("Workspace Behavior")
|
||||||
|
.add(settings::item("Dynamic workspaces", horizontal_space(Length::Fill)))
|
||||||
|
.add(settings::item("Fixed Number of Workspaces", horizontal_space(Length::Fill)))
|
||||||
|
.into(),
|
||||||
|
|
||||||
|
settings::view_section("Multi-monitor Behavior")
|
||||||
|
.add(settings::item("Workspaces Span Displays", horizontal_space(Length::Fill)))
|
||||||
|
.add(settings::item("Displays Have Separate Workspaces", horizontal_space(Length::Fill)))
|
||||||
|
.into(),
|
||||||
|
]).into()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue