apply suggesions

This commit is contained in:
wiiznokes 2024-11-11 21:04:26 +01:00
parent 8e82d3cfb9
commit 98aed56e6a
3 changed files with 15 additions and 6 deletions

View file

@ -3,7 +3,7 @@
//! Application API example //! Application API example
use cosmic::app::context_drawer::{context_drawer, ContextDrawer}; use cosmic::app::context_drawer::{self, context_drawer, ContextDrawer};
use cosmic::app::{Core, Settings, Task}; use cosmic::app::{Core, Settings, Task};
use cosmic::iced::widget::column; use cosmic::iced::widget::column;
use cosmic::iced_core::Size; use cosmic::iced_core::Size;
@ -102,16 +102,16 @@ impl cosmic::Application for App {
} }
fn context_drawer(&self) -> Option<ContextDrawer<Self::Message>> { fn context_drawer(&self) -> Option<ContextDrawer<Self::Message>> {
match self.show_about { self.show_about
true => Some(context_drawer(widget::about(&self.about, Message::Open), Message::ToggleAbout)), .then(|| context_drawer::about(&self.about, Message::Open, Message::ToggleAbout))
false => None,
}
} }
/// Handle application events here. /// Handle application events here.
fn update(&mut self, message: Self::Message) -> Task<Self::Message> { fn update(&mut self, message: Self::Message) -> Task<Self::Message> {
match message { match message {
Message::ToggleAbout => { Message::ToggleAbout => {
self.core.window.show_context = !self.core.window.show_context;
self.core.set_show_context(self.core.window.show_context);
self.show_about = !self.show_about; self.show_about = !self.show_about;
} }
Message::Open(url) => match open::that_detached(url) { Message::Open(url) => match open::that_detached(url) {

View file

@ -11,6 +11,15 @@ pub struct ContextDrawer<'a, Message: Clone + 'static> {
pub on_close: Message, pub on_close: Message,
} }
#[cfg(feature = "about")]
pub fn about<'a, Message: Clone + 'static>(
about: &'a crate::widget::about::About,
on_url_press: impl Fn(String) -> Message,
on_close: Message,
) -> ContextDrawer<'a, Message> {
context_drawer(crate::widget::about(about, on_url_press), on_close)
}
pub fn context_drawer<'a, Message: Clone + 'static>( pub fn context_drawer<'a, Message: Clone + 'static>(
content: impl Into<Element<'a, Message>>, content: impl Into<Element<'a, Message>>,
on_close: Message, on_close: Message,

View file

@ -729,7 +729,7 @@ impl<App: Application> ApplicationExt for App {
//TODO: reduce duplication //TODO: reduce duplication
let context_width = core.context_width(has_nav); let context_width = core.context_width(has_nav);
if core.window.context_is_overlay { if core.window.context_is_overlay && core.window.show_context {
if let Some(context) = self.context_drawer() { if let Some(context) = self.context_drawer() {
widgets.push( widgets.push(
Element::from( Element::from(