UILayout.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  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, UI_AXIS axis, 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. widget_->SetAxis((AXIS) axis);
  25. GetSubsystem<UI>()->WrapWidget(this, widget_);
  26. }
  27. }
  28. UILayout::~UILayout()
  29. {
  30. }
  31. void UILayout::SetSpacing(int spacing)
  32. {
  33. if (!widget_)
  34. return;
  35. ((tb::TBLayout*)widget_)->SetSpacing(spacing);
  36. }
  37. void UILayout::SetLayoutPosition(UI_LAYOUT_POSITION position)
  38. {
  39. if (!widget_)
  40. return;
  41. ((tb::TBLayout*)widget_)->SetLayoutPosition( (LAYOUT_POSITION) position);
  42. }
  43. void UILayout::SetLayoutDistributionPosition(UI_LAYOUT_DISTRIBUTION_POSITION distribution_pos)
  44. {
  45. if (!widget_)
  46. return;
  47. ((tb::TBLayout*)widget_)->SetLayoutDistributionPosition( (LAYOUT_DISTRIBUTION_POSITION) distribution_pos);
  48. }
  49. void UILayout::SetLayoutSize(UI_LAYOUT_SIZE size)
  50. {
  51. if (!widget_)
  52. return;
  53. ((tb::TBLayout*)widget_)->SetLayoutSize((LAYOUT_SIZE) size);
  54. }
  55. void UILayout::SetAxis(UI_AXIS axis)
  56. {
  57. if (!widget_)
  58. return;
  59. ((tb::TBLayout*)widget_)->SetAxis((AXIS) axis);
  60. }
  61. void UILayout::SetLayoutDistribution(UI_LAYOUT_DISTRIBUTION distribution)
  62. {
  63. if (!widget_)
  64. return;
  65. ((tb::TBLayout*)widget_)->SetLayoutDistribution((LAYOUT_DISTRIBUTION) distribution);
  66. }
  67. bool UILayout::OnEvent(const tb::TBWidgetEvent &ev)
  68. {
  69. return UIWidget::OnEvent(ev);
  70. }
  71. }