PolyUITreeContainer.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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, wstring text, float treeWidth, float treeHeight) : ScreenEntity() {
  12. Config *conf = CoreServices::getInstance()->getConfig();
  13. float st = conf->getNumericValue("Polycode", "uiTreeContainerSkinT");
  14. float sr = conf->getNumericValue("Polycode", "uiTreeContainerSkinR");
  15. float sb = conf->getNumericValue("Polycode", "uiTreeContainerSkinB");
  16. float sl = conf->getNumericValue("Polycode", "uiTreeContainerSkinL");
  17. float padding = conf->getNumericValue("Polycode", "uiTreeContainerSkinPadding");
  18. // float 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. }
  31. void UITreeContainer::Resize(int x, int y) {
  32. mainContainer->Resize(x,y);
  33. bgBox->resizeBox(x, y);
  34. mainContainer->setPositionY(0);
  35. }
  36. void UITreeContainer::handleEvent(Event *event) {
  37. if(event->getDispatcher() == rootNode) {
  38. if(event->getEventCode() == UITreeEvent::NEED_REFRESH_EVENT) {
  39. mainContainer->setContentSize(rootNode->getWidth(), rootNode->getHeight());
  40. }
  41. }
  42. }
  43. UITree *UITreeContainer::getRootNode() {
  44. return rootNode;
  45. }
  46. UITreeContainer::~UITreeContainer() {
  47. }