@CompareProjects.h 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class CompareProjects : PropWin
  4. {
  5. class ElmListElm // project element as list element
  6. {
  7. cchar8 *type_name;
  8. Str name;
  9. UID id;
  10. ELM_TYPE type;
  11. void setElm(C Project &proj, C Elm &elm);
  12. public:
  13. ElmListElm();
  14. };
  15. bool test_data, test_name, test_parent, test_publish, display_new;
  16. flt prop_min_y;
  17. Button select_selected, select_all;
  18. Memc<Project > projects;
  19. Memc<ElmListElm> data;
  20. List<ElmListElm> list;
  21. Region region;
  22. //ViewportSkin preview;
  23. /*static void DrawPreview(Viewport &viewport) {SizeStats.drawPreview();}
  24. void drawPreview()
  25. {
  26. if(ElmListElm *list_elm=list())
  27. {
  28. if(list_elm.type==ELM_IMAGE) // for images and textures read them directly from the data
  29. {
  30. // load
  31. if(image_id!=list_elm.id)
  32. {
  33. image_id=list_elm.id;
  34. Str name=(list_elm.path.is() ? list_elm.path : path+EncodeFileName(image_id));
  35. File f; if(pak.totalFiles())f.readTry(name, pak);else f.readTry(name);
  36. image.load(f);
  37. }
  38. // draw
  39. ALPHA_MODE alpha=D.alpha();
  40. if(!list_elm.proj_elm)D.alpha(ALPHA_NONE); // disable alpha blending for textures
  41. Rect rect=image.fit(D.viewRect());
  42. if(image.mode()==IMAGE_CUBE)image.drawCubeFace(WHITE, TRANSPARENT, rect, DIR_FORWARD);
  43. else image.draw (rect);
  44. D.alpha(alpha);
  45. TextStyleParams ts; ts.align.set(1, 1); D.text(ts, D.viewRect().ld(), S+image.w()+'x'+image.h()+' '+ImageTI[image.type()].name+", "+image.mipMaps()+" MipMap"+CountS(image.mipMaps()));
  46. }else // other elements preview as normal for simplification
  47. if(list_elm.proj_elm)if(Elm *elm=Proj.findElm(list_elm.id))Preview.draw(*elm, D.viewRect());
  48. }
  49. }*/
  50. static void Changed(C Property &prop);
  51. static void SelectSel(CompareProjects &cp);
  52. static void SelectAll(CompareProjects &cp);
  53. void release();
  54. virtual CompareProjects& del ()override;
  55. virtual CompareProjects& hide()override;
  56. virtual CompareProjects& rect(C Rect &rect)override;
  57. void create();
  58. static bool DiffElm(C Project &proj_a, C Elm &elm_a, C Project &proj_b, C Elm &elm_b);
  59. void refresh();
  60. void changed(C UID &proj_id);
  61. void compare(C MemPtr<UID> &proj_ids);
  62. virtual void update(C GuiPC &gpc)override;
  63. public:
  64. CompareProjects();
  65. };
  66. /******************************************************************************/
  67. /******************************************************************************/
  68. extern CompareProjects CompareProjs;
  69. /******************************************************************************/