Subversion Repositories Kolibri OS

Rev

Rev 8071 | Rev 8080 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
8071 maxcodehac 1
#include 
2
#include 
3
#include 
4
 
5
/*
6
 EVENTS LOOK LIKE IN C--
7
*/
8
 
9
#define evReDraw 1
10
#define evKey 2
11
#define evButton 3
12
 
13
 
14
 
15
#define _size 4
16
 
17
#define bs 44
18
 
19
#define FIRSTC 0x137F00
20
#define SECONDC 0x0013FF
21
 
22
int field[_size][_size] = {
23
	{0, 0, 0, 1},
24
	{0, 0, 1, 0},
25
	{0, 0, 0, 1},
8072 maxcodehac 26
	{1, 0, 0, 0}
8071 maxcodehac 27
};
28
 
29
char* title = "Fridge v0.1";
30
 
31
void draw_window(){
32
        BeginDraw();
33
        DrawWindow(215,100,225, 225,title,0xEEEeee,0x34);
34
        for (int j = 10, yy = 0; yy<_size; j+=bs, yy++)
35
			for (int i = 10, xx = 0; xx<_size; i+=bs, xx++)
36
			{
37
				if (field[yy][xx]) define_button(65536 * i + bs, 65536 * j + bs, ((xx+1)*10)+yy+1, FIRSTC);
38
				else define_button(65536 * i + bs, 65536 * j + bs, ((xx+1)*10)+yy+1, SECONDC);
39
			}
40
        EndDraw();
41
}
42
 
43
void Button() {
44
	int id = get_os_button();
45
	if (id == 1) exit(0); else
46
	{
47
		int x = (id/10)-1;
48
		int y = (id%10)-1;
49
 
50
		for (int i = 0; i<_size; i++)
51
			if (field[i][x]) field[i][x] = 0; else field[i][x] = 1;
52
 
53
		for (int i = 0; i<_size; i++)
54
			if (field[y][i]) field[y][i] = 0; else field[y][i] = 1;
55
 
56
		if (field[y][x]) field[y][x] = 0; else field[y][x] = 1;
57
 
58
		draw_window();
59
	}
60
}
61
 
62
int main()
63
{
64
    draw_window();
65
    while(1)
66
    {
67
		switch(get_os_event())
68
		{
69
			case evButton:
70
				Button();
71
				break;
72
 
73
			case evKey:
74
				get_key();
75
				break;
76
 
77
			case evReDraw:
78
				draw_window();
79
				break;
80
		}
81
    }
82
}