pub struct Style {
pub override_text_style: Option<TextStyle>,
pub override_font_id: Option<FontId>,
pub text_styles: BTreeMap<TextStyle, FontId>,
pub drag_value_text_style: TextStyle,
pub wrap: Option<bool>,
pub spacing: Spacing,
pub interaction: Interaction,
pub visuals: Visuals,
pub animation_time: f32,
pub debug: DebugOptions,
pub explanation_tooltips: bool,
pub always_scroll_the_only_direction: bool,
}
Expand description
Specifies the look and feel of egui.
You can change the visuals of a Ui
with Ui::style_mut
and of everything with crate::Context::set_style
.
If you want to change fonts, use crate::Context::set_fonts
instead.
Fields§
§override_text_style: Option<TextStyle>
If set this will change the default TextStyle
for all widgets.
On most widgets you can also set an explicit text style, which will take precedence over this.
override_font_id: Option<FontId>
If set this will change the font family and size for all widgets.
On most widgets you can also set an explicit text style, which will take precedence over this.
text_styles: BTreeMap<TextStyle, FontId>
The FontFamily
and size you want to use for a specific TextStyle
.
The most convenient way to look something up in this is to use TextStyle::resolve
.
If you would like to overwrite app text_styles
use egui::FontFamily::Proportional;
use egui::FontId;
use egui::TextStyle::*;
// Get current context style
let mut style = (*ctx.style()).clone();
// Redefine text_styles
style.text_styles = [
(Heading, FontId::new(30.0, Proportional)),
(Name("Heading2".into()), FontId::new(25.0, Proportional)),
(Name("Context".into()), FontId::new(23.0, Proportional)),
(Body, FontId::new(18.0, Proportional)),
(Monospace, FontId::new(14.0, Proportional)),
(Button, FontId::new(14.0, Proportional)),
(Small, FontId::new(10.0, Proportional)),
].into();
// Mutate global style with above changes
ctx.set_style(style);
drag_value_text_style: TextStyle
The style to use for DragValue
text.
wrap: Option<bool>
If set, labels buttons wtc will use this to determine whether or not
to wrap the text at the right edge of the Ui
they are in.
By default this is None
.
None
: follow layoutSome(true)
: default onSome(false)
: default off
spacing: Spacing
Sizes and distances between widgets
interaction: Interaction
How and when interaction happens.
visuals: Visuals
Colors etc.
animation_time: f32
How many seconds a typical animation should last.
debug: DebugOptions
Options to help debug why egui behaves strangely.
Only available in debug builds.
explanation_tooltips: bool
Show tooltips explaining DragValue
:s etc when hovered.
This only affects a few egui widgets.
always_scroll_the_only_direction: bool
If true and scrolling is enabled for only one direction, allow horizontal scrolling without pressing shift
Implementations§
source§impl Style
impl Style
sourcepub fn interact(&self, response: &Response) -> &WidgetVisuals
pub fn interact(&self, response: &Response) -> &WidgetVisuals
Use this style for interactive things. Note that you must already have a response, i.e. you must allocate space and interact BEFORE painting the widget!
pub fn interact_selectable( &self, response: &Response, selected: bool ) -> WidgetVisuals
sourcepub fn noninteractive(&self) -> &WidgetVisuals
pub fn noninteractive(&self) -> &WidgetVisuals
Style to use for non-interactive widgets.
sourcepub fn text_styles(&self) -> Vec<TextStyle>
pub fn text_styles(&self) -> Vec<TextStyle>
All known text styles.