Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
7089 leency 1
struct _colors
2
{
3
	int x,y;
4
	unsigned rows, columns;
5
	unsigned cell_size;
6
	dword mas[MAX_COLORS*MAX_COLORS];
7
	dword image;
8
	void set_default_values();
9
	void set_color();
10
	dword get_color();
11
	dword get_image();
12
	void draw_cell();
13
	void draw_all_cells();
14
} colors;
15
 
16
void _colors::set_default_values()
17
{
18
	columns = 2;
19
	rows = 2;
20
	cell_size = 20;
21
 
22
	set_color(0,0, 0x66b2ff);
23
	set_color(0,1, 0x000066);
24
 
25
	set_color(1,0, 0x000066);
26
	set_color(1,1, 0x66b2ff);
27
}
28
 
29
void _colors::set_color(int _r, _c, _color)
30
{
31
	debugval("_r", _r);
32
	debugval("_c", _c);
33
	mas[MAX_COLORS*_r + _c] = _color;
34
}
35
 
36
dword _colors::get_color(int _r, _c)
37
{
38
	return mas[MAX_COLORS*_r + _c];
39
}
40
 
41
dword _colors::get_image()
42
{
43
	int r=0, c=0;
44
	dword i;
45
 
46
	free(image);
47
	i = image = malloc(rows*columns*3);
48
 
49
	for (r = 0; r < rows; r++)
50
	{
51
		for (c = 0; c < columns; c++)
52
		{
53
			rgb.DwordToRgb(get_color(r,c));
54
			ESBYTE[i] = rgb.b;
55
			ESBYTE[i+1] = rgb.g;
56
			ESBYTE[i+2] = rgb.r;
57
			i += 3;
58
		}
59
	}
60
	return image;
61
}
62
 
63
void _colors::draw_cell(int _x, _y, _color)
64
{
65
	DrawRectangle(_x, _y, cell_size, cell_size, 0xA7B2BA);
66
	DrawBar(_x+1, _y+1, cell_size-1, cell_size-1, _color);
67
}
68
 
69
void _colors::draw_all_cells()
70
{
71
	int r, c, i;
72
	for (i=300; i
73
	for (r = 0; r < rows; r++)
74
	{
75
		for (c = 0; c < columns; c++)
76
		{
77
			draw_cell(c*cell_size + x, r*cell_size + y, get_color(r, c));
78
			DefineHiddenButton(c*cell_size + x, r*cell_size + y, cell_size, cell_size, r*columns+c+300);
79
		}
80
	}
81
}
82