#include <9pm/u.h>
#include <9pm/libc.h>
#include <9pm/draw.h>
#include <9pm/thread.h>
#include <9pm/mouse.h>
void
eresized(int new)
{
Rectangle r;
r = screen->r;
if(new && getwindow(display, Refnone) < 0)
fprint(2,"can't reattach to window");
draw(screen, screen->r, display->white, nil, ZP);
}
Mouse
emouse(Mousectl *mc)
{
if(readmouse(mc) < 0)
sysfatal("readmouse: %r");
return mc->m;
}
void
threadmain(int argc, char **argv)
{
Mousectl *mc;
Mouse m;
Image *red, *blue;
USED(argc);
USED(argv);
initdraw(0,0,0);
eresized(0);
mc = initmouse(nil, screen);
red = allocimagemix(display, DRed, DRed);
blue = allocimagemix(display, DBlue, DBlue);
for(;;){
m = emouse(mc);
if(m.buttons & 4)
break;
if(m.buttons & 1){
fillellipse(screen, m.xy, 5, 5, red, ZP);
do m=emouse(mc); while(m.buttons & 1);
fillellipse(screen, m.xy, 5, 5, blue, ZP);
continue;
}
if(m.buttons & 2){
do m=emouse(mc); while(m.buttons & 2);
draw(screen, screen->r, display->white, nil, ZP);
continue;
}
draw(screen, rectaddpt(Rect(0,0,2,2), m.xy), display->black, nil, ZP);
}
threadexitsall(nil);
}
syntax highlighted by Code2HTML, v. 0.9.1