You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

97 lines
3.1 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Drawing;
namespace GeoSigmaViewer
{
public class DrawToolSelect : DrawTool
{
private MouseMoveResult mmResult;
public DrawToolSelect()
{
ToolCursor=DrawCursors.Select;
ItemType =DrawItemType.ITEM_SELECT;
mmResult = new MouseMoveResult();
}
public override void OnMouseClick(Drawer drawArea, MouseEventArgs e)
{
base.OnMouseClick(drawArea, e);
}
public override void OnLButtonDown(Drawer drawArea, MouseEventArgs e)
{
drawArea.Geo.OnLButtonDown(e.X, e.Y);
//base.OnLButtonDown(drawArea, e);
}
public override void OnMouseMove(Drawer drawArea, MouseEventArgs e)
{
//drawArea.Cursor=ToolCursor;
if (e.Button == MouseButtons.Left)
{
Graphics g = drawArea.CreateGraphics();
drawArea.Geo.ItemMouseMove(g.GetHdc(), e.X, e.Y, ref mmResult);
}
int type = drawArea.Geo.GetTrackerHandleCursorType(e.X, e.Y);
if (cursorType != type && e.Button != MouseButtons.Left)
{
cursorType = type;
SetCursor(drawArea, cursorType);
}
//Console.WriteLine("handleKind:"+ handleKind);
}
public override void OnLButtonUp(Drawer drawArea, MouseEventArgs e)
{
drawArea.Geo.OnLButtonUp(e.X, e.Y);
drawArea.Geo.EnableRedraw(true);
drawArea.ReDraw();
}
private void SetCursor(Drawer drawArea, int type)
{
//0--左下箭头 1--垂直箭头 2--右下箭头 3--水平箭头
//4--旋转箭头 5--水平剪切箭头 6--垂直剪切箭头 7--平移箭头
//-1 出错
switch (type)
{
case 0:
drawArea.Cursor = DrawCursors.LBArrow;
break;
case 1:
drawArea.Cursor = DrawCursors.VArrow;
break;
case 2:
drawArea.Cursor = DrawCursors.RBArrow;
break;
case 3:
drawArea.Cursor = DrawCursors.HArrow;
break;
case 4:
drawArea.Cursor = DrawCursors.RotationArrow;
break;
case 5:
drawArea.Cursor = DrawCursors.HShearArrow;
break;
case 6:
drawArea.Cursor = DrawCursors.VShearArrow;
break;
case 7:
drawArea.Cursor = DrawCursors.CurveMovePoint;
break;
default:
drawArea.Cursor = ToolCursor;
break;
}
//DrawCursors
}
private int cursorType = -1;
}
}