diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-09-25 17:18:29 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-09-25 17:18:29 +0200 |
commit | 8ddf73c74dfa6ca51462a4721d77ba84e813b51a (patch) | |
tree | 22887982e518ef8753d27933e3b29a8462e52afb /scene/theme/default_theme.cpp | |
parent | 3e15c8f28597df4354b40ba85056e87cfac56845 (diff) | |
parent | 4bd569be95f0e8ba34813b0d8fc53bab1125ccaa (diff) | |
download | redot-engine-8ddf73c74dfa6ca51462a4721d77ba84e813b51a.tar.gz |
Merge pull request #81939 from YuriSizov/gui-flat-and-depressed
Replace flat buttons with flat-styled buttons with a visible pressed state
Diffstat (limited to 'scene/theme/default_theme.cpp')
-rw-r--r-- | scene/theme/default_theme.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/scene/theme/default_theme.cpp b/scene/theme/default_theme.cpp index ef4afbb5fa..b65c372fab 100644 --- a/scene/theme/default_theme.cpp +++ b/scene/theme/default_theme.cpp @@ -360,6 +360,28 @@ void fill_default_theme(Ref<Theme> &theme, const Ref<Font> &default_font, const theme->set_constant("check_v_offset", "CheckButton", 0); theme->set_constant("outline_size", "CheckButton", 0); + // Button variations + + theme->set_type_variation("FlatButton", "Button"); + theme->set_type_variation("FlatMenuButton", "MenuButton"); + + Ref<StyleBoxEmpty> flat_button_normal = make_empty_stylebox(); + for (int i = 0; i < 4; i++) { + flat_button_normal->set_content_margin((Side)i, button_normal->get_margin((Side)i) + button_normal->get_border_width((Side)i)); + } + Ref<StyleBoxFlat> flat_button_pressed = button_pressed->duplicate(); + flat_button_pressed->set_bg_color(style_pressed_color * Color(1, 1, 1, 0.85)); + + theme->set_stylebox("normal", "FlatButton", flat_button_normal); + theme->set_stylebox("hover", "FlatButton", flat_button_normal); + theme->set_stylebox("pressed", "FlatButton", flat_button_pressed); + theme->set_stylebox("disabled", "FlatButton", flat_button_normal); + + theme->set_stylebox("normal", "FlatMenuButton", flat_button_normal); + theme->set_stylebox("hover", "FlatMenuButton", flat_button_normal); + theme->set_stylebox("pressed", "FlatMenuButton", flat_button_pressed); + theme->set_stylebox("disabled", "FlatMenuButton", flat_button_normal); + // Label theme->set_stylebox("normal", "Label", memnew(StyleBoxEmpty)); |