Example #1
0
        /// <summary>
        /// Set active tool.
        /// </summary>
        /// <param name="toolType">Tool type.</param>
        public void SetTool(ToolType toolType)
        {
            //if (toolType == currentTool) //nothing to do?
            //return;

            if (currentTool != ToolType.Add && toolType != currentTool) //skip tools whithout buttons
            {
                previousTool = currentTool;
            }
            currentTool = toolType;

            //do cancel on curent tool
            if (tool != null)
            {
                tool.OnCancel();
            }

            switch (toolType)
            {
            case ToolType.HandTool:
                tool = handTool;
                handToolButton.SetSelected();
                break;

            case ToolType.Select:
                tool = selectSingleTool;
                selectToolButton.SetSelected();
                break;

            case ToolType.SelectColor:
                tool = selectColorTool;
                selectColorToolButton.SetSelected();
                break;

            case ToolType.SelectShape:
                tool = selectShapeTool;
                selectShapeToolButton.SetSelected();
                break;

            case ToolType.Rotate:
                tool = rotateTool;
                break;

            case ToolType.Clone:
                tool = cloneTool;
                cloneToolButton.SetSelected();
                break;

            case ToolType.Colour:
                tool = colorTool;
                colorToolButton.SetSelected();
                break;

            case ToolType.Add:
                tool = addTool;
                ToolButton.UnselectAll();
                break;

            case ToolType.Measure:
                tool = measureTool;
                measureToolButton.SetSelected();
                break;

            case ToolType.MultiTool:
                tool = multiTool;
                multiToolButton.SetSelected();
                break;
            }

            OnToolChange?.Invoke(toolType);
        }