Subversion Repositories Kolibri OS

Rev

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

  1. struct s_image
  2. {
  3.         dword *image;
  4.         char path[4096];
  5. };
  6.  
  7. s_image pics[100]; //pics = mem_Alloc( 100*sizeof(s_image) );
  8.  
  9. struct ImageCache {
  10.         int pics_count;
  11.         void Free();
  12.         int GetImage();
  13.         void Images();
  14. };
  15.  
  16. void ImageCache::Free()
  17. {
  18.         for ( ; pics_count>0; pics_count--)
  19.         {
  20.                 if (pics[pics_count].image) img_destroy stdcall (pics[pics_count].image);
  21.                 pics[pics_count].path = NULL;
  22.         }
  23. }
  24.  
  25. int ImageCache::GetImage(dword i_path)
  26. {
  27.         int i;
  28.         return 0;
  29.         for (i=0; i<=pics_count; i++) if (!strcmp(#pics[i].path, i_path)) return i; //image exists
  30.         // Load image and add it to Cache
  31.         pics_count++;
  32.         //pics[pics_count].image = load_EEERRRR_image(i_path);
  33.         //strcpy(#pics[pics_count].path, i_path);
  34.         return pics_count;
  35. }
  36.  
  37.  
  38. void ImageCache::Images(dword left1, top1, width1)
  39. {
  40.         dword image;
  41.     dword imgw=0, imgh=0, img_lines_first=0, cur_pic=0;
  42.        
  43.         //GetAbsoluteURL(#img_path);
  44.         //cur_pic = GetImage(#img_path);
  45.  
  46.         if (!pics[cur_pic].image)
  47.         {
  48.                 //cur_pic = GetImage("/sys/network/noimg.png");
  49.                 return;
  50.         }
  51.        
  52.         imgw = DSWORD[pics[cur_pic].image+4];
  53.         imgh = DSWORD[pics[cur_pic].image+8];
  54.         if (imgw > width1) imgw = width1;
  55.        
  56.         /*
  57.         draw_y += imgh + 5; TEMPORARY TURN OFF!!!
  58.        
  59.         if (top1+imgh<WB1.list.y) || (top1>WB1.list.y+WB1.list.h-10) return; //if all image is out of visible area
  60.         if (top1<WB1.list.y) //if image partly visible (at the top)
  61.         {
  62.                 img_lines_first=WB1.list.y-top1;
  63.                 imgh=imgh-img_lines_first;
  64.                 top1=WB1.list.y;
  65.         }
  66.         if (top1>WB1.list.y+WB1.list.h-imgh-5) //if image partly visible (at the bottom)
  67.         {
  68.                 imgh=WB1.list.y+WB1.list.h-top1-5;
  69.         }      
  70.         if (imgh<=0) return;
  71.        
  72.         img_draw stdcall (pics[cur_pic].image, left1-5, top1, imgw, imgh,0,img_lines_first);
  73.         DrawBar(left1+imgw - 5, top1, WB1.list.w-imgw, imgh, page_bg);
  74.         DrawBar(WB1.list.x, top1+imgh, WB1.list.w, -imgh % WB1.list.item_h + WB1.list.item_h, page_bg);
  75.         if (link)
  76.         {
  77.                 UnsafeDefineButton(left1 - 5, top1, imgw, imgh-1, links.count + 400 + BT_HIDE, 0xB5BFC9);
  78.                 links.AddText(0, imgw, imgh-1, NOLINE, 1);
  79.                 WB1.DrawPage();
  80.         }
  81.         */
  82. }
  83.  
  84. ImageCache ImgCache;