BsGUIVector2Field.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. #include "BsGUIVector2Field.h"
  2. #include "BsGUIArea.h"
  3. #include "BsGUILayout.h"
  4. #include "BsGUILabel.h"
  5. #include "BsGUIFloatField.h"
  6. #include "BsBuiltinResources.h"
  7. #include "BsGUIWidget.h"
  8. #include "BsGUIMouseEvent.h"
  9. #include "BsGUIWidget.h"
  10. using namespace CamelotFramework;
  11. using namespace BansheeEngine;
  12. namespace BansheeEditor
  13. {
  14. const UINT32 GUIVector2Field::ELEMENT_LABEL_WIDTH = 10;
  15. GUIVector2Field::GUIVector2Field(const PrivatelyConstruct& dummy, const GUIContent& labelContent,
  16. CM::UINT32 labelWidth, const CM::String& labelStyle, const CM::String& inputBoxStyle, const GUILayoutOptions& layoutOptions, bool withLabel)
  17. :TGUIField(dummy, labelContent, labelWidth, labelStyle, layoutOptions, withLabel), mFieldX(nullptr), mFieldY(nullptr)
  18. {
  19. mFieldX = GUIFloatField::create(HString(L"X"), ELEMENT_LABEL_WIDTH, labelStyle, inputBoxStyle);
  20. mFieldY = GUIFloatField::create(HString(L"Y"), ELEMENT_LABEL_WIDTH, labelStyle, inputBoxStyle);
  21. mLayout->removeElement(mLabel);
  22. GUILayout* layout = &mLayout->addLayoutY();
  23. layout->addElement(mLabel);
  24. GUILayout* elementLayout = &layout->addLayoutX();
  25. elementLayout->addElement(mFieldX);
  26. elementLayout->addElement(mFieldY);
  27. }
  28. Vector2 GUIVector2Field::getValue() const
  29. {
  30. Vector2 value;
  31. value.x = mFieldX->getValue();
  32. value.y = mFieldY->getValue();
  33. return value;
  34. }
  35. void GUIVector2Field::setValue(const Vector2& value)
  36. {
  37. mFieldX->setValue(value.x);
  38. mFieldY->setValue(value.y);
  39. }
  40. const String& GUIVector2Field::getGUITypeName()
  41. {
  42. static String typeName = "GUIVector2Field";
  43. return typeName;
  44. }
  45. }