diff options
author | crupest <crupest@outlook.com> | 2018-09-24 00:22:04 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2018-09-24 00:22:04 +0800 |
commit | 9049f7674e0808cc3676543e0a95330a1657d10e (patch) | |
tree | 1bfbdcc2a25316d6e85cc9b4527a1ec15841b502 | |
parent | 977c766e2337fea238804b8d8b97659361391ed0 (diff) | |
download | cru-9049f7674e0808cc3676543e0a95330a1657d10e.tar.gz cru-9049f7674e0808cc3676543e0a95330a1657d10e.tar.bz2 cru-9049f7674e0808cc3676543e0a95330a1657d10e.zip |
Add left and right support.
-rw-r--r-- | CruUI/main.cpp | 6 | ||||
-rw-r--r-- | CruUI/ui/controls/text_box.cpp | 16 | ||||
-rw-r--r-- | CruUI/ui/controls/text_box.h | 1 |
3 files changed, 20 insertions, 3 deletions
diff --git a/CruUI/main.cpp b/CruUI/main.cpp index 3d801964..67b35406 100644 --- a/CruUI/main.cpp +++ b/CruUI/main.cpp @@ -31,7 +31,7 @@ int APIENTRY wWinMain( Application application(hInstance); Window window; - + /* window.native_message_event.AddHandler([](cru::ui::events::WindowNativeMessageEventArgs& args) { if (args.GetWindowMessage().msg == WM_PAINT) @@ -40,7 +40,7 @@ int APIENTRY wWinMain( //args.SetResult(0); } }); - + */ /* // test1 cru::ui::controls::TextBlock text_block; @@ -88,7 +88,7 @@ int APIENTRY wWinMain( /* //test 2 - + const auto layout = CreateWithLayout<LinearLayout>(LayoutSideParams::Exactly(500), LayoutSideParams::Content()); layout->mouse_click_event.AddHandler([layout](cru::ui::events::MouseButtonEventArgs& args) 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; |