Example #1
0
        public static void ShowInstance(WindowObject instance, TransitionParameters parameters)
        {
            if (instance.objectState == ObjectState.Showing || instance.objectState == ObjectState.Shown)
            {
                parameters.RaiseCallback();
                return;
            }
            instance.SetState(ObjectState.Showing);

            instance.OnShowBeginInternal();
            instance.OnShowBegin();
            WindowSystem.RaiseEvent(instance, WindowEvent.OnShowBegin);

            {
                if (instance.gameObject.activeSelf == false)
                {
                    instance.gameObject.SetActive(true);
                }
                instance.SetVisible();
                instance.SetResetState();

                var animationComplete = false;
                var childsComplete    = false;
                Coroutines.CallInSequence(() => {
                    childsComplete = true;

                    if (animationComplete == true)
                    {
                        parameters.RaiseCallback();
                    }
                }, instance.subObjects, (obj, cb) => {
                    obj.Show(parameters.ReplaceCallback(cb));
                });

                var closureParameters = new ShowHideClosureParameters()
                {
                    instance   = instance,
                    parameters = parameters,
                };
                WindowObjectAnimation.Show(closureParameters, instance, parameters, (cParams) => {
                    animationComplete = true;
                    if (childsComplete == true)
                    {
                        cParams.parameters.RaiseCallback();
                    }
                });
            }
        }
Example #2
0
        public static void HideInstance(WindowObject instance, TransitionParameters parameters)
        {
            if (instance.objectState <= ObjectState.Initializing)
            {
                Debug.LogWarning("Object is out of state: " + instance, instance);
                return;
            }

            if (instance.objectState == ObjectState.Hiding || instance.objectState == ObjectState.Hidden)
            {
                parameters.RaiseCallback();
                return;
            }
            instance.SetState(ObjectState.Hiding);

            instance.OnHideBeginInternal();
            instance.OnHideBegin();
            WindowSystem.RaiseEvent(instance, WindowEvent.OnHideBegin);

            {
                var animationComplete = false;
                var childsComplete    = false;
                Coroutines.CallInSequence(() => {
                    childsComplete = true;

                    if (animationComplete == true)
                    {
                        parameters.RaiseCallback();
                    }
                }, instance.subObjects, (obj, cb) => {
                    obj.Hide(parameters.ReplaceCallback(cb));
                });

                var closureParameters = new ShowHideClosureParameters()
                {
                    instance   = instance,
                    parameters = parameters,
                };
                WindowObjectAnimation.Hide(closureParameters, instance, parameters, (cParams) => {
                    animationComplete = true;
                    if (childsComplete == true)
                    {
                        cParams.parameters.RaiseCallback();
                    }
                });
            }
        }
 public void SetResetState()
 {
     WindowObjectAnimation.SetResetState(this);
 }
 public virtual void BreakState()
 {
     WindowObjectAnimation.BreakState(this);
 }