Subversion Repositories Kolibri OS

Rev

Rev 8927 | Rev 8949 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 8927 Rev 8947
1
void Scroll() {
1
void DrawScroll(bool _scroll_used) {
2
	dword i;
2
	dword i;
3
 
3
 
4
	dword sc_x = files.x + files.w;
4
	dword sc_x = files.x + files.w;
5
	dword sc_y = files.y;
5
	dword sc_y = files.y;
6
	dword sc_h = files.h - 16;
6
	dword sc_h = files.h - 16;
7
	dword sc_slider_y;
7
	dword sc_slider_y;
8
	dword sc_center;
8
	dword sc_center;
9
 
9
 
10
	if (files.count<=0)
10
	if (files.count<=0)
11
	{
11
	{
12
		sc_slider_y = sc_y - 1;
12
		sc_slider_y = sc_y - 1;
13
		sc_slider_h = sc_h + 1;
13
		sc_slider_h = sc_h + 1;
14
	}
14
	}
15
	else
15
	else
16
	{
16
	{
17
		sc_slider_y = files.first * sc_h / files.count + sc_y - 1;
17
		sc_slider_y = files.first * sc_h / files.count + sc_y - 1;
18
		sc_slider_h = sc_h * files.visible - files.visible / files.count + 2;
18
		sc_slider_h = sc_h * files.visible - files.visible / files.count + 2;
19
		if (sc_slider_h < 20) sc_slider_h = 20; //minimal scroll height
19
		if (sc_slider_h < 20) sc_slider_h = 20; //minimal scroll height
20
		if (sc_slider_h > sc_h-sc_slider_y+56) || (files.first+files.visible>=files.count) sc_slider_y= sc_y + sc_h - sc_slider_h; //äëÿ áîëüøîãî ñïèñêà 
20
		if (sc_slider_h > sc_h-sc_slider_y+56) || (files.first+files.visible>=files.count) sc_slider_y= sc_y + sc_h - sc_slider_h; //äëÿ áîëüøîãî ñïèñêà 
21
	}
21
	}
22
	//slider
22
	//slider
23
	DrawRectangle(sc_x,sc_slider_y,16,sc_slider_h,sc.work_graph);
23
	DrawRectangle(sc_x,sc_slider_y,16,sc_slider_h,sc.work_graph);
24
	DrawRectangle3D(sc_x+1,sc_slider_y+1,14,sc_slider_h-2, sc.work_light , sc.work_dark);
24
	DrawRectangle3D(sc_x+1,sc_slider_y+1,14,sc_slider_h-2, sc.work_light , sc.work_dark);
25
	if (!scroll_used) for (i=0; i<13; i++) DrawBar(sc_x + 2 + i, sc_slider_y+2, 1, sc_slider_h-3, col.work_gradient[13-i]);
25
	for (i=0; i<13; i++) {
-
 
26
		if (!_scroll_used) EDX = col.work_gradient[13-i]; else EDX = col.work_gradient[i];
26
	if (scroll_used)  for (i=0; i<13; i++) DrawBar(sc_x + 2 + i, sc_slider_y+2, 1, sc_slider_h-3, col.work_gradient[i]);
27
		DrawBar(sc_x + 2 + i, sc_slider_y+2, 1, sc_slider_h-3, EDX);
27
 
28
	}
-
 
29
 
28
	sc_center = sc_slider_h / 2 + sc_slider_y;
30
	sc_center = sc_slider_h / 2 + sc_slider_y;
29
 
31
 
30
	DrawBar(sc_x+4,   sc_center-3, 8,  1, sc.work_graph);
32
	DrawBar(sc_x+4,   sc_center-3, 8,  1, sc.work_graph);
31
	DrawBar(sc_x+4+1, sc_center-2, 8,  1, sc.work_light);
33
	DrawBar(sc_x+4+1, sc_center-2, 8,  1, sc.work_light);
32
 
34
 
33
	DrawBar(sc_x+3,   sc_center,   10, 1, sc.work_graph);
35
	DrawBar(sc_x+3,   sc_center,   10, 1, sc.work_graph);
34
	DrawBar(sc_x+3+1, sc_center+1, 10, 1, sc.work_light);
36
	DrawBar(sc_x+3+1, sc_center+1, 10, 1, sc.work_light);
35
 
37
 
36
	DrawBar(sc_x+4,   sc_center+3, 8,  1, sc.work_graph);
38
	DrawBar(sc_x+4,   sc_center+3, 8,  1, sc.work_graph);
37
	DrawBar(sc_x+4+1, sc_center+4, 8,  1, sc.work_light);
39
	DrawBar(sc_x+4+1, sc_center+4, 8,  1, sc.work_light);
38
 
40
 
39
	//area before slider
41
	//area before slider
40
	if (sc_slider_y > sc_y + 1) 
42
	if (sc_slider_y > sc_y + 1) 
41
	{
43
	{
42
		DrawBar(sc_x+1, sc_y,   15, 1, col.slider_bg_left);
44
		DrawBar(sc_x+1, sc_y,   15, 1, col.slider_bg_left);
43
		DrawBar(sc_x+1, sc_y+1,  1, sc_slider_y-sc_y-1, col.slider_bg_left);
45
		DrawBar(sc_x+1, sc_y+1,  1, sc_slider_y-sc_y-1, col.slider_bg_left);
44
		DrawBar(sc_x+2, sc_y+1, 14, sc_slider_y-sc_y-1, col.slider_bg_big);
46
		DrawBar(sc_x+2, sc_y+1, 14, sc_slider_y-sc_y-1, col.slider_bg_big);
45
	}
47
	}
46
	//area after slider
48
	//area after slider
47
	if (sc_h-sc_slider_h+sc_y-2>sc_slider_y)
49
	if (sc_h-sc_slider_h+sc_y-2>sc_slider_y)
48
	{
50
	{
49
		DrawBar(sc_x+1, sc_slider_y + sc_slider_h+1, 15, 1, col.slider_bg_left);
51
		DrawBar(sc_x+1, sc_slider_y + sc_slider_h+1, 15, 1, col.slider_bg_left);
50
		DrawBar(sc_x+1, sc_slider_y + sc_slider_h+2,  1, sc_h-sc_slider_h-sc_slider_y+sc_y-2, col.slider_bg_left);
52
		DrawBar(sc_x+1, sc_slider_y + sc_slider_h+2,  1, sc_h-sc_slider_h-sc_slider_y+sc_y-2, col.slider_bg_left);
51
		DrawBar(sc_x+2, sc_slider_y + sc_slider_h+2, 14, sc_h-sc_slider_h-sc_slider_y+sc_y-2, col.slider_bg_big);
53
		DrawBar(sc_x+2, sc_slider_y + sc_slider_h+2, 14, sc_h-sc_slider_h-sc_slider_y+sc_y-2, col.slider_bg_big);
52
	}
54
	}
53
}
55
}
54
 
