Пример #1
0
        void radioListGropus_GroupViewClosing(object sender, GroupViewClosingEventArgs e)
        {
            e.Cancel = true;

            SwivelTransition       transition             = new SwivelTransition();
            ItemContainerGenerator itemContainerGenerator = e.ItemsControl.ItemContainerGenerator;

            int animationFinished = 0;
            int itemCount         = e.ItemsControl.Items.Count;

            for (int i = 0; i < itemCount; i++)
            {
                UIElement element = itemContainerGenerator.ContainerFromIndex(i) as UIElement;

                ITransition animation = transition.GetTransition(element);
                animation.Completed += delegate
                {
                    // close the group view when all animations have completed
                    if ((++animationFinished) == itemCount)
                    {
                        radioListGropus.CloseGroupView();
                        radioListGropus.ScrollToGroup(e.SelectedGroup);
                    }
                };
                animation.Begin();
            }
        }
        /// <summary>
        /// Called when the visual layout changes.
        /// </summary>
        /// <param name="sender">The event sender.</param>
        /// <param name="e">The event information.</param>
        private void CustomMessageBox_LayoutUpdated(object sender, EventArgs e)
        {
            SwivelTransition backwardIn = new SwivelTransition {
                Mode = SwivelTransitionMode.BackwardIn
            };
            ITransition swivelTransition = backwardIn.GetTransition(this);

            swivelTransition.Completed += (s1, e1) => swivelTransition.Stop();
            swivelTransition.Begin();
            LayoutUpdated -= CustomMessageBox_LayoutUpdated;
        }
        /// <summary>
        /// Dismisses the message box.
        /// </summary>
        /// <param name="source">
        /// The source that caused the dismission.
        /// </param>
        /// <param name="useTransition">
        /// If true, the message box is dismissed after swiveling
        /// backward and out.
        /// </param>
        private void Dismiss(CustomMessageBoxResult source, bool useTransition)
        {
            // Ensure only a single Dismiss is being handled at a time
            if (_isBeingDismissed)
            {
                return;
            }
            _isBeingDismissed = true;

            // Handle the dismissing event.
            var handlerDismissing = Dismissing;

            if (handlerDismissing != null)
            {
                DismissingEventArgs args = new DismissingEventArgs(source);
                handlerDismissing(this, args);

                if (args.Cancel)
                {
                    _isBeingDismissed = false;
                    return;
                }
            }

            // Set the current instance to null.
            _currentInstance = null;

            // Cache this variable to avoid a race condition.
            bool restoreOriginalValues = _mustRestore;

            // Close popup.
            if (useTransition)
            {
                SwivelTransition backwardOut = new SwivelTransition {
                    Mode = SwivelTransitionMode.BackwardOut
                };
                ITransition swivelTransition = backwardOut.GetTransition(this);
                swivelTransition.Completed += (s, e) =>
                {
                    swivelTransition.Stop();
                    ClosePopup(restoreOriginalValues, source);
                };
                swivelTransition.Begin();
            }
            else
            {
                ClosePopup(restoreOriginalValues, source);
            }

            _isBeingDismissed = false;
        }
Пример #4
0
        /// <summary>
        /// Dismisses the message box.
        /// </summary>
        /// <param name="source">
        /// The source that caused the dismission.
        /// </param>
        /// <param name="useTransition">
        /// If true, the message box is dismissed after swiveling
        /// backward and out.
        /// </param>
        private void Dismiss(CustomMessageBoxResult source, bool useTransition)
        {
            // Handle the dismissing event.
            var handlerDismissing = Dismissing;

            if (handlerDismissing != null)
            {
                DismissingEventArgs args = new DismissingEventArgs(source);
                handlerDismissing(this, args);

                if (args.Cancel)
                {
                    return;
                }
            }

            // Handle the dismissed event.
            var handlerDismissed = Dismissed;

            if (handlerDismissed != null)
            {
                DismissedEventArgs args = new DismissedEventArgs(source);
                handlerDismissed(this, args);
            }

            // Set the current instance to null.
            _currentInstance = null;

            // Cache this variable to avoid a race condition.
            bool restoreOriginalValues = _mustRestore;

            // Close popup.
            if (useTransition)
            {
                SwivelTransition backwardOut = new SwivelTransition {
                    Mode = SwivelTransitionMode.BackwardOut
                };
                ITransition swivelTransition = backwardOut.GetTransition(this);
                swivelTransition.Completed += (s, e) =>
                {
                    swivelTransition.Stop();
                    ClosePopup(restoreOriginalValues);
                };
                Deployment.Current.Dispatcher.BeginInvoke(swivelTransition.Begin);
            }
            else
            {
                ClosePopup(restoreOriginalValues);
            }
        }
