summaryrefslogtreecommitdiffstats
path: root/scene/gui/button.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'scene/gui/button.cpp')
-rw-r--r--scene/gui/button.cpp29
1 files changed, 15 insertions, 14 deletions
diff --git a/scene/gui/button.cpp b/scene/gui/button.cpp
index f57b3d0fd1..6fcc878e11 100644
--- a/scene/gui/button.cpp
+++ b/scene/gui/button.cpp
@@ -69,48 +69,49 @@ void Button::_notification(int p_what) {
RID ci = get_canvas_item();
Size2 size = get_size();
Color color;
- Color icon_color = Color(1, 1, 1);
//print_line(get_text()+": "+itos(is_flat())+" hover "+itos(get_draw_mode()));
- String style_name = "";
+ Ref<StyleBox> style = get_stylebox("normal");
+
switch (get_draw_mode()) {
case DRAW_NORMAL: {
- style_name = "normal";
+ style = get_stylebox("normal");
+ if (!flat)
+ style->draw(ci, Rect2(Point2(0, 0), size));
color = get_color("font_color");
-
} break;
case DRAW_PRESSED: {
- style_name = "pressed";
- if (has_color("font_color_pressed")) {
+ style = get_stylebox("pressed");
+ style->draw(ci, Rect2(Point2(0, 0), size));
+ if (has_color("font_color_pressed"))
color = get_color("font_color_pressed");
- icon_color = color;
- } else
+ else
color = get_color("font_color");
} break;
case DRAW_HOVER: {
- style_name = "hover";
+ style = get_stylebox("hover");
+ style->draw(ci, Rect2(Point2(0, 0), size));
color = get_color("font_color_hover");
} break;
case DRAW_DISABLED: {
- style_name = "disabled";
+ style = get_stylebox("disabled");
+ style->draw(ci, Rect2(Point2(0, 0), size));
color = get_color("font_color_disabled");
} break;
}
- if (style_name != "" && !flat) get_stylebox(style_name)->draw(ci, Rect2(Point2(0, 0), size));
-
- Ref<StyleBox> style = get_stylebox(style_name);
if (has_focus()) {
+ Ref<StyleBox> style = get_stylebox("focus");
style->draw(ci, Rect2(Point2(), size));
}
@@ -148,7 +149,7 @@ void Button::_notification(int p_what) {
int valign = size.height - style->get_minimum_size().y;
- _icon->draw(ci, style->get_offset() + Point2(0, Math::floor((valign - _icon->get_height()) / 2.0)), is_disabled() ? Color(1, 1, 1, 0.4) : icon_color);
+ _icon->draw(ci, style->get_offset() + Point2(0, Math::floor((valign - _icon->get_height()) / 2.0)), is_disabled() ? Color(1, 1, 1, 0.4) : Color(1, 1, 1));
}
}
}