Example #1
0
 internal AnimationInstance(IGuiElement element, TimeSpan duration, ApplyAnimation func)
 {
     this.Element       = element;
     this.Initial       = duration;
     this.TimeRemaining = duration;
     this.Func          = func;
 }
Example #2
0
        public Task BeginColorChange(IGuiElement element, Color targetColor, TimeSpan duration)
        {
            var            initialColor = element.Shade;
            ApplyAnimation colorFunc    = (e, t) => e.Shade = InterpolateColors(initialColor, targetColor, (float)t);

            this.animations.Add(new AnimationInstance(element, duration, colorFunc));
            return(Task.Delay(duration));
        }
Example #3
0
        public Task BeginMove(IGuiElement element, Vector2 targetPos, TimeSpan duration)
        {
            var            initialPos = element.Position;
            ApplyAnimation scaleFunc  = (e, t) => e.Position = initialPos + (targetPos - initialPos) * (float)t;

            this.animations.Add(new AnimationInstance(element, duration, scaleFunc));
            return(Task.Delay(duration));
        }
Example #4
0
        public Task BeginScale(IGuiElement element, float targetScale, TimeSpan duration)
        {
            var            initialScale = element.Scale;
            ApplyAnimation scaleFunc    = (e, t) => e.Scale = (float)(initialScale + (targetScale - initialScale) * t);

            this.animations.Add(new AnimationInstance(element, duration, scaleFunc));
            return(Task.Delay(duration));
        }
Example #5
0
        public Task BeginSineColorChange(IGuiElement element, Color startColor, Color targetColor, TimeSpan duration, float freq = 1)
        {
            ApplyAnimation colorFunc = (e, t) =>
            {
                var alpha = 1.0 / 2.0 * (Math.Sin(t * 2 * Math.PI * freq) + 1);
                e.Shade = InterpolateColors(startColor, targetColor, (float)alpha);
            };

            this.animations.Add(new AnimationInstance(element, duration, colorFunc));
            return(Task.Delay(duration));
        }
Example #6
0
        static void timer_Tick(object sender, EventArgs e)
        {
            Timer          timer   = (Timer)sender;
            ApplyAnimation animate = (ApplyAnimation)timer.Tag;

            switch (animate.Style)
            {
            case lxMessageBox.AnimateStyle.SlideDown:
                if (_msgBox.Height < animate.FormSize.Height)
                {
                    _msgBox.Height += 17;
                    _msgBox.Invalidate();
                }
                else
                {
                    _timer.Stop();
                    _timer.Dispose();
                }
                break;

            case lxMessageBox.AnimateStyle.FadeIn:
                if (_msgBox.Opacity < 1)
                {
                    _msgBox.Opacity += 0.1;
                    _msgBox.Invalidate();
                }
                else
                {
                    _timer.Stop();
                    _timer.Dispose();
                }
                break;

            case lxMessageBox.AnimateStyle.ZoomIn:
                if (_msgBox.Width > animate.FormSize.Width)
                {
                    _msgBox.Width -= 17;
                    _msgBox.Invalidate();
                }
                if (_msgBox.Height > animate.FormSize.Height)
                {
                    _msgBox.Height -= 17;
                    _msgBox.Invalidate();
                }
                break;
            }
        }