embedded_menu/theme/
mod.rs1use embedded_graphics::{pixelcolor::BinaryColor, prelude::PixelColor};
2
3pub trait Theme: Copy {
4 type Color: PixelColor + Default;
5
6 fn text_color(&self) -> Self::Color;
7 fn selected_text_color(&self) -> Self::Color;
8 fn selection_color(&self) -> Self::Color;
9}
10
11impl Theme for BinaryColor {
12 type Color = BinaryColor;
13
14 fn text_color(&self) -> Self::Color {
15 *self
16 }
17
18 fn selected_text_color(&self) -> Self::Color {
19 self.invert()
20 }
21
22 fn selection_color(&self) -> Self::Color {
23 *self
24 }
25}