PolyUIBox.cpp 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. /*
  2. * PolyUIBox.cpp
  3. * Poly
  4. *
  5. * Created by Ivan Safrin on 3/16/10.
  6. * Copyright 2010 Ivan Safrin. All rights reserved.
  7. *
  8. */
  9. #include "PolyUIBox.h"
  10. using namespace Polycode;
  11. UIBox::UIBox(String imageFile, float t, float r, float b, float l, float boxWidth, float boxHeight) : ScreenEntity() {
  12. setPositionMode(ScreenEntity::POSITION_TOPLEFT);
  13. width=boxWidth;
  14. height = boxHeight;
  15. hitwidth = boxWidth;
  16. hitheight = boxHeight;
  17. tlImage = new ScreenImage(imageFile);
  18. tlImage->setImageCoordinates(0,0,l,t);
  19. addChild(tlImage);
  20. tlImage->setPosition(0, 0);
  21. trImage = new ScreenImage(imageFile);
  22. trImage->setImageCoordinates(trImage->getWidth()-r,0,r,t);
  23. addChild(trImage);
  24. trImage->setPosition(boxWidth-r, 0);
  25. blImage = new ScreenImage(imageFile);
  26. blImage->setImageCoordinates(0,blImage->getHeight()-b,l,b);
  27. addChild(blImage);
  28. blImage->setPosition(0, boxHeight-b);
  29. brImage = new ScreenImage(imageFile);
  30. brImage->setImageCoordinates(brImage->getWidth()-r,brImage->getHeight()-b,r,b);
  31. addChild(brImage);
  32. brImage->setPosition(boxWidth-r, boxHeight-b);
  33. centerImage = new ScreenImage(imageFile);
  34. centerImage->setImageCoordinates(l,t,centerImage->getWidth()-l-r, centerImage->getHeight()-t-b);
  35. addChild(centerImage);
  36. centerImage->setPosition(l,t);
  37. centerImage->setShapeSize(boxWidth-l-r, boxHeight-t-b);
  38. tImage = new ScreenImage(imageFile);
  39. tImage->setImageCoordinates(l,0,tImage->getWidth()-l-r,t);
  40. addChild(tImage);
  41. tImage->setPosition(l,0);
  42. tImage->setShapeSize(boxWidth-l-r, t);
  43. bImage = new ScreenImage(imageFile);
  44. bImage->setImageCoordinates(l,bImage->getHeight()-b,bImage->getWidth()-l-r,b);
  45. addChild(bImage);
  46. bImage->setPosition(l,boxHeight-b);
  47. bImage->setShapeSize(boxWidth-l-r, b);
  48. lImage = new ScreenImage(imageFile);
  49. lImage->setImageCoordinates(0,t,l,lImage->getHeight()-t-b);
  50. addChild(lImage);
  51. lImage->setPosition(0,t);
  52. lImage->setShapeSize(l, boxHeight-t-b);
  53. rImage = new ScreenImage(imageFile);
  54. rImage->setImageCoordinates(rImage->getWidth()-r,t,r,rImage->getHeight()-t-b);
  55. addChild(rImage);
  56. rImage->setPosition(boxWidth-r,t);
  57. rImage->setShapeSize(r, boxHeight-t-b);
  58. this->t = t;
  59. this->r = r;
  60. this->b = b;
  61. this->l = l;
  62. }
  63. void UIBox::resizeBox(float newWidth, float newHeight) {
  64. brImage->setPosition(newWidth-brImage->getWidth(), newHeight-brImage->getHeight());
  65. trImage->setPosition(newWidth-trImage->getWidth(), 0);
  66. blImage->setPosition(0, newHeight-blImage->getHeight());
  67. centerImage->setShapeSize(newWidth-l-r, newHeight-t-b);
  68. lImage->setShapeSize(l, newHeight-t-b);
  69. rImage->setShapeSize(r, newHeight-t-b);
  70. bImage->setShapeSize(newWidth-l-r, b);
  71. tImage->setShapeSize(newWidth-l-r, t);
  72. bImage->setPosition(bImage->getPosition().x, newHeight-bImage->getHeight());
  73. rImage->setPosition(newWidth-rImage->getWidth(),rImage->getPosition().y);
  74. width=newWidth;
  75. height = newHeight;
  76. hitwidth = newWidth;
  77. hitheight = newHeight;
  78. this->rebuildTransformMatrix();
  79. }
  80. UIBox::~UIBox() {
  81. }