A drawing tool is just a component that also defines a certain drawing mode so that its container knows how to render it and pass control to it.
The DrawingTool base class also defines a draw() dispatch, so that different draw methods are called depending on the event state of the tool.
Default function that causes the tool to reset if the user starts drawing again.
Requests that the component redraw itself. Usually this means asking its parent for a repaint.
Causes the tool to reset any saved state and revert its event_state back to the initial value (usually “normal”).