diff options
author | Fumitoshi UKAI <ukai@debian.or.jp> | 2003-07-07 15:48:16 +0000 |
---|---|---|
committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2003-07-07 15:48:16 +0000 |
commit | 0bbf6748bb7cd8cf187fcb7a8261c1dcddd03df5 (patch) | |
tree | 7361b0c822440318261d7ead736a2f8911f36ff0 /w3mimgdisplay.c | |
parent | [w3m-dev 03927] deflate (diff) | |
download | w3m-0bbf6748bb7cd8cf187fcb7a8261c1dcddd03df5.tar.gz w3m-0bbf6748bb7cd8cf187fcb7a8261c1dcddd03df5.zip |
[w3m-dev 03929] clear image
* image.c (syncImage): added
(drawImage): rewrite using syncImage()
(clearImage): use clear image command (6)
* w3mimgdisplay.c: change protocol
2 => terminate drawing
6 => clear image
(main): '2' calls TermImage()
'6' calls ClearImage()
TermImage() when exit
(TermImage): renamed from ClearImage
(ClearImage): rewritten to call w_op->clear()
* w3mimg.h/w3mimg.h (w3mimg_op): add clear()
* w3mimg/fb/fb.c (fb_clear): added
* w3mimg/fb/fb.h (fb_clear): added
* w3mimg/fb/fb_img.c (fb_image_clear): added
* w3mimg/fb/fb_w3mimg.c (w3mfb_clear): added
(w3mimg_fbopen): initialize wop->clear
* w3mimg/x11/x11_w3mimg.c (x11_clear): added
(w3mimg_x11open): initialize wop->clear
From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
Diffstat (limited to 'w3mimgdisplay.c')
-rw-r--r-- | w3mimgdisplay.c | 45 |
1 files changed, 39 insertions, 6 deletions
diff --git a/w3mimgdisplay.c b/w3mimgdisplay.c index 4534246..6ec24cc 100644 --- a/w3mimgdisplay.c +++ b/w3mimgdisplay.c @@ -1,4 +1,4 @@ -/* $Id: w3mimgdisplay.c,v 1.13 2003/03/24 15:45:57 ukai Exp $ */ +/* $Id: w3mimgdisplay.c,v 1.14 2003/07/07 15:48:16 ukai Exp $ */ #include <stdio.h> #include <stdlib.h> #include <ctype.h> @@ -21,7 +21,8 @@ static int maxImage = 0, maxAnim = 100; static void GetOption(int argc, char **argv); static void DrawImage(char *buf, int redraw); -static void ClearImage(void); +static void TermImage(void); +static void ClearImage(char *buf); int main(int argc, char **argv) @@ -100,15 +101,18 @@ main(int argc, char **argv) * op args * 0; params draw image * 1; params redraw image - * 2; -none- clear image + * 2; -none- terminate drawing * 3; -none- sync drawing * 4; -none- nop, sync communication * response '\n' * 5; path get size of image, * response "<width> <height>\n" + * 6; params(6) clear image * * params * <n>;<x>;<y>;<w>;<h>;<sx>;<sy>;<sw>;<sh>;<path> + * params(6) + * <x>;<y>;<w>;<h> * */ switch (buf[0]) { @@ -119,7 +123,7 @@ main(int argc, char **argv) DrawImage(&buf[2], 1); break; case '2': - ClearImage(); + TermImage(); break; case '3': w_op->sync(w_op); @@ -144,9 +148,12 @@ main(int argc, char **argv) fflush(stdout); } break; + case '6': + ClearImage(&buf[2]); + break; } } - ClearImage(); + TermImage(); w_op->close(w_op); exit(0); } @@ -278,7 +285,7 @@ DrawImage(char *buf, int redraw) } void -ClearImage(void) +TermImage(void) { w_op->finish(w_op); if (imageBuf) { @@ -291,3 +298,29 @@ ClearImage(void) } maxImage = 0; } + +void +ClearImage(char *buf) +{ + char *p = buf; + int x = 0, y = 0, w = 0, h = 0; + + if (!p) + return; + for (; isdigit(*p); p++) + x = 10 * x + (*p - '0'); + if (*(p++) != ';') + return; + for (; isdigit(*p); p++) + y = 10 * y + (*p - '0'); + if (*(p++) != ';') + return; + for (; isdigit(*p); p++) + w = 10 * w + (*p - '0'); + if (*(p++) != ';') + return; + for (; isdigit(*p); p++) + h = 10 * h + (*p - '0'); + + w_op->clear(w_op, x, y, w, h); +} |