2
0

BsGUITextField.h 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. #pragma once
  2. #include "BsEditorPrerequisites.h"
  3. #include "BsGUIElementContainer.h"
  4. namespace BansheeEngine
  5. {
  6. class BS_ED_EXPORT GUITextField : public GUIElementContainer
  7. {
  8. struct PrivatelyConstruct {};
  9. public:
  10. static const String& getLabelStyleType();
  11. static const String& getGUITypeName();
  12. static const String& getInputStyleType();
  13. static GUITextField* create(bool multiline, const GUIContent& labelContent, UINT32 labelWidth, const GUIOptions& options,
  14. const String& style = StringUtil::BLANK);
  15. static GUITextField* create(bool multiline, const GUIContent& labelContent, const GUIOptions& options,
  16. const String& style = StringUtil::BLANK);
  17. static GUITextField* create(bool multiline, const HString& labelText, UINT32 labelWidth, const GUIOptions& options,
  18. const String& style = StringUtil::BLANK);
  19. static GUITextField* create(bool multiline, const HString& labelText, const GUIOptions& options,
  20. const String& style = StringUtil::BLANK);
  21. static GUITextField* create(bool multiline, const GUIOptions& options, const String& style = StringUtil::BLANK);
  22. static GUITextField* create(bool multiline, const GUIContent& labelContent, UINT32 labelWidth,
  23. const String& style = StringUtil::BLANK);
  24. static GUITextField* create(bool multiline, const GUIContent& labelContent,
  25. const String& style = StringUtil::BLANK);
  26. static GUITextField* create(bool multiline, const HString& labelText, UINT32 labelWidth,
  27. const String& style = StringUtil::BLANK);
  28. static GUITextField* create(bool multiline, const HString& labelText,
  29. const String& style = StringUtil::BLANK);
  30. static GUITextField* create(bool multiline, const String& style = StringUtil::BLANK);
  31. GUITextField(const PrivatelyConstruct& dummy, bool multiline, const GUIContent& labelContent, UINT32 labelWidth,
  32. const String& style, const GUIDimensions& dimensions, bool withLabel);
  33. void _updateLayoutInternal(const GUILayoutData& data);
  34. Vector2I _getOptimalSize() const;
  35. WString getValue() const { return mValue; }
  36. void setValue(const WString& value);
  37. bool hasInputFocus() const { return mHasInputFocus; }
  38. /**
  39. * @copydoc GUIElement::setTint
  40. */
  41. virtual void setTint(const Color& color);
  42. Event<void(const WString&)> onValueChanged;
  43. protected:
  44. static const UINT32 DEFAULT_LABEL_WIDTH;
  45. virtual ~GUITextField();
  46. void styleUpdated();
  47. void valueChanged(const WString& newValue);
  48. void focusGained();
  49. void focusLost();
  50. GUIInputBox* mInputBox;
  51. GUILayout* mLayout;
  52. GUILabel* mLabel;
  53. bool mHasInputFocus;
  54. WString mValue;
  55. };
  56. }