Subversion Repositories Kolibri OS

Rev

Rev 4493 | Go to most recent revision | Blame | Last modification | View Log | Download | RSS feed

  1. CustomCursor CursorPointer;
  2. dword CursorFile = FROM "../TWB/pointer.cur";
  3.  
  4. struct array_link {
  5.         dword link, text;
  6.         int x,y,w,h;
  7. };
  8.  
  9. struct LinksArray
  10. {
  11.         array_link links[200];
  12.         char page_links[64000];
  13.         dword buflen;
  14.         int count, active;
  15.  
  16.         void Hover();
  17.         void AddLink();
  18.         void AddText();
  19.         dword GetURL();
  20.         void Clear();
  21. };
  22.  
  23. void LinksArray::AddLink(dword new_link, int link_x, link_y)
  24. {
  25.         links[count].x = link_x;
  26.         links[count].y = link_y;
  27.  
  28.         links[count].link = buflen;
  29.         strcpy(buflen, new_link);
  30.         buflen += strlen(new_link)+1;
  31.         count++;
  32. }
  33.  
  34. void LinksArray::AddText(dword new_text, int link_w, link_h)
  35. {
  36.         if (count<1) return;
  37.         links[count-1].w = link_w;
  38.         links[count-1].h = link_h;
  39.  
  40.         links[count-1].text = buflen;
  41.         strcpy(buflen, new_text);
  42.         buflen += strlen(new_text)+1;
  43. }
  44.  
  45. dword LinksArray::GetURL(int id)
  46. {
  47.         return links[id].link;
  48. }
  49.  
  50. void LinksArray::Clear()
  51. {
  52.         int i;
  53.         for (i=0; i<=count; i++) DeleteButton(i+400);
  54.         buflen = #page_links;
  55.         count = 0;
  56.         active = -1;
  57.         CursorPointer.Restore();
  58. }
  59.  
  60.  
  61. void LinksArray::Hover(dword mx, my, link_col_in, link_col_a, bg_col)
  62. {
  63.         int i;
  64.         for (i=0; i<count; i++)
  65.         {
  66.                 if (mx>links[i].x) && (my>links[i].y) && (mx<links[i].x+links[i].w) && (my<links[i].y+links[i].h)
  67.                 {
  68.                         if (active==i) return;
  69.                         CursorPointer.Set();
  70.                         DrawBar(links[active].x,links[active].y+8,links[active].w,1, link_col_in);
  71.                         DrawBar(links[i].x,links[i].y+8,links[i].w,1, bg_col);
  72.                         active = i;
  73.                         return;
  74.                 }
  75.         }
  76.         if (active!=-1)
  77.         {
  78.                 CursorPointer.Restore();
  79.                 DrawBar(links[active].x,links[active].y+8,links[active].w,1, link_col_in);
  80.                 active = -1;
  81.         }
  82. }
  83.  
  84.  
  85. LinksArray PageLinks;
  86.