Ejemplo n.º 1
0
        public void SwingBack(FloatingWindowScope scope, jQueryObject element, Action callback)
        {
            Window.SetTimeout(() =>
            {
                var js = new JsDictionary <string, object>();

                js["left"] = scope.Left;
                js["top"]  = scope.Top;
                element.CSS("display", "block");

                element.Animate(js, EffectDuration.Fast, EffectEasing.Swing, callback);
            }, 1);
        }
Ejemplo n.º 2
0
        private void LinkFn(FloatingWindowScope scope, jQueryObject element, dynamic attr)
        {
            myElement = element;
            myScope   = scope;
            items.Add(element, scope);

            element.Click((elem, @event) => Focus());

            scope.Parent.SwingAway = (a, b, c) => { SwingAway(a, b, element, c); };
            scope.Parent.SwingBack = (c) => { SwingBack(scope, element, c); };
            scope.Parent.Minimize  = () =>
            {
                scope.Parent.Minimized = true;
                scope.Minimize();
            };
            scope.Parent.DestroyWindow = () =>
            {
                scope.Destroy();
                element.Remove();
            };


            scope.PositionStyles = new FloatingWindowPosition()
            {
                Left = scope.Left, Top = scope.Top, Display = "block"
            };
            scope.PositionStyles.ZIndex = 10000;

            if (scope.Left.IndexOf("%") != -1)
            {
                scope.PositionStyles.MarginLeft = (-(int.Parse(scope.Width.Replace("px", "")) / 2)) + "px";
            }
            if (scope.Top.IndexOf("%") != -1)
            {
                scope.PositionStyles.MarginTop = (-(int.Parse(scope.Height.Replace("px", "")) / 2)) + "px";
            }


            scope.SizeStyle = new Size()
            {
                Width = scope.Width, Height = scope.Height,
            };
            scope.Maximize = () =>
            {
                if (!scope.IsMaximized)
                {
                    scope.LastPositionStyles = scope.PositionStyles;
                    scope.LastSizeStyle      = scope.SizeStyle;
                    scope.PositionStyles     = new FloatingWindowPosition()
                    {
                        Left    = "0",
                        Top     = "0",
                        Display = "block"
                    };
                    scope.SizeStyle = new Size()
                    {
                        Width = "100%", Height = "100%",
                    };
                }
                else
                {
                    scope.PositionStyles     = scope.LastPositionStyles;
                    scope.SizeStyle          = scope.LastSizeStyle;
                    scope.LastPositionStyles = null;
                    scope.LastSizeStyle      = null;
                }

                scope.IsMaximized = !scope.IsMaximized;
            };
            scope.Close = () =>
            {
                if (scope.OnClose != null)
                {
                    scope.OnClose();
                }
                if (scope.Parent.OnClose != null)
                {
                    scope.Parent.OnClose();
                }
                //todo destroy
                scope.PositionStyles.Display = "none";
            };
            scope.Minimize = () =>
            {
//                myUIManagerService.OnMinimize(scope);
                scope.Parent.SwingAway(SwingDirection.Bottom,
                                       false,
                                       () => { scope.PositionStyles.Display = "none"; });
            };
            scope.Restore = () =>
            {
                scope.Parent.SwingBack(null);
                scope.PositionStyles.Display = "block";
            };
            Focus();

            if (scope.Parent.OnReady != null)
            {
                scope.Parent.OnReady();
            }
        }