1
0
mirror of https://github.com/emilk/egui.git synced 2026-09-01 14:20:04 -04:00

Add widget egui::reset_button

This commit is contained in:
Emil Ernerfeldt
2021-01-02 23:28:10 +01:00
parent fffa5e7795
commit a905c884e8
6 changed files with 24 additions and 31 deletions

View File

@@ -65,8 +65,6 @@ impl paint::FontDefinitions {
.text(format!("{:?}", text_style)),
);
}
if ui.button("Reset fonts").clicked {
*self = Default::default();
}
crate::reset_button(ui, self);
}
}

View File

@@ -345,9 +345,7 @@ use crate::{widgets::*, Ui};
impl Style {
pub fn ui(&mut self, ui: &mut crate::Ui) {
if ui.button("Reset").clicked {
*self = Default::default();
}
crate::reset_button(ui, self);
let Self {
body_text_style,
@@ -371,9 +369,7 @@ impl Style {
impl Spacing {
pub fn ui(&mut self, ui: &mut crate::Ui) {
if ui.button("Reset").clicked {
*self = Default::default();
}
crate::reset_button(ui, self);
let Self {
item_spacing,
@@ -404,15 +400,12 @@ impl Spacing {
impl Interaction {
pub fn ui(&mut self, ui: &mut crate::Ui) {
if ui.button("Reset").clicked {
*self = Default::default();
}
crate::reset_button(ui, self);
let Self {
resize_grab_radius_side,
resize_grab_radius_corner,
} = self;
ui.add(Slider::f32(resize_grab_radius_side, 0.0..=20.0).text("resize_grab_radius_side"));
ui.add(
Slider::f32(resize_grab_radius_corner, 0.0..=20.0).text("resize_grab_radius_corner"),
@@ -422,9 +415,7 @@ impl Interaction {
impl Widgets {
pub fn ui(&mut self, ui: &mut crate::Ui) {
if ui.button("Reset").clicked {
*self = Default::default();
}
crate::reset_button(ui, self);
let Self {
active,
@@ -471,9 +462,7 @@ impl WidgetVisuals {
impl Visuals {
pub fn ui(&mut self, ui: &mut crate::Ui) {
if ui.button("Reset").clicked {
*self = Default::default();
}
crate::reset_button(ui, self);
let Self {
override_text_color: _,

View File

@@ -739,3 +739,14 @@ impl Widget for Separator {
response
}
}
// ----------------------------------------------------------------------------
/// Show a button to reset a value to its default.
/// The button is only enabled if the value does not already have its original value.
pub fn reset_button<T: Default + PartialEq>(ui: &mut Ui, value: &mut T) {
let def = T::default();
if ui.add(Button::new("Reset").enabled(*value != def)).clicked {
*value = def;
}
}