Subversion Repositories Kolibri OS

Rev

Rev 6662 | Rev 7639 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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.  
  7. void SelectList_Init(dword _x, _y, _w, _h, _no_selection)
  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.  
  14. void SelectList_Draw()
  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<list_last; i++;)
  23.         {
  24.                 DrawBar(select_list.x,i*select_list.item_h+select_list.y,select_list.w, select_list.item_h, 0xFFFfff);
  25.                 SelectList_DrawLine(i); //NEED TO BE IMPLEMENTED IN APP
  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);
  30.         SelectList_DrawScroller();
  31. }
  32.  
  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();
  45.  
  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.  
  54. void SelectList_DrawBorder() {
  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);
  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. }
  61.  
  62. void SelectList_DrawScroller()
  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);
  78. }
  79.