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::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
30pub 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}