Пример #5
0
            /**
             * Applies transition to the current content and calls the given delegate in a specific moment
             * (before/after animation) in order to distingues between transition applied on the current
             * "page/screen" or the next.
             *
             * @param aDelegate a delegate invoked in different moments, depending on the transition type.
             * The delegate must be responsible for switching screens/context/adding children widgets.
             * @param transitionType a transition type.
             */
            public static void doScreenTransition(Delegate_SwitchContentDelegate aDelegate, int transitionType)
            {
                if (null != aDelegate)
                {
                    TransitionElement transition = null;
                    bool doTransitionOnCurrentScreen = false;
                    switch (transitionType)
                    {
                        case MoSync.Constants.MAW_TRANSITION_TYPE_SLIDE_RIGHT:
                             transition = new SlideTransition();
                            (transition as SlideTransition).Mode = SlideTransitionMode.SlideRightFadeIn;
                            break;
                        case MoSync.Constants.MAW_TRANSITION_TYPE_SLIDE_LEFT:
                            transition = new SlideTransition();
                            (transition as SlideTransition).Mode = SlideTransitionMode.SlideLeftFadeIn;
                            break;
                        case MoSync.Constants.MAW_TRANSITION_TYPE_SWIVEL_IN:
                            transition = new SwivelTransition();
                            (transition as SwivelTransition).Mode = SwivelTransitionMode.FullScreenIn;
                            break;
                        case MoSync.Constants.MAW_TRANSITION_TYPE_SWIVEL_OUT:
                            transition = new SwivelTransition();
                            (transition as SwivelTransition).Mode = SwivelTransitionMode.FullScreenOut;
                            doTransitionOnCurrentScreen = true;
                            break;
                        case MoSync.Constants.MAW_TRANSITION_TYPE_TURNSTILE_FOREWARD:
                            transition = new TurnstileTransition();
                            (transition as TurnstileTransition).Mode = TurnstileTransitionMode.ForwardOut;
                            doTransitionOnCurrentScreen = true;
                            break;
                        case MoSync.Constants.MAW_TRANSITION_TYPE_TURNSTILE_BACKWARD:
                            transition = new TurnstileTransition();
                            (transition as TurnstileTransition).Mode = TurnstileTransitionMode.BackwardIn;
                            break;
                        case MoSync.Constants.MAW_TRANSITION_TYPE_NONE:
                        default:
                            aDelegate();
                            return;
                    }
                    PhoneApplicationPage page = (PhoneApplicationPage)((PhoneApplicationFrame)Application.Current.RootVisual).Content;

                    ITransition transInterf = transition.GetTransition(page);
                    transInterf.Completed += delegate
                    {
                        transInterf.Stop();
                        if (doTransitionOnCurrentScreen)
                        {
                            aDelegate();
                        }
                    };
                    transInterf.Begin();
                    if (!doTransitionOnCurrentScreen)
                    {
                        aDelegate();
                    }
                }
            }
