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:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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: _,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user