private MouseActionRet GetMouseAction(MouseEventArgs e, MouseEvent mouseEvent) { MouseAction action = MouseAction.maNone; TreeChartPerson person = null; ExtPoint offsets = fModel.GetOffsets(); int aX = e.X - offsets.X; int aY = e.Y - offsets.Y; int num = fModel.Persons.Count; for (int i = 0; i < num; i++) { TreeChartPerson p = fModel.Persons[i]; ExtRect persRt = p.Rect; if (persRt.Contains(aX, aY)) { person = p; if (e.Button == MouseButtons.Left && mouseEvent == MouseEvent.meDown) { action = MouseAction.maSelect; break; } else if (e.Button == MouseButtons.Right && mouseEvent == MouseEvent.meUp) { action = MouseAction.maProperties; break; } else if (mouseEvent == MouseEvent.meMove) { action = MouseAction.maHighlight; break; } } ExtRect expRt = TreeChartModel.GetExpanderRect(persRt); if ((e.Button == MouseButtons.Left && mouseEvent == MouseEvent.meUp) && expRt.Contains(aX, aY)) { person = p; action = MouseAction.maExpand; break; } expRt = TreeChartModel.GetPersonExpandRect(persRt); if ((e.Button == MouseButtons.Left && mouseEvent == MouseEvent.meUp) && expRt.Contains(aX, aY)) { person = p; action = MouseAction.maPersonExpand; break; } ExtRect infoRt = TreeChartModel.GetInfoRect(persRt); if ((e.Button == MouseButtons.Left && mouseEvent == MouseEvent.meUp) && infoRt.Contains(aX, aY)) { person = p; action = MouseAction.maInfo; break; } } if (action == MouseAction.maNone && person == null) { if (e.Button == MouseButtons.Right && mouseEvent == MouseEvent.meDown) { action = MouseAction.maDrag; } } return(new MouseActionRet(action, person)); }
private MouseAction GetMouseAction(MouseEventArgs e, MouseEvent mouseEvent, out TreeChartPerson person) { var result = MouseAction.maNone; person = null; Point mpt = GetImageRelativeLocation(e.Location); int aX = mpt.X; int aY = mpt.Y; int num = fModel.Persons.Count; for (int i = 0; i < num; i++) { TreeChartPerson p = fModel.Persons[i]; ExtRect persRt = p.Rect; if (persRt.Contains(aX, aY)) { person = p; if (e.Buttons == MouseButtons.Primary && mouseEvent == MouseEvent.meDown) { result = MouseAction.maSelect; break; } else if (e.Buttons == MouseButtons.Alternate && mouseEvent == MouseEvent.meUp) { result = MouseAction.maProperties; break; } else if (mouseEvent == MouseEvent.meMove) { result = MouseAction.maHighlight; break; } } ExtRect expRt = TreeChartModel.GetExpanderRect(persRt); if ((e.Buttons == MouseButtons.Primary && mouseEvent == MouseEvent.meUp) && expRt.Contains(aX, aY)) { person = p; result = MouseAction.maExpand; break; } expRt = TreeChartModel.GetPersonExpandRect(persRt); if ((e.Buttons == MouseButtons.Primary && mouseEvent == MouseEvent.meUp) && expRt.Contains(aX, aY)) { person = p; result = MouseAction.maPersonExpand; break; } ExtRect infoRt = TreeChartModel.GetInfoRect(persRt); if ((e.Buttons == MouseButtons.Primary && mouseEvent == MouseEvent.meUp) && infoRt.Contains(aX, aY)) { person = p; result = MouseAction.maInfo; break; } } if (result == MouseAction.maNone && person == null) { if (e.Buttons == MouseButtons.Alternate && mouseEvent == MouseEvent.meDown) { result = MouseAction.maDrag; } } return(result); }
private MouseAction GetMouseAction(MouseEventArgs e, MouseEvent mouseEvent, out TreeChartPerson person) { var result = MouseAction.None; person = null; ExtPoint offsets = fModel.GetOffsets(); int aX = e.X - offsets.X; int aY = e.Y - offsets.Y; int num = fModel.Persons.Count; for (int i = 0; i < num; i++) { TreeChartPerson p = fModel.Persons[i]; ExtRect persRt = p.Rect; if (persRt.Contains(aX, aY)) { person = p; if (e.Button == MouseButtons.Left && mouseEvent == MouseEvent.meDown) { result = MouseAction.Select; break; } else if (e.Button == MouseButtons.Right && mouseEvent == MouseEvent.meUp) { result = MouseAction.Properties; break; } else if (mouseEvent == MouseEvent.meMove) { result = MouseAction.Highlight; break; } } ExtRect expRt = TreeChartModel.GetExpanderRect(persRt); if ((e.Button == MouseButtons.Left && mouseEvent == MouseEvent.meUp) && expRt.Contains(aX, aY)) { person = p; result = MouseAction.Expand; break; } expRt = TreeChartModel.GetPersonExpandRect(persRt); if ((e.Button == MouseButtons.Left && mouseEvent == MouseEvent.meUp) && expRt.Contains(aX, aY)) { person = p; result = MouseAction.PersonExpand; break; } ExtRect infoRt = TreeChartModel.GetInfoRect(persRt); if ((e.Button == MouseButtons.Left && mouseEvent == MouseEvent.meUp) && infoRt.Contains(aX, aY)) { person = p; result = MouseAction.Info; break; } } if (result == MouseAction.None && person == null) { if (e.Button == MouseButtons.Right && mouseEvent == MouseEvent.meDown) { result = MouseAction.Drag; } } return(result); }