This commit is contained in:
cinap_lenrek 2011-12-11 18:35:34 +01:00
commit 2524319b4c
2 changed files with 28 additions and 11 deletions

View file

@ -11,15 +11,26 @@ 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 with a horizontal semiaxis of
.I n
and a vertical semiaxis of
.I n
(see
.IR graphics (2)).
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 +42,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.

View file

@ -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)