Пример #6
0
            /**
             * Applies transition to the current content and calls the given delegate in a specific moment
             * (before/after animation) in order to distingues between transition applied on the current
             * "page/screen" or the next.
             *
             * @param aDelegate a delegate invoked in different moments, depending on the transition type.
             * The delegate must be responsible for switching screens/context/adding children widgets.
             * @param transitionType a transition type.
             */
            static public void doScreenTransition(Delegate_SwitchContentDelegate aDelegate, int transitionType)
            {
                if (null != aDelegate)
                {
                    TransitionElement transition     = null;
                    bool doTransitionOnCurrentScreen = false;
                    switch (transitionType)
                    {
                    case MoSync.Constants.MAW_TRANSITION_TYPE_SLIDE_RIGHT:
                        transition = new SlideTransition();
                        (transition as SlideTransition).Mode = SlideTransitionMode.SlideRightFadeIn;
                        break;

                    case MoSync.Constants.MAW_TRANSITION_TYPE_SLIDE_LEFT:
                        transition = new SlideTransition();
                        (transition as SlideTransition).Mode = SlideTransitionMode.SlideLeftFadeIn;
                        break;

                    case MoSync.Constants.MAW_TRANSITION_TYPE_SWIVEL_IN:
                        transition = new SwivelTransition();
                        (transition as SwivelTransition).Mode = SwivelTransitionMode.FullScreenIn;
                        break;

                    case MoSync.Constants.MAW_TRANSITION_TYPE_SWIVEL_OUT:
                        transition = new SwivelTransition();
                        (transition as SwivelTransition).Mode = SwivelTransitionMode.FullScreenOut;
                        doTransitionOnCurrentScreen           = true;
                        break;

                    case MoSync.Constants.MAW_TRANSITION_TYPE_TURNSTILE_FOREWARD:
                        transition = new TurnstileTransition();
                        (transition as TurnstileTransition).Mode = TurnstileTransitionMode.ForwardOut;
                        doTransitionOnCurrentScreen = true;
                        break;

                    case MoSync.Constants.MAW_TRANSITION_TYPE_TURNSTILE_BACKWARD:
                        transition = new TurnstileTransition();
                        (transition as TurnstileTransition).Mode = TurnstileTransitionMode.BackwardIn;
                        break;

                    case MoSync.Constants.MAW_TRANSITION_TYPE_NONE:
                    default:
                        aDelegate();
                        return;
                    }
                    PhoneApplicationPage page = (PhoneApplicationPage)((PhoneApplicationFrame)Application.Current.RootVisual).Content;

                    ITransition transInterf = transition.GetTransition(page);
                    transInterf.Completed += delegate
                    {
                        transInterf.Stop();
                        if (doTransitionOnCurrentScreen)
                        {
                            aDelegate();
                        }
                    };
                    transInterf.Begin();
                    if (!doTransitionOnCurrentScreen)
                    {
                        aDelegate();
                    }
                }
            }
Пример #7
0
        private static TransitionElement ResolveForwardWaveTransition(NodeTransition transitionType)
        {
            TransitionElement res = null;

            switch (transitionType)
            {
            case NodeTransition.SlideFromRight:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideLeftFadeIn;

                res = slt;
                break;
            }

            case NodeTransition.SlideFromLeft:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideRightFadeIn;

                res = slt;
                break;
            }

            case NodeTransition.SlideOverFromRight:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideLeftFadeIn;

                res = slt;
                break;
            }

            case NodeTransition.SlideOffToRight:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideRightFadeOut;

                res = slt;
                break;
            }

            case NodeTransition.SpringOn:
            {
                SwivelTransition swt = new SwivelTransition();
                swt.Mode = SwivelTransitionMode.ForwardIn;

                res = swt;
                break;
            }

            case NodeTransition.SpringOff:
            {
                SwivelTransition swt = new SwivelTransition();
                swt.Mode = SwivelTransitionMode.BackwardOut;

                res = swt;
                break;
            }

            case NodeTransition.SlideFromTop:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideDownFadeIn;

                res = slt;
                break;
            }

            case NodeTransition.SlideFromBottom:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideUpFadeIn;

                res = slt;
                break;
            }

            case NodeTransition.SlideOverFromLeft:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideRightFadeIn;

                res = slt;
                break;
            }

            case NodeTransition.SlideOverFromTop:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideDownFadeIn;

                res = slt;
                break;
            }

            case NodeTransition.SlideOverFromBottom:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideUpFadeIn;

                res = slt;
                break;
            }

            case NodeTransition.SlideOffToLeft:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideLeftFadeOut;

                res = slt;
                break;
            }

            case NodeTransition.SlideOffToTop:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideUpFadeOut;

                res = slt;
                break;
            }

            case NodeTransition.SlideOffToBottom:
            {
                SlideTransition slt = new SlideTransition();
                slt.Mode = SlideTransitionMode.SlideDownFadeOut;

                res = slt;
                break;
            }
            }

            return(res);
        }