forked from max_ag/wayland_panel
23 lines
575 B
Rust
23 lines
575 B
Rust
use iced::Element;
|
|
use iced::Subscription;
|
|
use iced::Task;
|
|
use iced_layershell::to_layer_message;
|
|
|
|
use crate::widgets::powerbutton::ShutdownEvents;
|
|
|
|
pub trait PanelWidget {
|
|
fn update(&mut self, message: &Message) -> Task<Message>;
|
|
fn subscribe(&self) -> Subscription<Message>;
|
|
fn view(&self, id: iced::window::Id) -> Element<'_, Message>;
|
|
fn has_window(&self, _id: iced::window::Id) -> bool {
|
|
false
|
|
}
|
|
}
|
|
|
|
#[to_layer_message(multi)]
|
|
#[derive(Debug, Clone)]
|
|
pub enum Message {
|
|
Battery(Option<f64>),
|
|
Time,
|
|
ShutdownEvent(ShutdownEvents),
|
|
}
|