summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <rverschelde@gmail.com>2019-05-29 13:16:02 +0200
committerGitHub <noreply@github.com>2019-05-29 13:16:02 +0200
commite832a3269c2e8e45c56d550f0f6955be8c98d7ef (patch)
treee9ec3ed58c90ddf426ded0386a15f485b80902f9
parent7a8dcb9a114d742f9bc1e269d738903c00729b8b (diff)
parent5c01e066e13fea75da8bfd5190a534ae4a5b5aba (diff)
Merge pull request #29261 from volzhs/fix-basebutton
Fix BaseButton not emitting signal with virtual function
-rw-r--r--scene/gui/base_button.cpp20
-rw-r--r--scene/gui/base_button.h2
2 files changed, 16 insertions, 6 deletions
diff --git a/scene/gui/base_button.cpp b/scene/gui/base_button.cpp
index 5669743ec1..5ef2557383 100644
--- a/scene/gui/base_button.cpp
+++ b/scene/gui/base_button.cpp
@@ -76,12 +76,12 @@ void BaseButton::_gui_input(Ref<InputEvent> p_event) {
}
status.pressed = !status.pressed;
_unpress_group();
- toggled(status.pressed);
- pressed();
+ _toggled(status.pressed);
+ _pressed();
}
} else {
if (!p_event->is_pressed()) {
- pressed();
+ _pressed();
}
}
}
@@ -159,22 +159,30 @@ void BaseButton::_notification(int p_what) {
}
}
-void BaseButton::pressed() {
+void BaseButton::_pressed() {
if (get_script_instance()) {
get_script_instance()->call(SceneStringNames::get_singleton()->_pressed);
}
+ pressed();
emit_signal("pressed");
}
-void BaseButton::toggled(bool p_pressed) {
+void BaseButton::_toggled(bool p_pressed) {
if (get_script_instance()) {
get_script_instance()->call(SceneStringNames::get_singleton()->_toggled, p_pressed);
}
+ toggled(p_pressed);
emit_signal("toggled", p_pressed);
}
+void BaseButton::pressed() {
+}
+
+void BaseButton::toggled(bool p_pressed) {
+}
+
void BaseButton::set_disabled(bool p_disabled) {
if (status.disabled == p_disabled)
return;
@@ -209,7 +217,7 @@ void BaseButton::set_pressed(bool p_pressed) {
_unpress_group();
}
if (toggle_mode) {
- toggled(status.pressed);
+ _toggled(status.pressed);
}
update();
diff --git a/scene/gui/base_button.h b/scene/gui/base_button.h
index 4762c27b28..abb3f58d6b 100644
--- a/scene/gui/base_button.h
+++ b/scene/gui/base_button.h
@@ -71,6 +71,8 @@ private:
Ref<ButtonGroup> button_group;
void _unpress_group();
+ void _pressed();
+ void _toggled(bool p_pressed);
protected:
virtual void pressed();