Adds a pressed signal to ButtonGroup

(cherry picked from commit 323f176915)
This commit is contained in:
Gilles Roudière 2021-05-06 12:16:27 +02:00 committed by Rémi Verschelde
parent dc42ef2df9
commit 472f7e9756
No known key found for this signature in database
GPG key ID: C3336907360768E1
2 changed files with 16 additions and 0 deletions

View file

@ -28,6 +28,15 @@
<members>
<member name="resource_local_to_scene" type="bool" setter="set_local_to_scene" getter="is_local_to_scene" override="true" default="true" />
</members>
<signals>
<signal name="pressed">
<argument index="0" name="button" type="Object">
</argument>
<description>
Emitted when one of the buttons of the group is pressed.
</description>
</signal>
</signals>
<constants>
</constants>
</class>

View file

@ -155,6 +155,9 @@ void BaseButton::on_action_event(Ref<InputEvent> p_event) {
}
status.pressed = !status.pressed;
_unpress_group();
if (button_group.is_valid()) {
button_group->emit_signal("pressed", this);
}
_toggled(status.pressed);
_pressed();
}
@ -220,6 +223,9 @@ void BaseButton::set_pressed(bool p_pressed) {
if (p_pressed) {
_unpress_group();
if (button_group.is_valid()) {
button_group->emit_signal("pressed", this);
}
}
_toggled(status.pressed);
@ -480,6 +486,7 @@ BaseButton *ButtonGroup::get_pressed_button() {
void ButtonGroup::_bind_methods() {
ClassDB::bind_method(D_METHOD("get_pressed_button"), &ButtonGroup::get_pressed_button);
ClassDB::bind_method(D_METHOD("get_buttons"), &ButtonGroup::_get_buttons);
ADD_SIGNAL(MethodInfo("pressed", PropertyInfo(Variant::OBJECT, "button")));
}
ButtonGroup::ButtonGroup() {