@ObjPaintClass.h 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class ObjPaintClass : PropWin
  4. {
  5. class Object
  6. {
  7. UID id;
  8. ObjectPtr obj;
  9. Elm *elm;
  10. public:
  11. Object();
  12. };
  13. class Mtrl : ImageSkin
  14. {
  15. UID id;
  16. MaterialPtr mtrl;
  17. Button remove;
  18. virtual void update(C GuiPC &gpc)override;
  19. public:
  20. Mtrl();
  21. };
  22. static void Hide (ObjPaintClass &op);
  23. static Str ElmName (C UID &elm_id);
  24. static void ClearObjs (ObjPaintClass&op);
  25. static void RemoveObj (ptr p );
  26. static void RemoveMtrl(Mtrl &mtrl);
  27. static void GetMtrlA (ptr);
  28. static void GetMtrlD (ptr);
  29. static void Copy (ObjPaintClass&op);
  30. static void Paste (ObjPaintClass&op);
  31. flt collision, random_scale, scale_mul, align_normal, flow;
  32. Text objects_t, allowed_mtrls_t, disallowed_mtrls_t;
  33. Region objects_r, allowed_mtrls_r, disallowed_mtrls_r;
  34. Button allowed_mtrls_g, disallowed_mtrls_g, objects_clear, copy, paste;
  35. Memc<Object> objects_data;
  36. List<Object> objects_list;
  37. Memc<const_mem_addr Button> objects_remove; // watch out for const_mem_addr
  38. Memx<Mtrl> allowed_mtrls, disallowed_mtrls;
  39. TextBlack ts;
  40. bool ready ()C;
  41. bool available()C;
  42. void clearObjs();
  43. void clearProj();
  44. void removeObj(int i);
  45. void removeMtrl(Mtrl &mtrl);
  46. void toGuiObjs();
  47. void toGuiMtrls(Memx<Mtrl> &mtrls, Region&region);
  48. void copyDo();
  49. void pasteDo();
  50. void save(TextData &data)C;
  51. void load(C TextData &data);
  52. ObjPaintClass& create();
  53. virtual void update(C GuiPC &gpc)override;
  54. void erasing(C UID &elm_id);
  55. bool hasMtrl (Memx<Mtrl> &mtrls, C MaterialPtr &mtrl )C;
  56. bool hasMtrl (Memx<Mtrl> &mtrls, C UID &mtrl_id)C;
  57. bool includeMtrls(C MemPtr<UID> &elms, Memx<Mtrl> &mtrls);
  58. bool hasObj (C UID &obj_id)C;
  59. bool includeObjs(C MemPtr<UID> &elms);
  60. void drag(Memc<UID> &elms, GuiObj *focus_obj, C Vec2 &screen_pos);
  61. public:
  62. ObjPaintClass();
  63. };
  64. /******************************************************************************/
  65. /******************************************************************************/
  66. extern ObjPaintClass ObjPaint;
  67. /******************************************************************************/