/// <summary> /// Adds the given tool. /// </summary> /// <param name="tool">The tool.</param> public void AddTool(ITool tool) { tool.Controller = this; //add the tool to the collection even if it doesn't attach to anything (yet) registeredTools.Add(tool); IMouseListener mouseTool = null; if ((mouseTool = tool as IMouseListener) != null) { mouseListeners.Add(mouseTool); } IKeyboardListener keyboardTool = null; if ((keyboardTool = tool as IKeyboardListener) != null) { keyboardListeners.Add(keyboardTool); } IDragDropListener dragdropTool = null; if ((dragdropTool = tool as IDragDropListener) != null) { dragdropListeners.Add(dragdropTool); } }
public void RemoveTool(ITool tool) { if (tool == null) { return; } tool.Controller = null; registeredTools.Remove(tool); IMouseListener mouseTool = tool as IMouseListener; if (mouseTool != null) { mouseListeners.Remove(mouseTool); } IKeyboardListener keyboardTool = tool as IKeyboardListener; if (keyboardTool != null) { keyboardListeners.Remove(keyboardTool); } IDragDropListener dragdropTool = tool as IDragDropListener; if (dragdropTool != null) { dragdropListeners.Remove(dragdropTool); } tool.OnToolActivate -= new EventHandler <ToolEventArgs>(AddedTool_OnToolActivate); tool.OnToolDeactivate -= new EventHandler <ToolEventArgs>(AddedTool_OnToolDeactivate); }