56
 
55
void DrawFlatButtonSmall(dword x,y,width,height,id,text)
57
void DrawFlatButtonSmall(dword x,y,width,height,id,text)
56
{
58
{
57
	DrawRectangle(x,y,width,height,sc.work_graph);
59
	DrawRectangle(x,y,width,height,sc.work_graph);
58
	DrawRectangle3D(x+1,y+1,width-2,height-2, sc.work_light, sc.work_dark);
60
	DrawRectangle3D(x+1,y+1,width-2,height-2, sc.work_light, sc.work_dark);
59
	PutPixel(x+width-1, y+1, sc.work_dark);
61
	PutPixel(x+width-1, y+1, sc.work_dark);
60
	DrawFilledBar(x+2, y+2, width-3, height-3);
62
	DrawFilledBar(x+2, y+2, width-3, height-3);
61
	if (id) DefineHiddenButton(x+1,y+1,width-2,height-2,id);
63
	if (id) DefineHiddenButton(x+1,y+1,width-2,height-2,id);
62
	WriteText(-strlen(text)*6+width/2+x+1,height/2+y-3,0x80,sc.work_text,text);
64
	WriteText(-strlen(text)*6+width/2+x+1,height/2+y-3,0x80,sc.work_text,text);
63
}
65
}
64
 
66
 
