Merge pull request #5262 from vnen/button-signals
Add button_down and button_up signals
This commit is contained in:
commit
41ee85b6a0
|
@ -5922,14 +5922,24 @@
|
|||
</method>
|
||||
</methods>
|
||||
<signals>
|
||||
<signal name="button_down">
|
||||
<description>
|
||||
Emitted when the button starts being held down.
|
||||
</description>
|
||||
</signal>
|
||||
<signal name="button_up">
|
||||
<description>
|
||||
Emitted when the button stops being held down.
|
||||
</description>
|
||||
</signal>
|
||||
<signal name="pressed">
|
||||
<description>
|
||||
This signal is emitted every time the button is pressed or toggled.
|
||||
This signal is emitted every time the button is toggled or pressed (i.e. activated, so on [code]button_down[/code] if "Click on press" is active and on [code]button_up[/code] otherwise).
|
||||
</description>
|
||||
</signal>
|
||||
<signal name="released">
|
||||
<description>
|
||||
This signal is emitted when the button was released.
|
||||
Emitted when the button was released. This is only emitted by non-toggle buttons and if "Click on press" is active.
|
||||
</description>
|
||||
</signal>
|
||||
<signal name="toggled">
|
||||
|
|
|
@ -55,6 +55,8 @@ void BaseButton::_input_event(InputEvent p_event) {
|
|||
|
||||
if (b.pressed) {
|
||||
|
||||
emit_signal("button_down");
|
||||
|
||||
if (!toggle_mode) { //mouse press attempt
|
||||
|
||||
status.press_attempt=true;
|
||||
|
@ -86,6 +88,8 @@ void BaseButton::_input_event(InputEvent p_event) {
|
|||
|
||||
} else {
|
||||
|
||||
emit_signal("button_up");
|
||||
|
||||
if (status.press_attempt && status.pressing_inside) {
|
||||
// released();
|
||||
emit_signal("released");
|
||||
|
@ -100,9 +104,11 @@ void BaseButton::_input_event(InputEvent p_event) {
|
|||
|
||||
status.press_attempt=true;
|
||||
status.pressing_inside=true;
|
||||
emit_signal("button_down");
|
||||
|
||||
} else {
|
||||
|
||||
emit_signal("button_up");
|
||||
|
||||
if (status.press_attempt &&status.pressing_inside) {
|
||||
|
||||
|
@ -173,6 +179,7 @@ void BaseButton::_input_event(InputEvent p_event) {
|
|||
status.pressing_button++;
|
||||
status.press_attempt=true;
|
||||
status.pressing_inside=true;
|
||||
emit_signal("button_down");
|
||||
|
||||
} else if (status.press_attempt) {
|
||||
|
||||
|
@ -185,6 +192,8 @@ void BaseButton::_input_event(InputEvent p_event) {
|
|||
status.press_attempt=false;
|
||||
status.pressing_inside=false;
|
||||
|
||||
emit_signal("button_up");
|
||||
|
||||
if (!toggle_mode) { //mouse press attempt
|
||||
|
||||
pressed();
|
||||
|
@ -467,6 +476,8 @@ void BaseButton::_bind_methods() {
|
|||
|
||||
ADD_SIGNAL( MethodInfo("pressed" ) );
|
||||
ADD_SIGNAL( MethodInfo("released" ) );
|
||||
ADD_SIGNAL( MethodInfo("button_up") );
|
||||
ADD_SIGNAL( MethodInfo("button_down") );
|
||||
ADD_SIGNAL( MethodInfo("toggled", PropertyInfo( Variant::BOOL,"pressed") ) );
|
||||
ADD_PROPERTYNZ( PropertyInfo( Variant::BOOL, "disabled"), _SCS("set_disabled"), _SCS("is_disabled"));
|
||||
ADD_PROPERTY( PropertyInfo( Variant::BOOL, "toggle_mode"), _SCS("set_toggle_mode"), _SCS("is_toggle_mode"));
|
||||
|
|
Loading…
Reference in New Issue