コード例 #1
0
ファイル: SheetEllipseMode.cs プロジェクト: nagyistge/Sheet
        public void Move(ImmutablePoint p)
        {
            double sx = SelectionStartPoint.X;
            double sy = SelectionStartPoint.Y;
            double x  = _itemController.Snap(p.X, _state.Options.SnapSize);
            double y  = _itemController.Snap(p.Y, _state.Options.SnapSize);

            _blockHelper.SetLeft(TempEllipse, Math.Min(sx, x));
            _blockHelper.SetTop(TempEllipse, Math.Min(sy, y));
            _blockHelper.SetWidth(TempEllipse, Math.Abs(sx - x));
            _blockHelper.SetHeight(TempEllipse, Math.Abs(sy - y));
        }
コード例 #2
0
ファイル: BlockController.cs プロジェクト: nagyistge/Sheet
        public void MoveDelta(double dx, double dy, XPoint point)
        {
            if (point.Native != null)
            {
                point.X = _blockHelper.GetLeft(point) + dx;
                point.Y = _blockHelper.GetTop(point) + dy;

                _blockHelper.SetLeft(point, point.X);
                _blockHelper.SetTop(point, point.Y);
            }
            else
            {
                point.X += dx;
                point.Y += dy;
            }

            foreach (var dependency in point.Connected)
            {
                dependency.Update(dependency.Element, point);
            }
        }
コード例 #3
0
        public void Move(ImmutablePoint p)
        {
            double x  = _itemController.Snap(p.X, _state.Options.SnapSize);
            double y  = _itemController.Snap(p.Y, _state.Options.SnapSize);
            double x2 = _blockHelper.GetX2(TempLine);
            double y2 = _blockHelper.GetY2(TempLine);

            if (Math.Round(x, 1) != Math.Round(x2, 1) ||
                Math.Round(y, 1) != Math.Round(y2, 1))
            {
                _blockHelper.SetX2(TempLine, x);
                _blockHelper.SetY2(TempLine, y);
                _blockHelper.SetLeft(TempEndEllipse, x - 4.0);
                _blockHelper.SetTop(TempEndEllipse, y - 4.0);
            }
        }