@MeshVariations.h 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /******************************************************************************/
  2. /******************************************************************************/
  3. class MeshVariations : Window
  4. {
  5. class RenameVariation : ClosableWindow
  6. {
  7. int index; // number of elements before this one with similar name
  8. Str name;
  9. TextLine textline;
  10. static void Hide(RenameVariation &rv);
  11. void create();
  12. void activate(int variation);
  13. virtual void update(C GuiPC &gpc)override;
  14. public:
  15. RenameVariation();
  16. };
  17. class Variation
  18. {
  19. bool removed;
  20. Color color;
  21. int index;
  22. Button remove;
  23. void setColor();
  24. public:
  25. Variation();
  26. };
  27. static Str Removed(C Variation &p);
  28. static Str Name (C Variation &v);
  29. static void Remove(Variation &v);
  30. static void Remove();
  31. static void Rename();
  32. void renameVariation(int index, C Str &old_name, C Str &new_name);
  33. static void ClearName();
  34. void newVariation(C Str *name=null);
  35. static void Add(MeshVariations &mv);
  36. static void ListChanged(MeshVariations &mv);
  37. class ListVariation : List<Variation>
  38. {
  39. int getPos(C Vec2 &pos);
  40. virtual void draw(C GuiPC &gpc)override;
  41. };
  42. Memx<Variation> data;
  43. ListVariation list;
  44. Button add;
  45. Region region;
  46. Menu menu;
  47. RenameVariation rename;
  48. virtual Rect sizeLimit()C override;
  49. C Rect& rect();
  50. virtual MeshVariations& rect(C Rect&rect)override;
  51. void newMesh();
  52. void showMenu(C Vec2&pos);
  53. MeshVariations& create();
  54. static void DragVariations(MeshVariations &mv, GuiObj *obj, C Vec2 &screen_pos);
  55. void dragVariations( GuiObj *obj, C Vec2 &screen_pos);
  56. void erasedVariation(int variation);
  57. void drag(Memc<UID> &elms, GuiObj *focus_obj, C Vec2 &screen_pos);
  58. void refresh();
  59. virtual void update(C GuiPC &gpc)override;
  60. };
  61. /******************************************************************************/
  62. /******************************************************************************/
  63. /******************************************************************************/