use super::types::OverlayKind;
#[derive(Debug, Clone)]
pub struct ZLayerTable {
pub dock: i32,
pub floating: i32,
pub dropdown: i32,
pub popup: i32,
pub modal: i32,
pub context_menu: i32,
pub color_picker: i32,
pub tooltip: i32,
}
impl Default for ZLayerTable {
fn default() -> Self {
Self {
dock: 0,
floating: 1,
dropdown: 2,
popup: 3,
modal: 4,
context_menu: 5,
color_picker: 6,
tooltip: 7,
}
}
}
impl ZLayerTable {
pub fn z_for(&self, kind: OverlayKind) -> i32 {
match kind {
OverlayKind::Dropdown => self.dropdown,
OverlayKind::Popup => self.popup,
OverlayKind::Modal => self.modal,
OverlayKind::ContextMenu => self.context_menu,
OverlayKind::ColorPicker => self.color_picker,
OverlayKind::Tooltip => self.tooltip,
}
}
pub fn set(&mut self, kind: OverlayKind, z: i32) {
match kind {
OverlayKind::Dropdown => self.dropdown = z,
OverlayKind::Popup => self.popup = z,
OverlayKind::Modal => self.modal = z,
OverlayKind::ContextMenu => self.context_menu = z,
OverlayKind::ColorPicker => self.color_picker = z,
OverlayKind::Tooltip => self.tooltip = z,
}
}
}