MT Showcase SDK
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
InputFieldWidget.hpp
1 #ifndef INPUTFIELDWIDGET_HPP
2 #define INPUTFIELDWIDGET_HPP
3 
4 #include "Export.hpp"
5 #include "TooltipWidget.hpp"
6 
7 #include <MultiWidgets/ImageTileWidget.hpp>
8 #include <MultiWidgets/TextEditWidget.hpp>
9 
10 #include <Valuable/AttributeAlias.hpp>
11 
12 namespace Showcase
13 {
23  class SHOWCASE_API InputFieldWidget : public MultiWidgets::ImageTileWidget
24  {
25  public:
26  InputFieldWidget(const MultiWidgets::WidgetPtr & parent = nullptr, bool required = false);
27  virtual ~InputFieldWidget();
28 
29  void setValidator(std::function<bool(const QString &)> validator);
30 
31  inline bool isValid() const { return m_valid; }
32 
33  void validate();
34  void resize();
35 
36  void showErrors(bool show = true);
37 
38  void reset();
39 
40  const QString & text() const;
41 
42  MultiWidgets::TextEditWidgetPtr editWidget() const { return m_edit; }
43  TooltipWidgetPtr tooltipWidget() const { return m_tooltipWidget; }
44  MultiWidgets::TextWidgetPtr placeHolderWidget() const { return m_placeholderWidget; }
45 
46  void hidePlaceHolder();
47 
48  private:
49  bool m_valid{true};
50  bool m_showErrors{false};
51  MultiWidgets::TextEditWidgetPtr m_edit;
52  std::function<bool(const QString &)> m_validator;
53  Valuable::AttributeString m_placeholder;
54  Valuable::AttributeString m_tooltip;
55  Valuable::AttributeAlias m_text;
56  Valuable::AttributeVector2f m_keyboardOffset;
57  MultiWidgets::TextWidgetPtr m_placeholderWidget;
58  TooltipWidgetPtr m_tooltipWidget;
59  };
60  INTRUSIVE_PTR_TYPEDEF(InputFieldWidget);
61 
62 }
63 
64 #endif // INPUTFIELDWIDGET_HPP