///------------------------------------------------------------------------------------------------- /// \fn public override void ShowAsSelected() /// /// \brief Shows as selected ///------------------------------------------------------------------------------------------------- public override void ShowAsSelected() { base.ShowAsSelected(); if (adjustButton == null) { adjustButton = new AdjustButton(MainWin.GetInstance().MainView(), this, Common.RotatingPoint(new Point(rect.Right, rect.Top), midPoint, angle), Cursors.SizeNS); adjustButton.MouseDown += AdjustButton_MouseDown; adjustButton.MouseUp += AdjustButton_MouseUp; adjustButton.MouseMove += AdjustButton_MouseMove; } if (moveButton == null) { moveButton = new MoveButton(MainWin.GetInstance().MainView(), this, Common.RotatingPoint(new Point(rect.Left + rect.Width / 2, rect.Top + rect.Height / 2), midPoint, angle), Cursors.SizeAll); moveButton.MouseDown += MoveButton_MouseDown; moveButton.MouseMove += MoveButton_MouseMove; moveButton.MouseUp += MoveButton_MouseUp; moveButton.SetBindingPoints( new Ref <Point>(() => rect.Location, z => { rect.Location = Common.RotatingPoint(z, midPoint, -angle); }), new Ref <Point>(() => adjustButton.Location, z => { adjustButton.Location = z; }) ); } Log.LogText(string.Format("Select Ellipse ({0},{1}),({2},{3})", rect.Left, rect.Top, rect.Right, rect.Bottom)); }
///------------------------------------------------------------------------------------------------- /// \fn public override void ShowAsSelected() /// /// \brief Shows as selected ///------------------------------------------------------------------------------------------------- public override void ShowAsSelected() { base.ShowAsSelected(); if (adjustButtonA == null) { adjustButtonA = new AdjustButton(MainWin.GetInstance().MainView(), this, new Point(a.X - 3, a.Y - 3), Cursors.SizeNS); adjustButtonA.MouseDown += ResizeButtonA_MouseDown; adjustButtonA.MouseUp += ResizeButtonA_MouseUp; adjustButtonA.MouseMove += ResizeButtonA_MouseMove; } if (adjustButtonB == null) { adjustButtonB = new AdjustButton(MainWin.GetInstance().MainView(), this, new Point(b.X - 3, b.Y - 3), Cursors.SizeNS); adjustButtonB.MouseDown += ResizeButtonA_MouseDown; adjustButtonB.MouseUp += ResizeButtonA_MouseUp; adjustButtonB.MouseMove += ResizeButtonA_MouseMove; } if (moveButton == null) { moveButton = new MoveButton(MainWin.GetInstance().MainView(), this, new Point(a.X / 2 + b.X / 2, a.Y / 2 + b.Y / 2), Cursors.SizeAll); moveButton.MouseDown += MoveButton_MouseDown; moveButton.MouseMove += MoveButton_MouseMove; moveButton.MouseUp += MoveButton_MouseUp; } adjustButtonA.SetBindingPoints( new Ref <Point>(() => a, z => { a = z; }) ); adjustButtonB.SetBindingPoints( new Ref <Point>(() => b, z => { b = z; }) ); moveButton.SetBindingPoints( new Ref <Point>(() => a, z => { a = z; }), new Ref <Point>(() => b, z => { b = z; }), // only lines'point moving is not enough. We need move its buttons. new Ref <Point>(() => adjustButtonA.Location, z => { adjustButtonA.Location = z; }), new Ref <Point>(() => adjustButtonB.Location, z => { adjustButtonB.Location = z; }) ); Log.LogText("Select Line"); }