wayland_panel/src/widget.rs

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),
}