diff options
author | stanley lieber <stanley.lieber@gmail.com> | 2011-12-09 21:18:20 -0600 |
---|---|---|
committer | stanley lieber <stanley.lieber@gmail.com> | 2011-12-09 21:18:20 -0600 |
commit | 69c3808e586e79e901703ef500607da1eee59c14 (patch) | |
tree | 837f6e38c98097200c72659e4dea389bb69e0620 | |
parent | 4dd4213677184294116caee0a41b169324bccba1 (diff) |
paint: add selectable brush sizes
-rw-r--r-- | sys/man/1/paint | 19 | ||||
-rw-r--r-- | sys/src/cmd/paint.c | 18 |
2 files changed, 26 insertions, 11 deletions
diff --git a/sys/man/1/paint b/sys/man/1/paint index c0455e2dc..c08a5823b 100644 --- a/sys/man/1/paint +++ b/sys/man/1/paint @@ -11,15 +11,24 @@ holding down mouse button 1 or its equivalent. .PP A number of keyboard commands are recognized: .TP +.B b +Set the brush size to an ellipse of +.I n +x +.I n +pixels. Type a number, +.I n, +in the pop-up box and hit enter. +.TP .B c Clear the screen. Any unsaved work will be lost. .TP .B s -Save the current screen as a bitmap image. A pop-up window appears +Save the current screen as a bitmap image. A pop-up box appears suggesting a default filename of .I out.bit. Hit enter to accept the default, or backspace over the suggested name and -enter an alternative path and filename. If the path is omitted, the file will be +type an alternative path and filename. If the path is omitted, a file will be created in the current directory. .TP .B q @@ -31,6 +40,6 @@ Quit. .IR image (6) .SH BUGS .I Paint -offers the bare minimum of drawing functionality. -.B Undo -has not been implemented. +offers a bare minimum of drawing functionality. Popular features such as +.B undo +have not yet been implemented. diff --git a/sys/src/cmd/paint.c b/sys/src/cmd/paint.c index 173efef9b..f09a597c0 100644 --- a/sys/src/cmd/paint.c +++ b/sys/src/cmd/paint.c @@ -40,6 +40,8 @@ main() Event e; Point last; int haslast; + int brushsize = 1; + char brush[128]; char file[128]; haslast = 0; @@ -47,7 +49,6 @@ main() fprint(2, "paint: initdraw failed: %r\n"); exits("initdraw"); } - einit(Emouse | Ekeyboard); draw(screen, screen->r, display->white, 0, ZP); flushimage(display, 1); @@ -56,9 +57,9 @@ main() case Emouse: if(e.mouse.buttons & 1){ if(haslast) - line(screen, last, e.mouse.xy, Enddisc, Enddisc, 5, display->black, ZP); + line(screen, last, e.mouse.xy, Enddisc, Enddisc, brushsize, display->black, ZP); else - fillellipse(screen, e.mouse.xy, 5, 5, display->black, ZP); + fillellipse(screen, e.mouse.xy, brushsize, brushsize, display->black, ZP); last = e.mouse.xy; haslast = 1; @@ -66,15 +67,20 @@ main() } else haslast = 0; if(e.mouse.buttons & 4){ - fillellipse(screen, e.mouse.xy, 5, 5, display->white, ZP); + fillellipse(screen, e.mouse.xy, brushsize, brushsize, display->white, ZP); flushimage(display, 1); } break; case Ekeyboard: - if(e.kbdc == 'q') - exits(nil); + if(e.kbdc == 'b'){ + if(eenter("Brush", brush, sizeof(brush), &e.mouse) <= 0) + break; + brushsize = atoi(brush); + } if(e.kbdc == 'c') draw(screen, screen->r, display->white, 0, ZP); + if(e.kbdc == 'q') + exits(nil); if(e.kbdc == 's'){ snprint(file, sizeof(file), "out.bit"); if(eenter("Save to", file, sizeof(file), &e.mouse) <= 0) |