rat_theme4/
fallback_theme.rs

1use crate::palette::Palette;
2use crate::{Category, SalsaTheme};
3use crate::{StyleName, WidgetStyle};
4use rat_widget::button::ButtonStyle;
5use rat_widget::calendar::CalendarStyle;
6use rat_widget::checkbox::CheckboxStyle;
7use rat_widget::choice::ChoiceStyle;
8use rat_widget::clipper::ClipperStyle;
9use rat_widget::combobox::ComboboxStyle;
10use rat_widget::dialog_frame::DialogFrameStyle;
11use rat_widget::file_dialog::FileDialogStyle;
12use rat_widget::form::FormStyle;
13use rat_widget::line_number::LineNumberStyle;
14use rat_widget::list::ListStyle;
15use rat_widget::menu::MenuStyle;
16use rat_widget::msgdialog::MsgDialogStyle;
17use rat_widget::paragraph::ParagraphStyle;
18use rat_widget::radio::RadioStyle;
19use rat_widget::scrolled::ScrollStyle;
20use rat_widget::shadow::ShadowStyle;
21use rat_widget::slider::SliderStyle;
22use rat_widget::splitter::SplitStyle;
23use rat_widget::statusline::StatusLineStyle;
24use rat_widget::tabbed::TabbedStyle;
25use rat_widget::table::TableStyle;
26use rat_widget::text::TextStyle;
27use rat_widget::view::ViewStyle;
28use ratatui::style::Style;
29
30/// A theme to test the fallback-styles of each widget.
31pub fn fallback_theme(name: &str, p: Palette) -> SalsaTheme {
32    let mut th = SalsaTheme::new(name, Category::Other, p);
33
34    th.define(Style::INPUT, Style::default());
35    th.define(Style::FOCUS, Style::default());
36    th.define(Style::SELECT, Style::default());
37    th.define(Style::TEXT_FOCUS, Style::default());
38    th.define(Style::TEXT_SELECT, Style::default());
39    th.define(Style::BUTTON_BASE, Style::default());
40
41    th.define(Style::CONTAINER_BASE, Style::default());
42    th.define(Style::CONTAINER_BORDER, Style::default());
43    th.define(Style::CONTAINER_ARROWS, Style::default());
44
45    th.define(Style::POPUP_BASE, Style::default());
46    th.define(Style::POPUP_BORDER, Style::default());
47    th.define(Style::POPUP_ARROW, Style::default());
48
49    th.define(Style::DIALOG_BASE, Style::default());
50    th.define(Style::DIALOG_BORDER, Style::default());
51    th.define(Style::DIALOG_ARROW, Style::default());
52
53    th.define(Style::STATUS_BASE, Style::default());
54
55    th.define_fn0(WidgetStyle::BUTTON, ButtonStyle::default);
56    th.define_fn0(WidgetStyle::CALENDAR, CalendarStyle::default);
57    th.define_fn0(WidgetStyle::CHECKBOX, CheckboxStyle::default);
58    th.define_fn0(WidgetStyle::CHOICE, ChoiceStyle::default);
59    th.define_fn0(WidgetStyle::CLIPPER, ClipperStyle::default);
60    th.define_fn0(WidgetStyle::COMBOBOX, ComboboxStyle::default);
61    th.define_fn0(WidgetStyle::DIALOG_FRAME, DialogFrameStyle::default);
62    th.define_fn0(WidgetStyle::FILE_DIALOG, FileDialogStyle::default);
63    th.define_fn0(WidgetStyle::FORM, FormStyle::default);
64    th.define_fn0(WidgetStyle::LINE_NR, LineNumberStyle::default);
65    th.define_fn0(WidgetStyle::LIST, ListStyle::default);
66    th.define_fn0(WidgetStyle::MENU, MenuStyle::default);
67    th.define_fn0(WidgetStyle::MONTH, CalendarStyle::default);
68    th.define_fn0(WidgetStyle::MSG_DIALOG, MsgDialogStyle::default);
69    th.define_fn0(WidgetStyle::PARAGRAPH, ParagraphStyle::default);
70    th.define_fn0(WidgetStyle::RADIO, RadioStyle::default);
71    th.define_fn0(WidgetStyle::SCROLL, ScrollStyle::default);
72    th.define_fn0(WidgetStyle::SCROLL_DIALOG, ScrollStyle::default);
73    th.define_fn0(WidgetStyle::SCROLL_POPUP, ScrollStyle::default);
74    th.define_fn0(WidgetStyle::SHADOW, ShadowStyle::default);
75    th.define_fn0(WidgetStyle::SLIDER, SliderStyle::default);
76    th.define_fn0(WidgetStyle::SPLIT, SplitStyle::default);
77    th.define_fn0(WidgetStyle::STATUSLINE, StatusLineStyle::default);
78    th.define_fn0(WidgetStyle::TABBED, TabbedStyle::default);
79    th.define_fn0(WidgetStyle::TABLE, TableStyle::default);
80    th.define_fn0(WidgetStyle::TEXT, TextStyle::default);
81    th.define_fn0(WidgetStyle::TEXTAREA, TextStyle::default);
82    th.define_fn0(WidgetStyle::TEXTVIEW, TextStyle::default);
83    th.define_fn0(WidgetStyle::VIEW, ViewStyle::default);
84
85    th
86}