pub struct Style {Show 17 fields
pub override_text_style: Option<TextStyle>,
pub override_font_id: Option<FontId>,
pub override_text_valign: Option<Align>,
pub text_styles: BTreeMap<TextStyle, FontId>,
pub drag_value_text_style: TextStyle,
pub number_formatter: NumberFormatter,
pub wrap: Option<bool>,
pub wrap_mode: Option<TextWrapMode>,
pub spacing: Spacing,
pub interaction: Interaction,
pub visuals: Visuals,
pub animation_time: f32,
pub debug: DebugOptions,
pub explanation_tooltips: bool,
pub url_in_tooltip: bool,
pub always_scroll_the_only_direction: bool,
pub scroll_animation: ScrollAnimation,
}
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_of
.
To choose between dark and light style, use crate::Context::set_theme
.
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.
override_text_valign: Option<Align>
How to vertically align text.
Set to None
to use align that depends on the current layout.
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::*;
use std::collections::BTreeMap;
// Redefine text_styles
let text_styles: BTreeMap<_, _> = [
(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 styles with new text styles
ctx.all_styles_mut(move |style| style.text_styles = text_styles.clone());
drag_value_text_style: TextStyle
The style to use for DragValue
text.
number_formatter: NumberFormatter
How to format numbers as strings, e.g. in a crate::DragValue
.
You can override this to e.g. add thousands separators.
wrap: Option<bool>
If set, labels, buttons, etc. will use this to determine whether to wrap the text at the
right edge of the Ui
they are in. By default, this is None
.
Note: this API is deprecated, use wrap_mode
instead.
None
: usewrap_mode
insteadSome(true)
: wrap mode defaults tocrate::TextWrapMode::Wrap
Some(false)
: wrap mode defaults tocrate::TextWrapMode::Extend
wrap_mode: Option<TextWrapMode>
If set, labels, buttons, etc. will use this to determine whether to wrap or truncate the
text at the right edge of the Ui
they are in, or to extend it. By default, this is
None
.
None
: follow layout (with may wrap)Some(mode)
: use the specified mode as default
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.
url_in_tooltip: bool
Show the URL of hyperlinks in a tooltip when hovered.
always_scroll_the_only_direction: bool
If true and scrolling is enabled for only one direction, allow horizontal scrolling without pressing shift
scroll_animation: ScrollAnimation
The animation that should be used when scrolling a crate::ScrollArea
using e.g. Ui::scroll_to_rect
.
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.
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Style
impl<'de> Deserialize<'de> for Style
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl StructuralPartialEq for Style
Auto Trait Implementations§
impl Freeze for Style
impl !RefUnwindSafe for Style
impl Send for Style
impl Sync for Style
impl Unpin for Style
impl !UnwindSafe for Style
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more