Differences between revisions 6 and 7
Revision 6 as of 2008-08-16 18:03:08
Size: 1355
Comment:
Revision 7 as of 2008-08-16 18:10:20
Size: 1950
Comment:
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
||<rowstyle="background-color: #FFFFE0;"> mouse event ||key state || object hit ||object selected||
||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 ||
||<rowstyle="background-color: #FFFFE0;"> mouse event ||key state || object hit ||object selected|| action ||
||LeftDown ||    || true || 1 || Select object hit ||
||RightDown || || true || 1 || depends on drag or not ||
||LeftDown ||
Ctrl Down || true || 1 || deselect all & add hit object ||
||LeftDown + drag ||Ctrl Down || true || 0 || deselect all & add selected objects ||
||LeftDown + drag ||Shift Down || true || 0 || add selected objects in rect ||
||LeftDown + drag ||Alt Down || true || n >=
1 || move selected objects ||
||RightDown + drag ||Ctrl Down || true || 1 || drag canvas area ||
||LeftDown + LeftUp at xy ||Alt Down || true || 1 || select ||
||RightDown + RightUp at xy ||Alt Down || true || 0 || popup menu ||
||LeftUp || || true || 1 || depending on keys, treat dragged rect ||
|| non || Space bar || false || 0 ||

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.

mouse event

key state

object hit

object selected

action

LeftDown

true

1

Select object hit

RightDown

true

1

depends on drag or not

LeftDown

Ctrl Down

true

1

deselect all & add hit object

LeftDown + drag

Ctrl Down

true

0

deselect all & add selected objects

LeftDown + drag

Shift Down

true

0

add selected objects in rect

LeftDown + drag

Alt Down

true

n >= 1

move selected objects

RightDown + drag

Ctrl Down

true

1

drag canvas area

LeftDown + LeftUp at xy

Alt Down

true

1

select

RightDown + RightUp at xy

Alt Down

true

0

popup menu

LeftUp

true

1

depending on keys, treat dragged rect

non

Space bar

false

0

Tool state

Zoom Tool

Diagram1.png

wxArt2D: ToolDevelopment (last edited 2008-08-16 18:20:10 by KlaasHolwerda)