Add a toggle for the compact menu style (#5777)
<!-- Please read the "Making a PR" section of [`CONTRIBUTING.md`](https://github.com/emilk/egui/blob/master/CONTRIBUTING.md) before opening a Pull Request! * Keep your PR:s small and focused. * The PR title is what ends up in the changelog, so make it descriptive! * If applicable, add a screenshot or gif. * If it is a non-trivial addition, consider adding a demo for it to `egui_demo_lib`, or a new example. * Do NOT open PR:s from your `master` branch, as that makes it hard for maintainers to test and add commits to your PR. * Remember to run `cargo fmt` and `cargo clippy`. * Open the PR as a draft until you have self-reviewed it and run `./scripts/check.sh`. * When you have addressed a PR comment, mark it as resolved. Please be patient! I will review your PR, but my time is limited! --> Menus currently have their own style that removes outlines and backgrounds. This is nice if the menu only contains buttons. However if the menu contains other widgets, e.g. a drag value, the style change makes it quite difficult to identify such widgets. This is a simple way to make this configurable. * [x] I have followed the instructions in the PR template
This commit is contained in:
parent
eb7ca72534
commit
024dc7b135
|
|
@ -76,11 +76,13 @@ impl std::ops::DerefMut for BarState {
|
|||
}
|
||||
|
||||
fn set_menu_style(style: &mut Style) {
|
||||
style.spacing.button_padding = vec2(2.0, 0.0);
|
||||
style.visuals.widgets.active.bg_stroke = Stroke::NONE;
|
||||
style.visuals.widgets.hovered.bg_stroke = Stroke::NONE;
|
||||
style.visuals.widgets.inactive.weak_bg_fill = Color32::TRANSPARENT;
|
||||
style.visuals.widgets.inactive.bg_stroke = Stroke::NONE;
|
||||
if style.compact_menu_style {
|
||||
style.spacing.button_padding = vec2(2.0, 0.0);
|
||||
style.visuals.widgets.active.bg_stroke = Stroke::NONE;
|
||||
style.visuals.widgets.hovered.bg_stroke = Stroke::NONE;
|
||||
style.visuals.widgets.inactive.weak_bg_fill = Color32::TRANSPARENT;
|
||||
style.visuals.widgets.inactive.bg_stroke = Stroke::NONE;
|
||||
}
|
||||
}
|
||||
|
||||
/// The menu bar goes well in a [`crate::TopBottomPanel::top`],
|
||||
|
|
|
|||
|
|
@ -332,6 +332,9 @@ pub struct Style {
|
|||
|
||||
/// The animation that should be used when scrolling a [`crate::ScrollArea`] using e.g. [`Ui::scroll_to_rect`].
|
||||
pub scroll_animation: ScrollAnimation,
|
||||
|
||||
/// Use a more compact style for menus.
|
||||
pub compact_menu_style: bool,
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
@ -1277,6 +1280,7 @@ impl Default for Style {
|
|||
url_in_tooltip: false,
|
||||
always_scroll_the_only_direction: false,
|
||||
scroll_animation: ScrollAnimation::default(),
|
||||
compact_menu_style: true,
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1578,6 +1582,7 @@ impl Style {
|
|||
url_in_tooltip,
|
||||
always_scroll_the_only_direction,
|
||||
scroll_animation,
|
||||
compact_menu_style,
|
||||
} = self;
|
||||
|
||||
crate::Grid::new("_options").show(ui, |ui| {
|
||||
|
|
@ -1683,6 +1688,8 @@ impl Style {
|
|||
#[cfg(debug_assertions)]
|
||||
ui.collapsing("🐛 Debug", |ui| debug.ui(ui));
|
||||
|
||||
ui.checkbox(compact_menu_style, "Compact menu style");
|
||||
|
||||
ui.checkbox(explanation_tooltips, "Explanation tooltips")
|
||||
.on_hover_text(
|
||||
"Show explanatory text when hovering DragValue:s and other egui widgets",
|
||||
|
|
|
|||
Loading…
Reference in New Issue