65
void DrawFuncButton(dword x,y,width,id,number,text)
67
void DrawFuncButton(dword x,y,width,id,number,text)
66
{
68
{
67
	#define FW 12
69
	#define FW 12
68
	#define FH 16
70
	#define FH 16
69
	int numw = calc(number/10)*6+FW;
71
	int numw = calc(number/10)*6+FW;
70
	if (skin_is_dark()) {
72
	if (skin_is_dark()) {
71
		DrawFlatButtonSmall(x,y,width,FH,id,text);
73
		DrawFlatButtonSmall(x,y,width,FH,id,text);
72
		return;
74
		return;
73
	}
75
	}
74
	DrawRectangle(x,y,width,FH,sc.work_graph);
76
	DrawRectangle(x,y,width,FH,sc.work_graph);
75
	DrawRectangle3D(x+1,y+1,width-2,FH-2, 0x97D194, 0x00A100);
77
	DrawRectangle3D(x+1,y+1,width-2,FH-2, 0x97D194, 0x00A100);
76
	PutPixel(x+width-1, y+1, sc.work_dark);
78
	PutPixel(x+width-1, y+1, sc.work_dark);
77
	DrawBar(x+2, y+2, numw, FH-2, 0x6060FF);
79
	DrawBar(x+2, y+2, numw, FH-2, 0x6060FF);
78
	WriteText(x+6,FH/2+y-2,0x80,0x444444,itoa(number));
80
	WriteText(x+6,FH/2+y-2,0x80,0x444444,itoa(number));
79
	$sub ebx, 1 <<16 + 1
81
	$sub ebx, 1 <<16 + 1
80
	$add ecx, 0xFFFfff-0x444444
82
	$add ecx, 0xFFFfff-0x444444
81
	$int 64
83
	$int 64
82
	DrawBar(x+2+numw, y+2, width-3-numw, FH-3, 0x00AA00);
84
	DrawBar(x+2+numw, y+2, width-3-numw, FH-3, 0x00AA00);
83
	DefineHiddenButton(x+1,y+1,width-2,FH-2,id);
85
	DefineHiddenButton(x+1,y+1,width-2,FH-2,id);
84
	WriteText(-strlen(text)*6+width/2+x+8,FH/2+y-2,0x80,0x444444,text);
86
	WriteText(-strlen(text)*6+width/2+x+8,FH/2+y-2,0x80,0x444444,text);
85
	$sub ebx, 1 <<16 + 1
87
	$sub ebx, 1 <<16 + 1
86
	$add ecx, 0xFFFfff-0x444444
88
	$add ecx, 0xFFFfff-0x444444
87
	$int 64
89
	$int 64
88
}
90
}
89
 
91
 
90
void DrawFilledBar(dword x, y, w, h)
92
void DrawFilledBar(dword x, y, w, h)
91
{ int i; for (i=0; i
93
{ int i; for (i=0; i
92
 
94
 
93
void DrawEolitePopup(dword b1_text, b2_text)
95
void DrawEolitePopup(dword b1_text, b2_text)
94
{
96
{
95
	#define POPIN_W 260
97
	#define POPIN_W 260
96
	int popin_x = files.w - POPIN_W / 2 + files.x ;
98
	int popin_x = files.w - POPIN_W / 2 + files.x ;
97
	DrawPopup(popin_x, 160, POPIN_W, 95, 1, sc.work, sc.work_graph);
99
	DrawPopup(popin_x, 160, POPIN_W, 95, 1, sc.work, sc.work_graph);
98
	DrawCaptButton(popin_x+23+000, 215, 100, 26, POPUP_BTN1, sc.button, sc.button_text, b1_text);
100
	DrawCaptButton(popin_x+23+000, 215, 100, 26, POPUP_BTN1, sc.button, sc.button_text, b1_text);
99
	DrawCaptButton(popin_x+23+114, 215, 100, 26, POPUP_BTN2, sc.button, sc.button_text, b2_text);
101
	DrawCaptButton(popin_x+23+114, 215, 100, 26, POPUP_BTN2, sc.button, sc.button_text, b2_text);
100
}
102
}
101
 
103
 
102
void DrawDot(dword x,y) {
104
void DrawDot(dword x,y) {
103
	dword col_pxl = MixColors(sc.work_graph, sc.work, 60);
105
	dword col_pxl = MixColors(sc.work_graph, sc.work, 60);
104
	DrawBar(x+1,y,2,4,sc.work_graph);
106
	DrawBar(x+1,y,2,4,sc.work_graph);
105
	DrawBar(x,y+1,4,2,sc.work_graph);
107
	DrawBar(x,y+1,4,2,sc.work_graph);
106
	PutPixel(x,y,col_pxl);
108
	PutPixel(x,y,col_pxl);
107
	PutPixel(x+3,y,col_pxl);
109
	PutPixel(x+3,y,col_pxl);
108
	PutPixel(x,y+3,col_pxl);
110
	PutPixel(x,y+3,col_pxl);
109
	PutPixel(x+3,y+3,col_pxl);
111
	PutPixel(x+3,y+3,col_pxl);
110
}
112
}
111
>
113
>