aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CruUI/main.cpp6
-rw-r--r--CruUI/ui/controls/text_box.cpp16
-rw-r--r--CruUI/ui/controls/text_box.h1
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;