AbsoluteLayout.cpp 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "Base.h"
  2. #include "Control.h"
  3. #include "AbsoluteLayout.h"
  4. #include "Container.h"
  5. namespace gameplay
  6. {
  7. static AbsoluteLayout* __instance;
  8. AbsoluteLayout::AbsoluteLayout()
  9. {
  10. }
  11. AbsoluteLayout::AbsoluteLayout(const AbsoluteLayout& copy)
  12. {
  13. }
  14. AbsoluteLayout::~AbsoluteLayout()
  15. {
  16. __instance = NULL;
  17. }
  18. AbsoluteLayout* AbsoluteLayout::create()
  19. {
  20. if (!__instance)
  21. {
  22. __instance = new AbsoluteLayout();
  23. }
  24. else
  25. {
  26. __instance->addRef();
  27. }
  28. return __instance;
  29. }
  30. Layout::Type AbsoluteLayout::getType()
  31. {
  32. return Layout::LAYOUT_ABSOLUTE;
  33. }
  34. void AbsoluteLayout::update(const Container* container)
  35. {
  36. GP_ASSERT(container);
  37. // An AbsoluteLayout does nothing to modify the layout of Controls.
  38. std::vector<Control*> controls = container->getControls();
  39. unsigned int controlsCount = controls.size();
  40. for (unsigned int i = 0; i < controlsCount; i++)
  41. {
  42. Control* control = controls[i];
  43. GP_ASSERT(control);
  44. align(control, container);
  45. control->update(container->getClip(), Vector2::zero());
  46. }
  47. }
  48. }