Cleanup in elf.c with .bss section clean; adm command mounts cdrom instead of floppy...
[ZeXOS.git] / apps / zde / zpaint / main.c
blob52eee98bd9959e44db540f231739d59319d9bf2e
1 /*
2 * ZeX/OS
3 * Copyright (C) 2009 Tomas 'ZeXx86' Jedrzejek (zexx86@zexos.org)
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
20 #include <appcl.h>
22 unsigned short *zpaint_bitmap;
23 zbitmap_t zbmp;
25 void zweb_draw ()
27 zgui_puts (5, 5, "ZPaint", 0);
29 unsigned short x;
30 unsigned short y;
32 int s = zgui_cursor (&x, &y);
34 int yy = y - 20;
36 if (yy < 0)
37 yy = 0;
38 else if (yy >= 200)
39 yy = 199;
41 if (s)
42 zbmp.data[zbmp.sizex*yy+x] = 0;
44 zgui_bitmap (&zbmp);
47 int main (int argc, char **argv)
49 int exit = 0;
51 if (zgui_init () == -1)
52 return -1;
54 zgui_resize (328, 240);
56 zpaint_bitmap = (unsigned short *) malloc (sizeof (unsigned short) * 320 * 200);
58 if (!zpaint_bitmap)
59 goto end;
61 memset (zpaint_bitmap, ~0, sizeof (unsigned short) * 320 * 200);
63 zbmp.x = 0;
64 zbmp.y = 20;
65 zbmp.resx = 320;
66 zbmp.resy = 200;
68 zbmp.posx = 0;
69 zbmp.posy = 0;
70 zbmp.sizex = 320;
71 zbmp.sizey = 200;
73 zbmp.data = zpaint_bitmap;
75 while (!exit) {
76 unsigned state = zgui_event ();
78 if (state & APPCL_STATE_REDRAW)
79 zweb_draw ();
81 if (state & APPCL_STATE_EXIT)
82 exit = 1;
85 free (zpaint_bitmap);
86 end:
87 return zgui_exit ();