Esempio n. 1
0
        public void OnBoundsChanged(WidgetBoundsChangedArgs args)
        {
            if (!args.Final)
            {
                return;
            }

            var screens = new ScreenList();

            if (_props.DestinationMonitor > screens.Count)
            {
                return;
            }
            args.Bounds = screens[_props.DestinationMonitor - 1].Bounds;
        }
Esempio n. 2
0
        public void OnBoundsChanged(WidgetBoundsChangedArgs args)
        {
            if (!args.Final)
            {
                return;
            }

            // Snap the bounds to the size of a full monitor.
            var center = new Point(args.Bounds.Left + args.Bounds.Right / 2, args.Bounds.Top + args.Bounds.Bottom / 2);
            var screen = (from s in args.Screens orderby PointDist(center, RectCenter(s.Bounds)) select s).FirstOrDefault();

            if (!screen.Bounds.IsEmpty)
            {
                args.Bounds = screen.Bounds;
            }
        }
Esempio n. 3
0
        public void OnBoundsChanged(WidgetBoundsChangedArgs args)
        {
            // The size must remain a perfect square.

            if (args.Bounds.Width != args.Bounds.Height)
            {
                if (args.Bounds.Width != args.OldBounds.Width)
                {
                    args.Bounds = new Rectangle(args.Bounds.Location, new Size(args.Bounds.Width, args.Bounds.Width));
                }
                else
                {
                    args.Bounds = new Rectangle(args.Bounds.Location, new Size(args.Bounds.Height, args.Bounds.Height));
                }
            }
        }
Esempio n. 4
0
        public bool ChangeBoundsSafe(Rectangle newBounds, bool dragFinished)
        {
            var screens = new ScreenList();

            if (newBounds.Width <= 0 || newBounds.Height <= 0)
            {
                return(false);
            }

            var envelope = screens.Select(s => s.Bounds).ToArray().GetEnvelope();

            if (!envelope.Contains(newBounds.TopLeft()) && !envelope.Contains(newBounds.TopRight()) &&
                !envelope.Contains(newBounds.BottomLeft()) && !envelope.Contains(newBounds.BottomRight()))
            {
                return(false);
            }

            var args = new WidgetBoundsChangedArgs(_config, newBounds, _bounds, new ScreenList(), dragFinished);

            _widget.OnBoundsChanged(args);

            _bounds = args.Bounds;
            return(true);
        }
Esempio n. 5
0
 public void OnBoundsChanged(WidgetBoundsChangedArgs args)
 {
 }