about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* draw lines by defaultKartik K. Agaram2022-05-141-1/+1
| | | | Freehand strokes are a special case. Let's ignore them for a bit.
* bugfix: keep the click to create a new drawing from creating a new shape in ↵Kartik K. Agaram2022-05-141-14/+14
| | | | | | the drawing Easiest way to do this is to keep the screen areas for button and drawing disjoint.
* experimental approach to combining keyboard and mouse while drawingKartik K. Agaram2022-05-141-0/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* bugfixKartik K. Agaram2022-05-141-1/+1
|
* beginnings of support for multiple shapesKartik K. Agaram2022-05-141-43/+114
|
* color close to drawingKartik K. Agaram2022-05-141-1/+1
|
* Devine's suggestion to try to live with just freehandKartik K. Agaram2022-05-141-0/+17
| | | | | | | | | | | | https://merveilles.town/@neauoire/108301005736317873 Drawbacks: Smoothing eliminates high-frequency noise but not low-frequency bumps. Making a drawing end at the start point is very challenging. Still perhaps a useful addition to the toolbox for now. I'm going to need a cambrian explosion of tools in the toolbox for a while before I prune.
* revert: back to freehandKartik K. Agaram2022-05-141-21/+44
|
* switch from freehand to just straight linesKartik K. Agaram2022-05-131-44/+21
|
* store device-independent coordinates inside drawingsKartik K. Agaram2022-05-121-11/+25
|
* slightly tweak boundary between concernsKartik K. Agaram2022-05-121-1/+1
|
* fix a typoKartik K. Agaram2022-05-122-2/+2
|
* make space for multiple kinds of widthKartik K. Agaram2022-05-121-3/+3
|
* fix 2 bugs in line selectionKartik K. Agaram2022-05-111-2/+5
|
* turn strokes into horizontal and vertical linesKartik K. Agaram2022-05-111-0/+16
|
* refactorKartik K. Agaram2022-05-111-8/+15
|
* simplest possible way to straighten strokesKartik K. Agaram2022-05-111-0/+21
|
* more lightweight; select just the stroke at the mouseKartik K. Agaram2022-05-111-11/+2
|
* selecting a strokeKartik K. Agaram2022-05-111-2/+47
|
* bugfix: restrict strokes to the drawing they started inKartik K. Agaram2022-05-111-4/+15
|
* reorgKartik K. Agaram2022-05-111-4/+4
|
* spacingKartik K. Agaram2022-05-111-3/+3
|
* inlineKartik K. Agaram2022-05-111-5/+1
|
* renameKartik K. Agaram2022-05-111-3/+4
|
* clean up repl functionalityKartik K. Agaram2022-05-112-32/+49
| | | | Now we have separate keywords for returning vs drawing something.
* clip drawings inside the borderKartik K. Agaram2022-05-111-2/+2
|
* lighter border for figuresKartik K. Agaram2022-05-111-1/+2
|
* intermingle freehand line drawings with textKartik K. Agaram2022-05-112-7/+87
|
* confirm that we have access to all of the love APIKartik K. Agaram2022-05-021-4/+14
| | | | | | | | love.graphics.line(1, 1, 500, 500) However, we're now no longer printing results or errors. Time now to design the data model. When do we (re)evaluate code. When do we display results. Where do errors go.
* don't rely on defaultsKartik K. Agaram2022-05-021-0/+1
|
* backspaceKartik K. Agaram2022-05-021-0/+10
|
* handle chordsKartik K. Agaram2022-05-022-26/+46
| | | | | For shift we'll mostly rely on love.textinput. For the rest I've created a simple driver.
* little Lua repl on hitting ctrl-rKartik K. Agaram2022-05-021-1/+30
|
* ctrl- and alt- combinationsKartik K. Agaram2022-05-021-0/+6
|
* handle space keyKartik K. Agaram2022-05-011-0/+2
| | | | We're going to run into a few of these..
* note cardKartik K. Agaram2022-05-011-0/+2
|
* show cursorKartik K. Agaram2022-05-011-1/+5
|
* love2d scaffoldKartik K. Agaram2022-05-011-0/+37
|
* .Kartik K. Agaram2022-04-251-5/+7
|
* extract a functionKartik K. Agaram2022-04-251-27/+19
|
* stop mixing ncurses with printKartik K. Agaram2022-04-251-5/+13
|
* copy how Lua 5.3 REPL prints expr valuesKartik K. Agaram2022-04-251-10/+21
|
* replKartik K. Agaram2022-04-251-1/+57
|
* somebody stop meKartik K. Agaram2022-04-251-0/+6