UILayout.cpp 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596
  1. #include <TurboBadger/tb_widgets.h>
  2. #include <TurboBadger/tb_widgets_common.h>
  3. #include <TurboBadger/tb_layout.h>
  4. #include "UI.h"
  5. #include "UIEvents.h"
  6. #include "UIWidget.h"
  7. #include "UILayout.h"
  8. using namespace tb;
  9. namespace Atomic
  10. {
  11. UILayoutParams::UILayoutParams(Context* context) : Object(context)
  12. {
  13. }
  14. UILayoutParams::~UILayoutParams()
  15. {
  16. }
  17. UILayout::UILayout(Context* context, bool createWidget) : UIWidget(context, false)
  18. {
  19. if (createWidget)
  20. {
  21. widget_ = new TBLayout();
  22. widget_->SetDelegate(this);
  23. widget_->SetGravity(WIDGET_GRAVITY_ALL);
  24. GetSubsystem<UI>()->WrapWidget(this, widget_);
  25. }
  26. }
  27. UILayout::~UILayout()
  28. {
  29. }
  30. void UILayout::SetSpacing(int spacing)
  31. {
  32. if (!widget_)
  33. return;
  34. ((tb::TBLayout*)widget_)->SetSpacing(spacing);
  35. }
  36. void UILayout::SetLayoutPosition(UI_LAYOUT_POSITION position)
  37. {
  38. if (!widget_)
  39. return;
  40. ((tb::TBLayout*)widget_)->SetLayoutPosition( (LAYOUT_POSITION) position);
  41. }
  42. void UILayout::SetLayoutDistributionPosition(UI_LAYOUT_DISTRIBUTION_POSITION distribution_pos)
  43. {
  44. if (!widget_)
  45. return;
  46. ((tb::TBLayout*)widget_)->SetLayoutDistributionPosition( (LAYOUT_DISTRIBUTION_POSITION) distribution_pos);
  47. }
  48. void UILayout::SetLayoutSize(UI_LAYOUT_SIZE size)
  49. {
  50. if (!widget_)
  51. return;
  52. ((tb::TBLayout*)widget_)->SetLayoutSize((LAYOUT_SIZE) size);
  53. }
  54. void UILayout::SetAxis(UI_AXIS axis)
  55. {
  56. if (!widget_)
  57. return;
  58. ((tb::TBLayout*)widget_)->SetAxis((AXIS) axis);
  59. }
  60. void UILayout::SetLayoutDistribution(UI_LAYOUT_DISTRIBUTION distribution)
  61. {
  62. if (!widget_)
  63. return;
  64. ((tb::TBLayout*)widget_)->SetLayoutDistribution((LAYOUT_DISTRIBUTION) distribution);
  65. }
  66. bool UILayout::OnEvent(const tb::TBWidgetEvent &ev)
  67. {
  68. return UIWidget::OnEvent(ev);
  69. }
  70. }