diff options
Diffstat (limited to 'CruUI/ui/controls')
-rw-r--r-- | CruUI/ui/controls/text_box.cpp | 16 | ||||
-rw-r--r-- | CruUI/ui/controls/text_box.h | 1 |
2 files changed, 17 insertions, 0 deletions
diff --git a/CruUI/ui/controls/text_box.cpp b/CruUI/ui/controls/text_box.cpp index 53417d40..a8d78398 100644 --- a/CruUI/ui/controls/text_box.cpp +++ b/CruUI/ui/controls/text_box.cpp @@ -125,6 +125,22 @@ namespace cru::ui::controls is_caret_show_ = false; } + void TextBox::OnKeyDownCore(events::KeyEventArgs& args) + { + Control::OnKeyDownCore(args); + if (args.GetVirtualCode() == VK_LEFT && position_ > 0) + { + position_--; + Repaint(); + } + + if (args.GetVirtualCode() == VK_RIGHT && position_ < GetText().size()) + { + position_++; + Repaint(); + } + } + void TextBox::OnCharCore(events::CharEventArgs& args) { Control::OnCharCore(args); diff --git a/CruUI/ui/controls/text_box.h b/CruUI/ui/controls/text_box.h index 5fe14782..b815ed1f 100644 --- a/CruUI/ui/controls/text_box.h +++ b/CruUI/ui/controls/text_box.h @@ -57,6 +57,7 @@ namespace cru::ui::controls 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; |