commit 3f8c70e97c2eb85992424439af56a4dd6412b8c6 from: rsc date: Sat Apr 24 16:59:47 2004 UTC a simple plan 9 image viewer commit - e2713e92abdfd2ac5359f5756ffff112e1069c78 commit + 3f8c70e97c2eb85992424439af56a4dd6412b8c6 blob - /dev/null blob + b46bcf3405cff39a4563be240c650d6cf550f629 (mode 644) --- /dev/null +++ src/cmd/draw/img.c @@ -0,0 +1,63 @@ +#include +#include +#include +#include + +void +usage(void) +{ + fprint(2, "usage: img [file]\n"); + exits("usage"); +} + +Image *image; + +void +eresized(int new) +{ + if(new && getwindow(display, Refnone) < 0) + sysfatal("can't reattach to window: %r"); + + draw(screen, screen->r, display->white, nil, ZP); + drawop(screen, screen->r, image, nil, image->r.min, S); +} + +void +main(int argc, char **argv) +{ + int fd; + Event e; + + ARGBEGIN{ + default: + usage(); + }ARGEND + + if(argc > 1) + usage(); + + if(argc == 1){ + if((fd = open(argv[0], OREAD)) < 0) + sysfatal("open %s: %r"); + }else + fd = 0; + + if(initdraw(nil, nil, nil) < 0) + sysfatal("initdraw: %r"); + + if((image=readimage(display, fd, 0)) == nil) + sysfatal("readimage: %r"); + + einit(Emouse|Ekeyboard); + eresized(0); + for(;;){ + switch(event(&e)){ + case Ekeyboard: + if(e.kbdc == 'q' || e.kbdc == 0x7F) + exits(nil); + break; + case Emouse: + break; + } + } +}