Vuo  2.3.2
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  void *context;
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  VuoInteger lineCount;
69 
71  bool (*validateCharInput)(const VuoText current, uint32_t newChar, uint16_t position);
72 
75  bool (*validateTextInput)(void *context, const VuoText current, VuoText* modified);
76 
77  typedef void (*SessionEndedCallbackType)(void *context, VuoText text);
78  SessionEndedCallbackType sessionEndedCallback;
79 
80  bool FindTextLayer(const VuoRenderedLayers* renderedLayers, uint64_t id, VuoSceneObject* textLayer, VuoList_VuoSceneObject ancestors) VuoWarnUnusedResult;
81  bool GetTextLocalPosition(const VuoRenderedLayers* renderedLayers, uint64_t id, VuoPoint2d point, VuoPoint2d* inverseTransformedPoint) VuoWarnUnusedResult;
82  void OnLostFocus();
83 
84 public:
85 
86  VuoTextFieldInternal(VuoInteger numLines, void *context);
88 
89  void SetLineCount(VuoInteger lines);
90  void SetPosition(VuoPoint2d newPosition);
91  void SetWidth(VuoReal newWidth);
92  void SetAnchor(VuoAnchor newAnchor);
93  void SetTheme(VuoUiTheme newTheme);
94  void SetText(VuoText text);
95  void SetPlaceholderText(VuoText text);
96  void SetValidateCharInputCallback(bool (*validateCharInputCallback)(const VuoText current, uint32_t newChar, uint16_t position));
97  void SetValidateTextInputCallback(bool (*validateTextInputCallback)(void *context, const VuoText current, VuoText* modifiedText));
98  void setSessionEndedCallback(SessionEndedCallbackType sessionEndedCallback);
99 
100  VuoText GetText() const;
101 
102  void OnTypedCharacterEvent(VuoText character, VuoModifierKey modifiers);
103  bool OnRenderedLayersEvent(const VuoRenderedLayers* renderedLayers) VuoWarnUnusedResult;
105 };
106 
107 #ifdef __cplusplus
108 }
109 #endif