PolyUITree.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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, Number treeWidth, Number 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. Number 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. int getNumTreeChildren() { return treeChildren.size(); }
  40. UITree *getTreeChild(int index) { return treeChildren[index]; }
  41. void removeTreeChild(UITree *child);
  42. Number handleRotation;
  43. private:
  44. void *userData;
  45. Number treeWidth;
  46. Number treeOffset;
  47. UITree *selectedNode;
  48. UITree *parent;
  49. UIBox *selection;
  50. // UIBox *bgBox;
  51. ScreenShape *bgBox;
  52. ScreenLabel *textLabel;
  53. ScreenImage *iconImage;
  54. bool selected;
  55. Number treeHeight;
  56. vector<UITree*> treeChildren;
  57. bool collapsed;
  58. bool collapsing;
  59. ScreenImage *arrowIconImage;
  60. String arrowIcon;
  61. String fontName;
  62. int size;
  63. Number cellHeight;
  64. Number cellPadding;
  65. };
  66. }