Rev 5441 | Rev 5674 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 5441 | Rev 5532 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | dword col_palette[14] = {0xD2D3D3,0xD4D4D4,0xD6D5D6,0xD8D7D8,0xDAD8D9,0xDCDADB, |
1 | dword col_palette[14] = {0xD2D3D3,0xD4D4D4,0xD6D5D6,0xD8D7D8,0xDAD8D9,0xDCDADB, |
2 | 0xDFDCDD,0xE1DDDE,0xE2DEE0,0xE4DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1}; |
2 | 0xDFDCDD,0xE1DDDE,0xE2DEE0,0xE4DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1,0xE3DFE1}; |
Line 3... | Line 3... | ||
3 | 3 | ||
- | 4 | void Scroll() { |
|
- | 5 | dword i; |
|
- | 6 | ||
4 | inline fastcall void Scroll() { //Ïðîêðóòêà |
7 | word sc_x = Form.cwidth - 18; |
- | 8 | word sc_y = 57; |
|
- | 9 | word sc_h = Form.cheight - 18 - sc_y; |
|
- | 10 | word sc_slider_y; |
|
5 | dword on_y, i; |
11 | |
6 | if (files.count<=0) |
12 | if (files.count<=0) |
7 | { |
13 | { |
8 | on_y = 57; |
14 | sc_slider_y = sc_y; |
9 | scroll_size = onTop(22,58); |
15 | sc_slider_h = sc_h - 1; |
10 | } |
16 | } |
11 | else |
17 | else |
12 | { |
18 | { |
13 | on_y = files.first * onTop(22,57) / files.count +57; |
19 | sc_slider_y = files.first * sc_h / files.count + sc_y; |
14 | scroll_size=onTop(22,57) * files.visible - files.visible / files.count; |
20 | sc_slider_h = sc_h * files.visible - files.visible / files.count; |
15 | if (scroll_size<20) scroll_size = 20; //óñòàíàâëèâàåì ìèíèìàëüíûé ðàçìåð ñêðîëëà |
21 | if (sc_slider_h < 20) sc_slider_h = 20; //minimal scroll width |
- | 22 | if (sc_slider_h > sc_h-sc_slider_y+56) || (files.first+files.visible>=files.count) sc_slider_y=onTop(23+sc_slider_h,0); //äëÿ áîëüøîãî ñïèñêà |
|
- | 23 | } |
|
- | 24 | //slider |
|
- | 25 | DrawFlatButton(sc_x,sc_slider_y,16,sc_slider_h,0,-1,""); |
|
- | 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_palette[13-i]); |
|
- | 27 | if (scroll_used) for (i=0; i<13; i++) DrawBar(sc_x + 2 + i, sc_slider_y+2, 1, sc_slider_h-3, col_palette[i]); |
|
- | 28 | //area before slider |
|
- | 29 | if (sc_slider_y > sc_y + 1) |
|
- | 30 | { |
|
- | 31 | DrawBar(sc_x+1, sc_y, 15, 1, 0xC7C9C9); |
|
- | 32 | DrawBar(sc_x+1, sc_y+1, 1, sc_slider_y-sc_y-1, 0xC7C9C9); |
|
- | 33 | DrawBar(sc_x+2, sc_y+1, 14, sc_slider_y-sc_y-1, 0xCED0D0); |
|
- | 34 | } |
|
- | 35 | //area after slider |
|
- | 36 | if (sc_h-sc_slider_h+55>sc_slider_y) |
|
- | 37 | { |
|
- | 38 | DrawBar(sc_x+1, sc_slider_y + sc_slider_h+1, 15, 1, 0xC7C9C9); |
|
- | 39 | DrawBar(sc_x+1, sc_slider_y + sc_slider_h+2, 1, sc_h-sc_slider_h-sc_slider_y+55, 0xC7C9C9); |
|
16 | if (scroll_size>onTop(22,57)-on_y+56) || (files.first+files.visible>=files.count) on_y=onTop(23+scroll_size,0); //äëÿ áîëüøîãî ñïèñêà |
40 | DrawBar(sc_x+2, sc_slider_y + sc_slider_h+2, 14, sc_h-sc_slider_h-sc_slider_y+55, 0xCED0D0); |
17 | } |
- | |
18 | DrawFlatButton(Form.cwidth - 18,on_y,16,scroll_size,0,-1,"");//ïîëçóíîê |
- | |
19 | if (!scroll_used) for (i=0; i<13; i++) DrawBar(Form.cwidth - 16 + i, on_y+2, 1, scroll_size-3, col_palette[13-i]); |
- | |
20 | if (scroll_used) for (i=0; i<13; i++) DrawBar(Form.cwidth - 16 + i, on_y+2, 1, scroll_size-3, col_palette[i]); |
- | |
21 | //ïîëå äî ïîëçóíêà |
- | |
22 | if (on_y>58) DrawBar(Form.cwidth - 17,57,15,1, 0xC7C9C9); |
- | |
23 | DrawBar(Form.cwidth - 17,58,1, on_y-58,0xC7C9C9); |
- | |
24 | DrawBar(Form.cwidth - 16,58,14,on_y-58,0xCED0D0); |
- | |
25 | //ïîëå ïîñëå ïîëçóíêà |
- | |
26 | if (onTop(22,57)-scroll_size+55>on_y) DrawBar(Form.cwidth - 17,on_y+scroll_size+1,15,1,0xC7C9C9); |
- | |
27 | DrawBar(Form.cwidth - 17,on_y+scroll_size+2,1,onTop(22,57)-scroll_size-on_y+55,0xC7C9C9); |
- | |
28 | DrawBar(Form.cwidth - 16,on_y+scroll_size+2,14,onTop(22,57)-scroll_size-on_y+55,0xCED0D0); |
41 | } |
Line 29... | Line 42... | ||
29 | } |
42 | } |
30 | 43 | ||
31 | void DrawFlatButton(dword x,y,width,height,id,color,text) |
44 | void DrawFlatButton(dword x,y,width,height,id,color,text) |