﻿<?xml version="1.0" encoding="utf-8" ?>
<c2eventsheet>
    <!--All the 'name' attributes are ignored by Construct 2 - they are there for readability only.-->
    <name>E_UI_Button</name>
    <events>
        <include>E_UI_Common</include>
        <event-group description="" sid="8343991756742951" title="UI_BUTTON">
            <sub-events>
                <comment>The variable currentDialog is used to fix the issue of backgrounds buttons being clickable when a dialog is being opened. cf E_UI_COMMON event sheet for more info. We set is here at &quot;none&quot;.</comment>
                <event-block sid="9830185478610713">
                    <conditions>
                        <condition id="-2" name="On start of layout" sid="7764201784496461" type="System" />
                    </conditions>
                    <actions>
                        <action id="-9" name="Set value" sid="9317191027821563" type="System">
                            <param id="0" name="Variable">currentDialog</param>
                            <param id="1" name="Value">&quot;none&quot;</param>
                        </action>
                        <action id="6" name="Set speed" sid="4851915314589375" type="ui_button">
                            <param id="0" name="Speed">0</param>
                        </action>
                        <action behavior="LiteTween" id="14" name="Stop" sid="6500360049933879" type="ui_button">
                            <param id="0" name="Stop Mode">1</param>
                        </action>
                    </actions>
                </event-block>
                <event-group description="This group implement the different states of the ui_button (mouse-over, touch down, etc,...)" sid="5209936409740607" title="Managing The Buttons states">
                    <sub-events>
                        <comment>MouseOver state</comment>
                        <event-block sid="6975632907490843">
                            <conditions>
                                <condition id="7" name="Cursor is over object" sid="4925972239795683" type="Mouse">
                                    <param id="0" name="Object">ui_button</param>
                                </condition>
                                <condition id="-17" name="Pick top/bottom" sid="2308224374310302" type="ui_button">
                                    <param id="0" name="Which">0</param>
                                </condition>
                            </conditions>
                            <actions />
                            <sub-events>
                                <event-block sid="9106111031668071">
                                    <conditions>
                                        <condition id="-7" name="Compare instance variable" sid="1455700304564434" type="ui_button">
                                            <param id="0" name="Instance variable">states</param>
                                            <param id="1" name="Comparison">0</param>
                                            <param id="2" name="Value">3</param>
                                        </condition>
                                        <condition id="2" inverted="1" name="Mouse button is down" sid="3301399112960185" type="Mouse">
                                            <param id="0" name="Mouse button">0</param>
                                        </condition>
                                        <condition id="-8" name="Compare two values" sid="4104457910101067" type="System">
                                            <param id="0" name="First value">Function.Call(&quot;isActive&quot;,ui_button.LayerName)</param>
                                            <param id="1" name="Comparison">0</param>
                                            <param id="2" name="Second value">1</param>
                                        </condition>
                                    </conditions>
                                    <actions>
                                        <action id="5" name="Set frame" sid="1430814654304434" type="ui_button">
                                            <param id="0" name="Frame number">1</param>
                                        </action>
                                    </actions>
                                </event-block>
                            </sub-events>
                        </event-block>
                        <comment>Mouse out state</comment>
                        <comment>We add the condition &quot;is not touching&quot; because, when on mobile, the &quot;cursor is not over&quot; condition is always true and thus cancelling any touch down effect.</comment>
                        <event-block sid="1000791575264351">
                            <conditions>
                                <condition id="7" inverted="1" name="Cursor is over object" sid="9602398633897297" type="Mouse">
                                    <param id="0" name="Object">ui_button</param>
                                </condition>
                                <condition id="4" inverted="1" name="Is touching object" sid="5741176382228687" type="Touch">
                                    <param id="0" name="Object">ui_button</param>
                                </condition>
                                <condition id="-7" name="Compare instance variable" sid="133003186969767" type="ui_button">
                                    <param id="0" name="Instance variable">states</param>
                                    <param id="1" name="Comparison">4</param>
                                    <param id="2" name="Value">1</param>
                                </condition>
                            </conditions>
                            <actions>
                                <action id="5" name="Set frame" sid="6043909760827073" type="ui_button">
                                    <param id="0" name="Frame number">0</param>
                                </action>
                            </actions>
                        </event-block>
                        <comment>Mouse/Touch down state</comment>
                        <event-block sid="8692324189976541">
                            <conditions>
                                <condition id="0" name="On any touch start" sid="8568046192098759" type="Touch" />
                            </conditions>
                            <actions />
                            <sub-events>
                                <event-block sid="5070783385847058">
                                    <conditions>
                                        <condition id="4" name="Is touching object" sid="2909049681575498" type="Touch">
                                            <param id="0" name="Object">ui_button</param>
                                        </condition>
                                        <condition id="-17" name="Pick top/bottom" sid="4591624647696017" type="ui_button">
                                            <param id="0" name="Which">0</param>
                                        </condition>
                                    </conditions>
                                    <actions />
                                    <sub-events>
                                        <event-block sid="4015335544663548">
                                            <conditions>
                                                <condition id="-8" name="Compare two values" sid="5462223114677054" type="System">
                                                    <param id="0" name="First value">Function.Call(&quot;isActive&quot;,ui_button.LayerName)</param>
                                                    <param id="1" name="Comparison">0</param>
                                                    <param id="2" name="Second value">1</param>
                                                </condition>
                                                <condition id="-7" name="Compare instance variable" sid="1915875498431737" type="ui_button">
                                                    <param id="0" name="Instance variable">states</param>
                                                    <param id="1" name="Comparison">4</param>
                                                    <param id="2" name="Value">1</param>
                                                </condition>
                                            </conditions>
                                            <actions>
                                                <action id="5" name="Set frame" sid="6486452065400634" type="ui_button">
                                                    <param id="0" name="Frame number">ui_button.states-1</param>
                                                </action>
                                            </actions>
                                        </event-block>
                                    </sub-events>
                                </event-block>
                            </sub-events>
                        </event-block>
                        <comment>Touch/Mouse release state</comment>
                        <event-block sid="8547880376131304">
                            <conditions>
                                <condition id="1" name="On any touch end" sid="6859065652748237" type="Touch" />
                            </conditions>
                            <actions />
                            <sub-events>
                                <event-block sid="9063073302625506">
                                    <conditions>
                                        <condition id="-7" name="Compare instance variable" sid="2549404973750223" type="ui_button">
                                            <param id="0" name="Instance variable">states</param>
                                            <param id="1" name="Comparison">4</param>
                                            <param id="2" name="Value">1</param>
                                        </condition>
                                    </conditions>
                                    <actions>
                                        <action id="5" name="Set frame" sid="2699461601750871" type="ui_button">
                                            <param id="0" name="Frame number">0</param>
                                        </action>
                                    </actions>
                                </event-block>
                            </sub-events>
                        </event-block>
                    </sub-events>
                </event-group>
                <event-group description="Here we setup the pop animation of the ui_button with the help of the LiteTween plugin." sid="3901277183009253" title="UI_Button Pop Animation">
                    <sub-events>
                        <comment>On the start of the layout, we set the animation setting for all the ui_buttons.</comment>
                        <event-block sid="4175230983833425">
                            <conditions>
                                <condition id="-2" name="On start of layout" sid="8517954685879415" type="System" />
                                <condition id="-8" name="Is boolean instance variable set" sid="1581032060844098" type="ui_button">
                                    <param id="0" name="Instance variable">popAnimation</param>
                                </condition>
                            </conditions>
                            <actions>
                                <action behavior="LiteTween" id="4" name="Set tweened property" sid="986612247814779" type="ui_button">
                                    <param id="0" name="Tweened property">1</param>
                                </action>
                                <action behavior="LiteTween" id="5" name="Set easing" sid="7143512646263846" type="ui_button">
                                    <param id="0" name="Function">2</param>
                                </action>
                                <action behavior="LiteTween" id="1" name="Set duration" sid="4940835950037153" type="ui_button">
                                    <param id="0" name="Duration">0.1</param>
                                </action>
                                <action behavior="LiteTween" id="3" name="Set target" sid="7063427795407727" type="ui_button">
                                    <param id="0" name="Target is">4</param>
                                    <param id="1" name="Relativity">0</param>
                                    <param id="2" name="Value">Self.Width*1.2</param>
                                </action>
                                <action behavior="LiteTween" id="3" name="Set target" sid="6911281692806322" type="ui_button">
                                    <param id="0" name="Target is">5</param>
                                    <param id="1" name="Relativity">0</param>
                                    <param id="2" name="Value">Self.Height*1.2</param>
                                </action>
                                <action behavior="LiteTween" id="14" name="Stop" sid="3939446822090344" type="ui_button">
                                    <param id="0" name="Stop Mode">1</param>
                                </action>
                            </actions>
                        </event-block>
                        <comment>When the ui_button is clicked/touched AND if the pop animation is enabled AND if the ui_button should be active (not underneath a dialog for example), we start the animation.</comment>
                        <event-block sid="1926024833907601">
                            <conditions>
                                <condition id="17" name="On tap object" sid="2211231910533329" type="Touch">
                                    <param id="0" name="Object">ui_button</param>
                                </condition>
                                <condition id="-17" name="Pick top/bottom" sid="1981971964812153" type="ui_button">
                                    <param id="0" name="Which">0</param>
                                </condition>
                                <condition id="-8" name="Compare two values" sid="7586349107041468" type="System">
                                    <param id="0" name="First value">Function.Call(&quot;isActive&quot;,ui_button.LayerName)</param>
                                    <param id="1" name="Comparison">0</param>
                                    <param id="2" name="Second value">1</param>
                                </condition>
                                <condition id="-8" name="Is boolean instance variable set" sid="3241170196937109" type="ui_button">
                                    <param id="0" name="Instance variable">popAnimation</param>
                                </condition>
                            </conditions>
                            <actions>
                                <action behavior="LiteTween" id="10" name="Start" sid="3030969916704083" type="ui_button">
                                    <param id="0" name="Start Mode">0</param>
                                    <param id="1" name="Force use current">1</param>
                                </action>
                            </actions>
                        </event-block>
                        <comment>At the end of the of the animation, we play it again but in reverse.</comment>
                        <event-block sid="7412182125302837">
                            <conditions>
                                <condition behavior="LiteTween" id="4" name="On tween end" sid="8049165276163755" type="ui_button" />
                                <condition id="-8" name="Is boolean instance variable set" sid="7754556784871092" type="ui_button">
                                    <param id="0" name="Instance variable">popAnimation</param>
                                </condition>
                            </conditions>
                            <actions>
                                <action behavior="LiteTween" id="11" name="Reverse" sid="7956855762889356" type="ui_button">
                                    <param id="0" name="Reverse mode">0</param>
                                </action>
                            </actions>
                        </event-block>
                    </sub-events>
                </event-group>
                <event-group description='Here we specifiy the actions to be executed uppon the click/touch of a ui_button:1) run a function that was specified in the &quot;callback&quot; instance variable. 2) Play a sound' sid="7988377482726191" title="UI_Button Callback">
                    <sub-events>
                        <comment>The 3rd condition is used to make sure that the ui_button should be active  (not underneath a dialog for example).</comment>
                        <event-block sid="1298115708666209">
                            <conditions>
                                <condition id="17" name="On tap object" sid="5219133496536095" type="Touch">
                                    <param id="0" name="Object">ui_button</param>
                                </condition>
                                <condition id="-17" name="Pick top/bottom" sid="9690085515178821" type="ui_button">
                                    <param id="0" name="Which">0</param>
                                </condition>
                                <condition id="-8" name="Compare two values" sid="6143102145040642" type="System">
                                    <param id="0" name="First value">Function.Call(&quot;isActive&quot;,ui_button.LayerName)</param>
                                    <param id="1" name="Comparison">0</param>
                                    <param id="2" name="Second value">1</param>
                                </condition>
                            </conditions>
                            <actions>
                                <action id="0" name="Call function" sid="7816534686043383" type="Function">
                                    <param id="0" name="Name">&quot;runCallback&quot;</param>
                                    <param id="1" name="Parameter {n}">ui_button.callback</param>
                                </action>
                                <action id="0" name="Call function" sid="2848824460608151" type="Function">
                                    <param id="0" name="Name">&quot;playSound&quot;</param>
                                    <param id="1" name="Parameter {n}">ui_button.clickSound</param>
                                </action>
                            </actions>
                        </event-block>
                    </sub-events>
                </event-group>
                <event-group description="Here we specifiy the behaviour of some special buttons with special element_names." sid="8147876051099154" title="Special Buttons">
                    <sub-events>
                        <comment>So far there is only one special button; Any button which element_name is &quot;btn_closeDialog&quot; will automaticaly close the dialog it is on;</comment>
                        <event-block sid="8593136310398835">
                            <conditions>
                                <condition id="17" name="On tap object" sid="6797871094692118" type="Touch">
                                    <param id="0" name="Object">ui_button</param>
                                </condition>
                                <condition id="-7" name="Compare instance variable" sid="9726476142224982" type="ui_button">
                                    <param id="0" name="Instance variable">element_name</param>
                                    <param id="1" name="Comparison">0</param>
                                    <param id="2" name="Value">&quot;btn_closeDialog&quot;</param>
                                </condition>
                            </conditions>
                            <actions />
                            <sub-events>
                                <event-block sid="6329147775822448">
                                    <conditions>
                                        <condition id="-16" name="Is on layer" sid="5403531742309332" type="ui_dialog">
                                            <param id="0" name="Layer">ui_button.LayerNumber</param>
                                        </condition>
                                    </conditions>
                                    <actions>
                                        <action id="0" name="Call function" sid="8521534128073654" type="Function">
                                            <param id="0" name="Name">&quot;closeDialog&quot;</param>
                                            <param id="1" name="Parameter {n}">ui_dialog.element_name</param>
                                        </action>
                                    </actions>
                                </event-block>
                            </sub-events>
                        </event-block>
                    </sub-events>
                </event-group>
            </sub-events>
        </event-group>
    </events>
</c2eventsheet>
