about summary refs log tree commit diff stats
path: root/mu.lua
diff options
context:
space:
mode:
authorKartik K. Agaram <vc@akkartik.com>2022-05-14 13:57:19 -0700
committerKartik K. Agaram <vc@akkartik.com>2022-05-14 13:57:19 -0700
commitd2d7e30c319f3ddc3457fa72408e4754861ac325 (patch)
treee2f78c54b1a62b469d9e16c3279d30e2c0cac490 /mu.lua
parent361d80b55ff0b84b916546b9ccb383c2babbeb63 (diff)
downloadtext.love-d2d7e30c319f3ddc3457fa72408e4754861ac325.tar.gz
experimental approach to combining keyboard and mouse while drawing
Desired properties:
  - fluently draw lots of precise drawings
    - requires expressing lots of different kinds of constraints
  - always know what pressing a key is going to do
  - when typing, don't care where the mouse pointer is

Less important:
  - discoverability, learnability. Provide a hotkey for help.

Current plan:
  - chorded keys to modify drawings while mouse button is not pressed
  - unchorded keys to modify drawings only while mouse button is pressed
  - make changes while drawing a shape by pressing a key while mouse
    button is pressed
  - make changes to a drawing by hovering mouse pointer at a shape and
    pressing a key (unary operators)
  - add constraints after drawing by hovering mouse pointer at a shape,
    pressing a key and moving mouse pointer to a second shape (binary
    operators)
  - almost any change can be made to a shape after it's drawn (inspired
    by Sketchpad)
  - keys pressed while drawing a shape act as abbreviations to
    performing the action after drawing

First example in this PR:
  - you press mouse button, start drawing freehand
  - you realize you want a simple line, not a freehand stroke
  - without releasing the mouse button, you press 'l'
  - now you're drawing a straight line

You could also release the mouse button and finish the stroke, then
press 'ctrl-l' while hovering the mouse pointer on the stroke to turn it
into a line.

There's an asymmetry here. Strokes require a lot more information, so
while you can turn a stroke into a line, you can't turn a line into a
stroke.

Strokes are an exception where you can't switch to freehand mode after
you start drawing. You have to press C-f before drawing.
Diffstat (limited to 'mu.lua')
0 files changed, 0 insertions, 0 deletions