PolyUITree.h 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. /*
  2. * PolyUITree.h
  3. * Poly
  4. *
  5. * Created by Ivan Safrin on 7/28/08.
  6. * Copyright 2008 __MyCompanyName__. All rights reserved.
  7. *
  8. */
  9. // @package UI
  10. #pragma once
  11. #include "PolyGlobals.h"
  12. #include "PolyScreenLabel.h"
  13. #include "PolyScreenImage.h"
  14. #include "PolyScreenShape.h"
  15. #include "PolyScreenEntity.h"
  16. #include "PolyUITreeEvent.h"
  17. #include "PolyUIBox.h"
  18. #include <vector>
  19. using std::vector;
  20. namespace Polycode {
  21. class _PolyExport UITree : public ScreenEntity {
  22. public:
  23. UITree(String icon, String text, float treeWidth, float treeOffset=0);
  24. ~UITree();
  25. void handleEvent(Event *event);
  26. void toggleCollapsed();
  27. UITree *addTreeChild(String icon, String text, void *userData = NULL);
  28. void Update();
  29. void refreshTree();
  30. float getTreeHeight();
  31. void setParent(UITree *parent);
  32. void clearSelection(UITree *selectedNode);
  33. bool isCollapsed();
  34. void *getUserData();
  35. void setUserData(void *data);
  36. UITree *getSelectedNode();
  37. void setIcon(String iconFile);
  38. void setSelected();
  39. float handleRotation;
  40. private:
  41. void *userData;
  42. float treeWidth;
  43. float treeOffset;
  44. UITree *selectedNode;
  45. UITree *parent;
  46. UIBox *selection;
  47. // UIBox *bgBox;
  48. ScreenShape *bgBox;
  49. ScreenLabel *textLabel;
  50. ScreenImage *iconImage;
  51. bool selected;
  52. float treeHeight;
  53. vector<UITree*> treeChildren;
  54. bool collapsed;
  55. bool collapsing;
  56. ScreenImage *arrowIconImage;
  57. String arrowIcon;
  58. String fontName;
  59. int size;
  60. float cellHeight;
  61. float cellPadding;
  62. };
  63. }