BsGUIVector4Field.cpp 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "BsGUIVector4Field.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. namespace BansheeEngine
  11. {
  12. const UINT32 GUIVector4Field::ELEMENT_LABEL_WIDTH = 10;
  13. GUIVector4Field::GUIVector4Field(const PrivatelyConstruct& dummy, const GUIContent& labelContent,
  14. UINT32 labelWidth, const String& labelStyle, const String& inputBoxStyle, const GUILayoutOptions& layoutOptions, bool withLabel)
  15. :TGUIField(dummy, labelContent, labelWidth, labelStyle, layoutOptions, withLabel), mFieldX(nullptr), mFieldY(nullptr)
  16. {
  17. mFieldX = GUIFloatField::create(HString(L"X"), ELEMENT_LABEL_WIDTH, labelStyle, inputBoxStyle);
  18. mFieldY = GUIFloatField::create(HString(L"Y"), ELEMENT_LABEL_WIDTH, labelStyle, inputBoxStyle);
  19. mFieldZ = GUIFloatField::create(HString(L"Z"), ELEMENT_LABEL_WIDTH, labelStyle, inputBoxStyle);
  20. mFieldW = GUIFloatField::create(HString(L"W"), 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. elementLayout->addElement(mFieldZ);
  28. elementLayout->addElement(mFieldW);
  29. }
  30. Vector4 GUIVector4Field::getValue() const
  31. {
  32. Vector4 value;
  33. value.x = mFieldX->getValue();
  34. value.y = mFieldY->getValue();
  35. value.z = mFieldZ->getValue();
  36. value.w = mFieldW->getValue();
  37. return value;
  38. }
  39. void GUIVector4Field::setValue(const Vector4& value)
  40. {
  41. mFieldX->setValue(value.x);
  42. mFieldY->setValue(value.y);
  43. mFieldZ->setValue(value.z);
  44. mFieldW->setValue(value.w);
  45. }
  46. const String& GUIVector4Field::getGUITypeName()
  47. {
  48. static String typeName = "GUIVector4Field";
  49. return typeName;
  50. }
  51. }