How to make new tools

The best is to derive from existing tools, and redefine only what you don't like. The tools often function within a group of tools. They share a common way of using mouse buttons, and it is oke to push a tool unto the stack, and returning to the parent tool after stopping itself. Like tools based on a2dStTool use all as controller a2dStToolContr.

Changing State

A tool is used to manipulate what is in a drawing. User input combined with selected objects and mouse hit objects, brings a tool from one state into another. Down here some examples of what can bring a tool into a different state.

||<rowstyle="background-color: #FFFFE0;">

LeftDown

Ctrl Down

true

1

LeftDown + drag

Ctrl Down

true

1

LeftDown + drag

Shift Down

true

1

LeftDown + drag

Alt Down

true

1

RightDown + drag

Ctrl Down

true

1

LeftDown + LeftUp at xy

Alt Down

true

1

Tool state

Zoom Tool

Diagram1.png