ta simple plan 9 image viewer - plan9port - [fork] Plan 9 from user space | |
git clone git://src.adamsgaard.dk/plan9port | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit 3f8c70e97c2eb85992424439af56a4dd6412b8c6 | |
parent e2713e92abdfd2ac5359f5756ffff112e1069c78 | |
Author: rsc <devnull@localhost> | |
Date: Sat, 24 Apr 2004 16:59:47 +0000 | |
a simple plan 9 image viewer | |
Diffstat: | |
A src/cmd/draw/img.c | 63 +++++++++++++++++++++++++++++… | |
1 file changed, 63 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/src/cmd/draw/img.c b/src/cmd/draw/img.c | |
t@@ -0,0 +1,63 @@ | |
+#include <u.h> | |
+#include <libc.h> | |
+#include <draw.h> | |
+#include <event.h> | |
+ | |
+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; | |
+ } | |
+ } | |
+} |