aboutsummaryrefslogtreecommitdiff
path: root/Minecraft.Client/Common/UI/UIControl_TextInput.h
diff options
context:
space:
mode:
Diffstat (limited to 'Minecraft.Client/Common/UI/UIControl_TextInput.h')
-rw-r--r--Minecraft.Client/Common/UI/UIControl_TextInput.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/Minecraft.Client/Common/UI/UIControl_TextInput.h b/Minecraft.Client/Common/UI/UIControl_TextInput.h
index 98032d85..3ff28930 100644
--- a/Minecraft.Client/Common/UI/UIControl_TextInput.h
+++ b/Minecraft.Client/Common/UI/UIControl_TextInput.h
@@ -6,7 +6,20 @@ class UIControl_TextInput : public UIControl_Base
{
private:
IggyName m_textName, m_funcChangeState, m_funcSetCharLimit;
+ IggyName m_funcSetCaretIndex;
bool m_bHasFocus;
+ bool m_bHasCaret;
+ bool m_bCaretChecked;
+
+#ifdef _WINDOWS64
+ bool m_bDirectEditing;
+ wstring m_textBeforeEdit;
+ wstring m_editBuffer;
+ int m_iCursorPos;
+ int m_iCharLimit;
+ int m_iDirectEditCooldown;
+ int m_iCaretBlinkTimer;
+#endif
public:
UIControl_TextInput();
@@ -19,4 +32,24 @@ public:
virtual void setFocus(bool focus);
void SetCharLimit(int iLimit);
+
+ void setCaretVisible(bool visible);
+ void setCaretIndex(int index);
+
+#ifdef _WINDOWS64
+ enum EDirectEditResult
+ {
+ eDirectEdit_Continue,
+ eDirectEdit_Confirmed,
+ eDirectEdit_Cancelled,
+ };
+
+ void beginDirectEdit(int charLimit = 0);
+ EDirectEditResult tickDirectEdit();
+ void cancelDirectEdit();
+ void confirmDirectEdit();
+ bool isDirectEditing() const { return m_bDirectEditing; }
+ int getDirectEditCooldown() const { return m_iDirectEditCooldown; }
+ const wstring& getEditBuffer() const { return m_editBuffer; }
+#endif
}; \ No newline at end of file