2022-05-21 19:58:09 +02:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include <cstdint>
|
|
|
|
#include "Control.h"
|
|
|
|
#include "TextBoxBase.h"
|
|
|
|
#include "ScrollBars.h"
|
|
|
|
#include "CharacterCasing.h"
|
|
|
|
#include "HorizontalAlignment.h"
|
|
|
|
|
|
|
|
namespace Forms
|
|
|
|
{
|
|
|
|
// Represents a Windows text box control.
|
|
|
|
class TextBox : public TextBoxBase
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
TextBox();
|
|
|
|
virtual ~TextBox() = default;
|
|
|
|
|
|
|
|
// Gets a value indicating whether pressing ENTER
|
|
|
|
// in a multiline TextBox control creates a new line of text
|
|
|
|
// in the control or activates the default button for the form.
|
|
|
|
bool AcceptsReturn();
|
|
|
|
// Sets a value indicating whether pressing ENTER
|
|
|
|
// in a multiline TextBox control creates a new line of text
|
|
|
|
// in the control or activates the default button for the form.
|
|
|
|
void AcceptsReturn(bool Value);
|
|
|
|
|
|
|
|
// Gets whether the TextBox control
|
|
|
|
// modifies the case of characters as they are typed.
|
|
|
|
CharacterCasing GetCharacterCasing();
|
|
|
|
// Sets whether the TextBox control
|
|
|
|
// modifies the case of characters as they are typed.
|
|
|
|
void SetCharacterCasing(CharacterCasing Value);
|
|
|
|
|
|
|
|
// Determines if the control is in password protect mode.
|
|
|
|
virtual bool PasswordProtect();
|
|
|
|
|
|
|
|
// Gets the character used to mask characters in a single-line text box.
|
|
|
|
char PasswordChar();
|
|
|
|
// Sets the character used to mask characters in a single-line text box.
|
|
|
|
void SetPasswordChar(char Value);
|
|
|
|
|
|
|
|
// Gets which scroll bars should
|
|
|
|
// appear in a multiline TextBox control.
|
|
|
|
ScrollBars GetScrollBars();
|
|
|
|
// Sets which scroll bars should
|
|
|
|
// appear in a multiline TextBox control.
|
|
|
|
void SetScrollBars(ScrollBars Value);
|
|
|
|
|
|
|
|
// Sets the current text in the text box.
|
2022-05-21 21:51:35 +02:00
|
|
|
virtual void SetText(const String& Value);
|
2022-05-21 19:58:09 +02:00
|
|
|
|
|
|
|
// Gets how text is aligned in a TextBox control.
|
|
|
|
HorizontalAlignment TextAlign();
|
|
|
|
// Sets how text is aligned in a TextBox control.
|
|
|
|
void SetTextAlign(HorizontalAlignment Value);
|
|
|
|
|
|
|
|
// Gets if the text in the edit control should appear as
|
|
|
|
// the default password character.
|
|
|
|
bool UseSystemPasswordChar();
|
|
|
|
// Sets if the text in the edit control should appear as
|
|
|
|
// the default password character.
|
|
|
|
void SetUseSystemPasswordChar(bool Value);
|
|
|
|
|
|
|
|
// We must define base events here
|
|
|
|
virtual void OnSizeChanged();
|
|
|
|
virtual void OnHandleCreated();
|
|
|
|
virtual void OnGotFocus();
|
|
|
|
|
|
|
|
// The standard windows message pump for this control.
|
|
|
|
virtual void WndProc(Message& Msg);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
// Get custom control creation parameters for this instance.
|
|
|
|
virtual CreateParams GetCreateParams();
|
|
|
|
|
|
|
|
private:
|
|
|
|
// Internal cached flags
|
|
|
|
bool _AcceptsReturn;
|
|
|
|
char _PasswordChar;
|
|
|
|
bool _UseSystemPasswordChar;
|
|
|
|
CharacterCasing _CharacterCasing;
|
|
|
|
ScrollBars _Scrollbars;
|
|
|
|
HorizontalAlignment _TextAlign;
|
|
|
|
bool _SelectionSet;
|
|
|
|
|
|
|
|
// Used for vertical centering of text in non-multiline mode
|
|
|
|
RECT _NCRectTop;
|
|
|
|
RECT _NCRectBottom;
|
|
|
|
RECT _NCRectLeft;
|
|
|
|
RECT _NCRectRight;
|
|
|
|
bool _SizeRectDirty;
|
|
|
|
bool _IsCalcRects;
|
|
|
|
|
|
|
|
// We must define each window message handler here...
|
|
|
|
void WmNcCalcSize(Message& Msg);
|
|
|
|
void WmNcPaint(Message& Msg);
|
|
|
|
|
|
|
|
// Internal routine to calculate size rects for the control
|
|
|
|
void CalculateSizeRects();
|
|
|
|
};
|
|
|
|
}
|