25 lines
680 B
Rust
25 lines
680 B
Rust
use iced::Element;
|
|
use iced::Subscription;
|
|
use iced::Task;
|
|
use iced_layershell::to_layer_message;
|
|
|
|
use crate::widgets::power_management::PowerManagement;
|
|
use crate::widgets::powerbutton::ShutdownEvents;
|
|
|
|
pub trait PanelWidget {
|
|
fn update(&mut self, message: &Message) -> Task<Message>;
|
|
fn subscribe(&self) -> Subscription<Message>;
|
|
fn view(&self) -> Option<Element<'_, Message>>;
|
|
fn render_window(&self, _id: iced::window::Id) -> Option<Element<'_, Message>> {
|
|
None
|
|
}
|
|
}
|
|
|
|
#[to_layer_message(multi)]
|
|
#[derive(Debug, Clone)]
|
|
pub enum Message {
|
|
Battery(Option<f64>),
|
|
Time,
|
|
ShutdownEvent(ShutdownEvents),
|
|
PowerManagement(PowerManagement),
|
|
}
|