mirror of
https://github.com/GabsPuNs/Project-Zenith-Main.git
synced 2026-05-22 10:44:49 +00:00
55 lines
1.2 KiB
C++
55 lines
1.2 KiB
C++
#pragma once
|
|
|
|
#include "UIControl_Base.h"
|
|
|
|
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();
|
|
|
|
virtual bool setupControl(UIScene *scene, IggyValuePath *parent, const string &controlName);
|
|
|
|
void init(UIString label, int id);
|
|
void ReInit();
|
|
|
|
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
|
|
}; |