Improve documentation of style-related functions and types
This commit is contained in:
parent
2d9d06dbff
commit
de204b5436
3 changed files with 61 additions and 19 deletions
|
@ -452,17 +452,27 @@ impl Context {
|
||||||
self.memory().options.font_definitions = font_definitions;
|
self.memory().options.font_definitions = font_definitions;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The [`Style`] used by all new windows, panels etc.
|
/// The [`Style`] used by all subsequent windows, panels etc.
|
||||||
pub fn style(&self) -> Arc<Style> {
|
pub fn style(&self) -> Arc<Style> {
|
||||||
self.memory().options.style.clone()
|
self.memory().options.style.clone()
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The [`Style`] used by all new windows, panels etc.
|
/// The [`Style`] used by all new windows, panels etc.
|
||||||
|
///
|
||||||
|
/// Example:
|
||||||
|
/// ```
|
||||||
|
/// # let mut ctx = egui::CtxRef::default();
|
||||||
|
/// let mut style: egui::Style = (*ctx.style()).clone();
|
||||||
|
/// style.spacing.item_spacing = egui::vec2(10.0, 20.0);
|
||||||
|
/// ctx.set_style(style);
|
||||||
|
/// ```
|
||||||
pub fn set_style(&self, style: impl Into<Arc<Style>>) {
|
pub fn set_style(&self, style: impl Into<Arc<Style>>) {
|
||||||
self.memory().options.style = style.into();
|
self.memory().options.style = style.into();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// The [`Visuals`] used by all new windows, panels etc.
|
/// The [`Visuals`] used by all subsequent windows, panels etc.
|
||||||
|
///
|
||||||
|
/// You can also use [`Ui::visuals_mut`] to change the visuals of a single [`Ui`].
|
||||||
///
|
///
|
||||||
/// Example:
|
/// Example:
|
||||||
/// ```
|
/// ```
|
||||||
|
|
|
@ -113,6 +113,9 @@ pub struct Interaction {
|
||||||
pub struct Visuals {
|
pub struct Visuals {
|
||||||
/// If true, the visuals are overall dark with light text.
|
/// If true, the visuals are overall dark with light text.
|
||||||
/// If false, the visuals are overall light with dark text.
|
/// If false, the visuals are overall light with dark text.
|
||||||
|
///
|
||||||
|
/// NOTE: setting this does very little by itself,
|
||||||
|
/// this is more to provide a convenient summary of the rest of the settings.
|
||||||
pub dark_mode: bool,
|
pub dark_mode: bool,
|
||||||
|
|
||||||
/// Override default text color for all text.
|
/// Override default text color for all text.
|
||||||
|
@ -197,15 +200,18 @@ pub struct Selection {
|
||||||
#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))]
|
||||||
#[cfg_attr(feature = "persistence", serde(default))]
|
#[cfg_attr(feature = "persistence", serde(default))]
|
||||||
pub struct Widgets {
|
pub struct Widgets {
|
||||||
/// For a non-interactive widget
|
/// The style of a widget that you cannot interact with.
|
||||||
|
/// * `noninteractive.bg_stroke` is the outline of windows.
|
||||||
|
/// * `noninteractive.bg_fill` is the background color of windows.
|
||||||
|
/// * `noninteractive.fg_stroke` is the normal text color.
|
||||||
pub noninteractive: WidgetVisuals,
|
pub noninteractive: WidgetVisuals,
|
||||||
/// For an otherwise interactive widget that has been disabled
|
/// The style of a disabled button.
|
||||||
pub disabled: WidgetVisuals,
|
pub disabled: WidgetVisuals,
|
||||||
/// For an interactive widget that is "resting"
|
/// The style of an interactive widget, such as a button, at rest.
|
||||||
pub inactive: WidgetVisuals,
|
pub inactive: WidgetVisuals,
|
||||||
/// For an interactive widget that is being hovered
|
/// The style of an interactive widget while you hover it.
|
||||||
pub hovered: WidgetVisuals,
|
pub hovered: WidgetVisuals,
|
||||||
/// For an interactive widget that is being interacted with
|
/// The style of an interactive widget as you are clicking or dragging it.
|
||||||
pub active: WidgetVisuals,
|
pub active: WidgetVisuals,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -227,7 +233,7 @@ impl Widgets {
|
||||||
#[derive(Clone, Copy, Debug, PartialEq)]
|
#[derive(Clone, Copy, Debug, PartialEq)]
|
||||||
#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))]
|
#[cfg_attr(feature = "persistence", derive(serde::Deserialize, serde::Serialize))]
|
||||||
pub struct WidgetVisuals {
|
pub struct WidgetVisuals {
|
||||||
/// Background color of widget
|
/// Background color of widget.
|
||||||
pub bg_fill: Color32,
|
pub bg_fill: Color32,
|
||||||
|
|
||||||
/// For surrounding rectangle of things that need it,
|
/// For surrounding rectangle of things that need it,
|
||||||
|
@ -235,13 +241,13 @@ pub struct WidgetVisuals {
|
||||||
/// Should maybe be called `frame_stroke`.
|
/// Should maybe be called `frame_stroke`.
|
||||||
pub bg_stroke: Stroke,
|
pub bg_stroke: Stroke,
|
||||||
|
|
||||||
/// Button frames etc
|
/// Button frames etc.
|
||||||
pub corner_radius: f32,
|
pub corner_radius: f32,
|
||||||
|
|
||||||
/// Stroke and text color of the interactive part of a component (button text, slider grab, check-mark, ...)
|
/// Stroke and text color of the interactive part of a component (button text, slider grab, check-mark, ...).
|
||||||
pub fg_stroke: Stroke,
|
pub fg_stroke: Stroke,
|
||||||
|
|
||||||
/// Make the frame this much larger
|
/// Make the frame this much larger.
|
||||||
pub expansion: f32,
|
pub expansion: f32,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -292,6 +298,7 @@ impl Default for Interaction {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Visuals {
|
impl Visuals {
|
||||||
|
/// Default dark theme.
|
||||||
pub fn dark() -> Self {
|
pub fn dark() -> Self {
|
||||||
Self {
|
Self {
|
||||||
dark_mode: true,
|
dark_mode: true,
|
||||||
|
@ -312,6 +319,7 @@ impl Visuals {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Default light theme.
|
||||||
pub fn light() -> Self {
|
pub fn light() -> Self {
|
||||||
Self {
|
Self {
|
||||||
dark_mode: false,
|
dark_mode: false,
|
||||||
|
@ -532,7 +540,7 @@ impl Widgets {
|
||||||
} = self;
|
} = self;
|
||||||
|
|
||||||
ui.collapsing("noninteractive", |ui| {
|
ui.collapsing("noninteractive", |ui| {
|
||||||
ui.label("The style of something that you cannot interact with.");
|
ui.label("The style of a widget that you cannot interact with.");
|
||||||
noninteractive.ui(ui)
|
noninteractive.ui(ui)
|
||||||
});
|
});
|
||||||
ui.collapsing("interactive & disabled", |ui| {
|
ui.collapsing("interactive & disabled", |ui| {
|
||||||
|
@ -540,15 +548,15 @@ impl Widgets {
|
||||||
disabled.ui(ui)
|
disabled.ui(ui)
|
||||||
});
|
});
|
||||||
ui.collapsing("interactive & inactive", |ui| {
|
ui.collapsing("interactive & inactive", |ui| {
|
||||||
ui.label("The style of a widget, such as a button, at rest.");
|
ui.label("The style of an interactive widget, such as a button, at rest.");
|
||||||
inactive.ui(ui)
|
inactive.ui(ui)
|
||||||
});
|
});
|
||||||
ui.collapsing("interactive & hovered", |ui| {
|
ui.collapsing("interactive & hovered", |ui| {
|
||||||
ui.label("The style of a widget while you hover it.");
|
ui.label("The style of an interactive widget while you hover it.");
|
||||||
hovered.ui(ui)
|
hovered.ui(ui)
|
||||||
});
|
});
|
||||||
ui.collapsing("interactive & active", |ui| {
|
ui.collapsing("interactive & active", |ui| {
|
||||||
ui.label("The style of a widget as you are clicking or dragging it.");
|
ui.label("The style of an interactive widget as you are clicking or dragging it.");
|
||||||
active.ui(ui)
|
active.ui(ui)
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -99,35 +99,59 @@ impl Ui {
|
||||||
|
|
||||||
/// Mutably borrow internal `Style`.
|
/// Mutably borrow internal `Style`.
|
||||||
/// Changes apply to this `Ui` and its subsequent children.
|
/// Changes apply to this `Ui` and its subsequent children.
|
||||||
|
///
|
||||||
|
/// To set the style of all `Ui`:s, use [`Context::set_style`].
|
||||||
|
///
|
||||||
|
/// Example:
|
||||||
|
/// ```
|
||||||
|
/// # let ui = &mut egui::Ui::__test();
|
||||||
|
/// ui.style_mut().body_text_style = egui::TextStyle::Heading;
|
||||||
|
/// ```
|
||||||
pub fn style_mut(&mut self) -> &mut Style {
|
pub fn style_mut(&mut self) -> &mut Style {
|
||||||
std::sync::Arc::make_mut(&mut self.style) // clone-on-write
|
std::sync::Arc::make_mut(&mut self.style) // clone-on-write
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Changes apply to this `Ui` and its subsequent children.
|
/// Changes apply to this `Ui` and its subsequent children.
|
||||||
|
///
|
||||||
|
/// To set the visuals of all `Ui`:s, use [`Context::set_visuals`].
|
||||||
pub fn set_style(&mut self, style: impl Into<std::sync::Arc<Style>>) {
|
pub fn set_style(&mut self, style: impl Into<std::sync::Arc<Style>>) {
|
||||||
self.style = style.into();
|
self.style = style.into();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Short for `&self.style().spacing`
|
/// The current spacing options for this `Ui`.
|
||||||
/// Spacing options for this `Ui` and its children.
|
/// Short for `ui.style().spacing`.
|
||||||
pub fn spacing(&self) -> &crate::style::Spacing {
|
pub fn spacing(&self) -> &crate::style::Spacing {
|
||||||
&self.style.spacing
|
&self.style.spacing
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Mutably borrow internal `Spacing`.
|
/// Mutably borrow internal `Spacing`.
|
||||||
/// Changes apply to this `Ui` and its subsequent children.
|
/// Changes apply to this `Ui` and its subsequent children.
|
||||||
|
///
|
||||||
|
/// Example:
|
||||||
|
/// ```
|
||||||
|
/// # let ui = &mut egui::Ui::__test();
|
||||||
|
/// ui.spacing_mut().item_spacing = egui::vec2(10.0, 2.0);
|
||||||
|
/// ```
|
||||||
pub fn spacing_mut(&mut self) -> &mut crate::style::Spacing {
|
pub fn spacing_mut(&mut self) -> &mut crate::style::Spacing {
|
||||||
&mut self.style_mut().spacing
|
&mut self.style_mut().spacing
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Short for `&self.style().visuals`
|
/// The current visuals settings of this `Ui`.
|
||||||
/// visuals options for this `Ui` and its children.
|
/// Short for `ui.style().visuals`.
|
||||||
pub fn visuals(&self) -> &crate::Visuals {
|
pub fn visuals(&self) -> &crate::Visuals {
|
||||||
&self.style.visuals
|
&self.style.visuals
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Mutably borrow internal `visuals`.
|
/// Mutably borrow internal `visuals`.
|
||||||
/// Changes apply to this `Ui` and its subsequent children.
|
/// Changes apply to this `Ui` and its subsequent children.
|
||||||
|
///
|
||||||
|
/// To set the visuals of all `Ui`:s, use [`Context::set_visuals`].
|
||||||
|
///
|
||||||
|
/// Example:
|
||||||
|
/// ```
|
||||||
|
/// # let ui = &mut egui::Ui::__test();
|
||||||
|
/// ui.visuals_mut().override_text_color = Some(egui::Color32::RED);
|
||||||
|
/// ```
|
||||||
pub fn visuals_mut(&mut self) -> &mut crate::Visuals {
|
pub fn visuals_mut(&mut self) -> &mut crate::Visuals {
|
||||||
&mut self.style_mut().visuals
|
&mut self.style_mut().visuals
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue