
public interface IDiagramTool
All existing tools are actually subclasses of the abstract class DiagramTool, which implements this interface.
All uses of tools in Diagram use this interface, not the class DiagramTool. However, the Diagram class also has a property for each of the mode-less tools that the diagram might have, for convenience in replacing or removing those specific tools from the diagram.