Rev 6662 | Rev 7639 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
6651 | leency | 1 | llist select_list; |
2 | scroll_bar scroll1 = { 18,200,398, 44,18,0,115,15,0,0xeeeeee,0xD2CED0,0x555555,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1}; |
||
3 | dword select_list_count_offset; |
||
4 | |||
5 | ?define T_SELECT_LIST_NO_DATA "No data to show" |
||
6 | |||
6653 | leency | 7 | void SelectList_Init(dword _x, _y, _w, _h, _no_selection) |
6651 | leency | 8 | { |
9 | select_list.no_selection = _no_selection; |
||
10 | select_list.SetFont(8, 14, 0x90); |
||
11 | select_list.SetSizes(_x, _y, _w, _h, 20); |
||
12 | } |
||
13 | |||
6653 | leency | 14 | void SelectList_Draw() |
6651 | leency | 15 | { |
16 | int i, list_last; |
||
17 | |||
18 | select_list.CheckDoesValuesOkey(); |
||
19 | |||
20 | if (select_list.count > select_list.visible) list_last = select_list.visible; else list_last = select_list.count; |
||
21 | |||
22 | for (i=0; i |
||
23 | { |
||
24 | DrawBar(select_list.x,i*select_list.item_h+select_list.y,select_list.w, select_list.item_h, 0xFFFfff); |
||
6653 | leency | 25 | SelectList_DrawLine(i); //NEED TO BE IMPLEMENTED IN APP |
6651 | leency | 26 | } |
27 | DrawBar(select_list.x,i*select_list.item_h+select_list.y, select_list.w, -i*select_list.item_h+ select_list.h, 0xFFFfff); |
||
28 | if (!select_list.count) WriteText(-strlen(T_SELECT_LIST_NO_DATA)*select_list.font_w + select_list.w / 2 + select_list.x + 1, |
||
29 | select_list.h / 2 - 8 + select_list.y, select_list.font_type, 0x999999, T_SELECT_LIST_NO_DATA); |
||
6653 | leency | 30 | SelectList_DrawScroller(); |
6651 | leency | 31 | } |
32 | |||
6653 | leency | 33 | void SelectList_ProcessMouse() |
34 | { |
||
35 | int mouse_clicked; |
||
36 | mouse.get(); |
||
37 | scrollbar_v_mouse (#scroll1); |
||
38 | if (select_list.first != scroll1.position) |
||
39 | { |
||
40 | select_list.first = scroll1.position; |
||
41 | SelectList_Draw(); |
||
42 | } |
||
43 | |||
44 | if (mouse.vert) && (select_list.MouseScroll(mouse.vert)) SelectList_Draw(); |
||
6651 | leency | 45 | |
6653 | leency | 46 | if (mouse.up)&&(mouse_clicked) |
47 | { |
||
48 | if (mouse.lkm) && (select_list.ProcessMouse(mouse.x, mouse.y)) SelectList_LineChanged(); |
||
49 | mouse_clicked=false; |
||
50 | } |
||
51 | else if (mouse.down)&&(mouse.lkm) && (select_list.MouseOver(mouse.x, mouse.y)) mouse_clicked=true; |
||
52 | } |
||
53 | |||
6662 | leency | 54 | void SelectList_DrawBorder() { |
6686 | leency | 55 | DrawRectangle3D(select_list.x-2, select_list.y-2, |
56 | select_list.w+3+scroll1.size_x, select_list.h+3, |
||
57 | MixColors(system.color.work, system.color.work_dark, 125), |
||
58 | system.color.work_light); |
||
6662 | leency | 59 | DrawRectangle(select_list.x-1, select_list.y-1, select_list.w+1+scroll1.size_x, select_list.h+1, system.color.work_graph); |
60 | } |
||
6653 | leency | 61 | |
62 | void SelectList_DrawScroller() |
||
6651 | leency | 63 | { |
64 | scroll1.bckg_col = MixColors(system.color.work, 0xBBBbbb, 80); |
||
65 | scroll1.frnt_col = MixColors(system.color.work,0xFFFfff,120); |
||
66 | scroll1.line_col = system.color.work_graph; |
||
67 | |||
68 | scroll1.max_area = select_list.count; |
||
69 | scroll1.cur_area = select_list.visible; |
||
70 | scroll1.position = select_list.first; |
||
71 | |||
72 | scroll1.all_redraw=1; |
||
73 | scroll1.start_x = select_list.x + select_list.w; |
||
74 | scroll1.start_y = select_list.y-1; |
||
75 | scroll1.size_y = select_list.h+2; |
||
76 | |||
77 | scrollbar_v_draw(#scroll1); |
||
6653 | leency | 78 | } |