Vuo  2.0.0
VuoTextFieldInternal.h
Go to the documentation of this file.
1 
10 #pragma once
11 
12 #include "node.h"
13 
14 #ifdef __cplusplus
15 extern "C"
16 {
17 #endif
18 
19 #include "VuoText.h"
20 #include "VuoLayer.h"
21 #include "VuoImageText.h"
22 #include "VuoColor.h"
23 #include "VuoUiTheme.h"
24 #include "VuoRenderedLayers.h"
25 
26 #pragma clang diagnostic push
27 #pragma clang diagnostic ignored "-Wunused-function"
28 #include "VuoTextEdit.h"
29 #define STB_TEXTEDIT_IMPLEMENTATION
30 #include "stb_textedit.h"
31 #pragma clang diagnostic pop
32 
37 {
38 public:
42  STB_TexteditState textEditState;
43  bool isHovering;
44  bool isFocused;
45 
47  VuoTextFieldState(int lines);
48 
51 };
52 
57 {
58 private:
59 
60  VuoTextFieldState* state;
61  uint64_t id;
62  VuoPoint2d screenSize;
63  VuoReal screenBackingScaleFactor;
64  VuoPoint2d position;
65  VuoReal width;
66  VuoAnchor anchor;
67  VuoUiTheme theme;
68  VuoColor cursorColor;
69  VuoInteger lineCount;
70 
72  bool (*validateCharInput)(const VuoText current, uint32_t append);
73 
76  bool (*validateTextInput)(const VuoText current, VuoText* modified);
77 
78  bool FindTextLayer(const VuoRenderedLayers* renderedLayers, uint64_t id, VuoSceneObject* textLayer, VuoList_VuoSceneObject ancestors) VuoWarnUnusedResult;
79  bool GetTextLocalPosition(const VuoRenderedLayers* renderedLayers, uint64_t id, VuoPoint2d point, VuoPoint2d* inverseTransformedPoint) VuoWarnUnusedResult;
80  void OnLostFocus();
81 
82 public:
83 
86 
87  void SetLineCount(VuoInteger lines);
88  void SetPosition(VuoPoint2d newPosition);
89  void SetWidth(VuoReal newWidth);
90  void SetCursorColor(VuoColor color);
91  void SetAnchor(VuoAnchor newAnchor);
92  void SetTheme(VuoUiTheme newTheme);
93  void SetText(VuoText text);
94  void SetPlaceholderText(VuoText text);
95  void SetValidateCharInputCallback(bool (*validateCharInputCallback)(const VuoText current, uint32_t append));
96  void SetValidateTextInputCallback(bool (*validateTextInputCallback)(const VuoText current, VuoText* modifiedText));
97 
98  VuoText GetText() const;
99 
100  void OnTypedCharacterEvent(VuoText character, VuoModifierKey modifiers);
101  bool OnRenderedLayersEvent(const VuoRenderedLayers* renderedLayers) VuoWarnUnusedResult;
103 };
104 
105 #ifdef __cplusplus
106 }
107 #endif