Exemple #1
0
 public override void Started()
 {
     this.ConstructionComplete = true;
     Transaction          = Transaction.Create(Drawing.ActionManager, false);
     ExpectedDependencies = InitExpectedDependencies();
     FoundDependencies.Clear();
 }
        protected override void Click(Point coordinates)
        {
            var figure = Drawing.Figures.HitTest(coordinates);

            if (figure is IShapeWithInterior)
            {
                FoundDependencies.Clear();
                FoundDependencies.Add(figure);
                RemoveIntermediateFigureIfNecessary();
                RemoveTempPointIfNecessary();
                AddFiguresAndRestart();
                return;
            }

            //var point = Drawing.Figures.HitTest<IPoint>(coordinates);
            if (figure is PointBase && FoundDependencies.Count >= 4 // 4 including the TempPoint
                // (and 3 after TempPoint is removed)
                && FoundDependencies.Contains(figure))
            {
                RemoveIntermediateFigureIfNecessary();
                RemoveTempPointIfNecessary();
                AddFiguresAndRestart();
                return;
            }

            base.Click(coordinates);
        }
        public override void MouseDown(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            var underMouse = Drawing.Figures.HitTest(Coordinates(e), f => f is ILengthProvider && !f.DependsOn(TempPoint));

            if (underMouse != null &&
                Drawing.Figures.HitTest <IPoint>(Coordinates(e)) == null)
            {
                FoundDependencies.Clear();
                FoundDependencies.Add(underMouse);
                RemoveIntermediateFigureIfNecessary();
                RemoveTempPointIfNecessary();
                AddFiguresAndRestart();
                return;
            }
            base.MouseDown(sender, e);
        }