14#include <AUI/View/AAbstractTypeableView.h>
15#include "AUI/Enum/ATextInputType.h"
17#include "AUI/Common/ATimer.h"
18#include <AUI/Common/IStringable.h>
19#include <AUI/Render/IRenderer.h>
26class API_AUI_VIEWS AAbstractTextField :
public AAbstractTypeableView<AView>,
public IStringable {
30 ~AAbstractTextField()
override;
32 int getContentMinimumHeight()
override;
34 void setText(
const AString& t)
override;
36 void setSuffix(
const AString& s);
48 return mTextInputType;
51 void setEditable(
bool isEditable) {
52 mIsEditable = isEditable;
55 void setPasswordMode(
bool isPasswordField) {
56 mIsPasswordTextField = isPasswordField;
57 setCopyable(!isPasswordField);
62 return mIsPasswordTextField;
65 bool handlesNonMouseNavigation()
override;
69 void onCharEntered(
char16_t c)
override;
71 void setSize(glm::ivec2 size)
override;
82 void prerenderStringIfNeeded(
IRenderer& render);
84 void typeableErase(
size_t begin,
size_t end)
override;
88 size_t typeableFind(
char16_t c,
size_t startPos)
override;
90 size_t typeableReverseFind(
char16_t c,
size_t startPos)
override;
96 AString getDisplayText()
override;
98 void cursorSelectableRedraw()
override;
101 glm::ivec2 getPosByIndex(
size_t index)
override;
105 void onCursorIndexChanged()
override;
106 void commitStyle()
override;
110 bool mIsPasswordTextField =
false;
111 bool mIsEditable =
true;
112 int mTextAlignOffset = 0;
113 int mHorizontalScroll = 0;
114 unsigned mAbsoluteCursorPos = 0;
117 void invalidateFont()
override;
119 void updateTextAlignOffset();
121 int getPosByIndexAbsolute(
size_t index);
bool isPasswordField() const noexcept override
Definition AAbstractTextField.h:61
bool typeableInsert(size_t at, char16_t toInsert) override
AString toString() const override
const AString & getText() const override
bool typeableInsert(size_t at, const AString &toInsert) override
ATextInputType textInputType() const noexcept override
Definition AAbstractTextField.h:47
unsigned cursorIndexByPos(glm::ivec2 pos) override
glm::ivec2 getCursorPosition() override
size_t length() const override
auto text() const
Definition AAbstractTypeableView.h:48
Represents a Unicode character string.
Definition AString.h:38
Helps mapping prerendered string with positions.
Definition ATextLayoutHelper.h:25
Base class for rendering.
Definition IRenderer.h:149
Object that can be converted to string.
Definition IStringable.h:29
An std::weak_ptr with AUI extensions.
Definition SharedPtrTypes.h:179
ATextInputType
Controls IME text input type of the text field.
Definition ATextInputType.h:24
@ DEFAULT
Optimize for textual information.
Definition ATextInputType.h:28
Render context passed to AView::render.
Definition ARenderContext.h:43