PolyUITreeContainer.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. * PolyUITreeContainer.cpp
  3. * Poly
  4. *
  5. * Created by Ivan Safrin on 3/18/10.
  6. * Copyright 2010 Ivan Safrin. All rights reserved.
  7. *
  8. */
  9. #include "PolyUITreeContainer.h"
  10. using namespace Polycode;
  11. UITreeContainer::UITreeContainer(String icon, String text, Number treeWidth, Number treeHeight) : ScreenEntity() {
  12. Config *conf = CoreServices::getInstance()->getConfig();
  13. Number st = conf->getNumericValue("Polycode", "uiTreeContainerSkinT");
  14. Number sr = conf->getNumericValue("Polycode", "uiTreeContainerSkinR");
  15. Number sb = conf->getNumericValue("Polycode", "uiTreeContainerSkinB");
  16. Number sl = conf->getNumericValue("Polycode", "uiTreeContainerSkinL");
  17. Number padding = conf->getNumericValue("Polycode", "uiTreeContainerSkinPadding");
  18. // Number scrollBarOffset = conf->getNumericValue("Polycode", "uiTreeContainerScrollBarOffset");
  19. bgBox = new UIBox(conf->getStringValue("Polycode", "uiTreeContainerSkin"),
  20. st,sr,sb,sl,
  21. treeWidth, treeHeight);
  22. addChild(bgBox);
  23. //bgBox->setPosition(-padding, -padding);
  24. scrollChild = new ScreenEntity();
  25. rootNode = new UITree(icon, text, treeWidth,0);
  26. rootNode->addEventListener(this, UITreeEvent::NEED_REFRESH_EVENT);
  27. scrollChild->addChild(rootNode);
  28. mainContainer = new UIScrollContainer(scrollChild, false, true, treeWidth-conf->getNumericValue("Polycode", "uiScrollDefaultSize"), treeHeight);
  29. addChild(mainContainer);
  30. width = treeWidth;
  31. height = treeHeight;
  32. hitwidth = width;
  33. hitheight = height;
  34. }
  35. void UITreeContainer::Resize(int x, int y) {
  36. mainContainer->Resize(x,y);
  37. bgBox->resizeBox(x, y);
  38. mainContainer->setPositionY(0);
  39. // width = x;
  40. // height = y;
  41. hitwidth = x;
  42. hitheight = y;
  43. }
  44. void UITreeContainer::handleEvent(Event *event) {
  45. if(event->getDispatcher() == rootNode) {
  46. if(event->getEventCode() == UITreeEvent::NEED_REFRESH_EVENT) {
  47. mainContainer->setContentSize(rootNode->getWidth(), rootNode->getHeight());
  48. }
  49. }
  50. }
  51. UITree *UITreeContainer::getRootNode() {
  52. return rootNode;
  53. }
  54. UITreeContainer::~UITreeContainer() {
  55. }