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