diff options
Diffstat (limited to 'src/ui/controls/text_box.h')
-rw-r--r-- | src/ui/controls/text_box.h | 53 |
1 files changed, 8 insertions, 45 deletions
diff --git a/src/ui/controls/text_box.h b/src/ui/controls/text_box.h index b815ed1f..07c4abe4 100644 --- a/src/ui/controls/text_box.h +++ b/src/ui/controls/text_box.h @@ -1,11 +1,11 @@ #pragma once -#include "ui/control.h" +#include "text_control.h" #include "timer.h" namespace cru::ui::controls { - class TextBox : public Control + class TextBox : public TextControl { public: static TextBox* Create( @@ -17,8 +17,8 @@ namespace cru::ui::controls protected: explicit TextBox( - const Microsoft::WRL::ComPtr<IDWriteTextFormat>& init_text_format = nullptr, - const Microsoft::WRL::ComPtr<ID2D1Brush>& init_brush = nullptr + const Microsoft::WRL::ComPtr<IDWriteTextFormat>& init_text_format, + const Microsoft::WRL::ComPtr<ID2D1Brush>& init_brush ); public: TextBox(const TextBox& other) = delete; @@ -27,59 +27,22 @@ namespace cru::ui::controls TextBox& operator=(TextBox&& other) = delete; ~TextBox() override; - String GetText() const - { - return text_; - } - - void SetText(const String& text); - - Microsoft::WRL::ComPtr<ID2D1Brush> GetBrush() const - { - return brush_; - } - - void SetBrush(const Microsoft::WRL::ComPtr<ID2D1Brush>& brush); - - Microsoft::WRL::ComPtr<IDWriteTextFormat> GetTextFormat() const - { - return text_format_; - } - - void SetTextFormat(const Microsoft::WRL::ComPtr<IDWriteTextFormat>& text_format); - protected: - void OnSizeChangedCore(events::SizeChangedEventArgs& args) override final; void OnDraw(ID2D1DeviceContext* device_context) override; - void OnMouseDownCore(events::MouseButtonEventArgs& args) override final; - void OnGetFocusCore(events::FocusChangeEventArgs& args) override final; void OnLoseFocusCore(events::FocusChangeEventArgs& args) override final; void OnKeyDownCore(events::KeyEventArgs& args) override final; void OnCharCore(events::CharEventArgs& args) override final; - Size OnMeasure(const Size& available_size) override final; - - private: - void OnTextChangedCore(const String& old_text, const String& new_text); - - void RecreateTextLayout(); + void RequestChangeCaretPosition(unsigned position) override; private: - String text_; - - Microsoft::WRL::ComPtr<ID2D1Brush> brush_; - Microsoft::WRL::ComPtr<ID2D1Brush> caret_brush_; - //Microsoft::WRL::ComPtr<ID2D1Brush> selection_brush_; - Microsoft::WRL::ComPtr<IDWriteTextFormat> text_format_; - Microsoft::WRL::ComPtr<IDWriteTextLayout> text_layout_; - - unsigned position_ = 0; - + unsigned caret_position_ = 0; TimerTask caret_timer_; ActionPtr caret_action_; - bool is_caret_show_; + Microsoft::WRL::ComPtr<ID2D1Brush> caret_brush_; + bool is_caret_show_ = false; }; } |