summaryrefslogtreecommitdiff
path: root/schist_desktop_gui/src/traits/focusable.rs
blob: 8eb96287fc2012481a9f9c154be4bd9160360aef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
pub trait Focusable {
    fn focus(&mut self);
    fn unfocus(&mut self);
}

#[macro_export]
macro_rules! impl_focusable {
    ($target:ty) => {
        impl $crate::traits::Focusable for $target {
            fn focus(&mut self) {
                self.is_focused = true;
            }
            fn unfocus(&mut self) {
                self.is_focused = false;
            }
        }
    };
}