aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2018-11-28 19:25:35 +0800
committercrupest <crupest@outlook.com>2018-11-28 19:25:35 +0800
commitb4571d0ddad966efcc6e305f5d7e79cd593a2b25 (patch)
treedef0c4ee3c3d63bd6070f4b781094518e7e98922
parent4c926755a112f5e7da5da82035fa2f624ceef863 (diff)
downloadcru-b4571d0ddad966efcc6e305f5d7e79cd593a2b25.tar.gz
cru-b4571d0ddad966efcc6e305f5d7e79cd593a2b25.tar.bz2
cru-b4571d0ddad966efcc6e305f5d7e79cd593a2b25.zip
Change some routed events handlers in subcontrols.
-rw-r--r--src/ui/controls/list_item.cpp6
-rw-r--r--src/ui/controls/scroll_control.cpp13
-rw-r--r--src/ui/controls/text_box.cpp4
-rw-r--r--src/ui/controls/text_control.cpp2
4 files changed, 16 insertions, 9 deletions
diff --git a/src/ui/controls/list_item.cpp b/src/ui/controls/list_item.cpp
index 92f8750f..8234da30 100644
--- a/src/ui/controls/list_item.cpp
+++ b/src/ui/controls/list_item.cpp
@@ -24,7 +24,7 @@ namespace cru::ui::controls
device_context->DrawRectangle(Convert(rect.Shrink(Thickness(0.5))), brushes_[state_].border_brush.Get(), 1);
});
- mouse_enter_event.bubble.AddHandler([this](events::MouseEventArgs& args)
+ mouse_enter_event.direct.AddHandler([this](events::MouseEventArgs& args)
{
if (GetState() == State::Select)
return;
@@ -35,7 +35,7 @@ namespace cru::ui::controls
SetState(State::Hover);
});
- mouse_leave_event.bubble.AddHandler([this](events::MouseEventArgs& args)
+ mouse_leave_event.direct.AddHandler([this](events::MouseEventArgs& args)
{
if (GetState() == State::Select)
return;
@@ -43,7 +43,7 @@ namespace cru::ui::controls
SetState(State::Normal);
});
- mouse_click_event.bubble.AddHandler([this](events::MouseButtonEventArgs& args)
+ mouse_click_event.direct.AddHandler([this](events::MouseButtonEventArgs& args)
{
if (args.GetMouseButton() == MouseButton::Left)
SetState(State::Select);
diff --git a/src/ui/controls/scroll_control.cpp b/src/ui/controls/scroll_control.cpp
index 07715892..9681924d 100644
--- a/src/ui/controls/scroll_control.cpp
+++ b/src/ui/controls/scroll_control.cpp
@@ -62,7 +62,7 @@ namespace cru::ui::controls
}
});
- mouse_down_event.bubble.AddHandler([this](events::MouseButtonEventArgs& args)
+ mouse_down_event.tunnel.AddHandler([this](events::MouseButtonEventArgs& args)
{
if (args.GetMouseButton() == MouseButton::Left)
{
@@ -72,6 +72,7 @@ namespace cru::ui::controls
GetWindow()->CaptureMouseFor(this);
is_pressing_scroll_bar_ = Orientation::Vertical;
pressing_delta_ = point.y - vertical_bar_info_.bar.top;
+ args.SetHandled();
return;
}
@@ -80,12 +81,13 @@ namespace cru::ui::controls
GetWindow()->CaptureMouseFor(this);
pressing_delta_ = point.x - horizontal_bar_info_.bar.left;
is_pressing_scroll_bar_ = Orientation::Horizontal;
+ args.SetHandled();
return;
}
}
});
- mouse_move_event.bubble.AddHandler([this](events::MouseEventArgs& args)
+ mouse_move_event.tunnel.AddHandler([this](events::MouseEventArgs& args)
{
const auto mouse_point = args.GetPoint(this);
@@ -94,6 +96,7 @@ namespace cru::ui::controls
const auto new_head_position = mouse_point.x - pressing_delta_;
const auto new_offset = new_head_position / horizontal_bar_info_.border.width * view_width_;
SetScrollOffset(new_offset, std::nullopt);
+ args.SetHandled();
return;
}
@@ -102,16 +105,18 @@ namespace cru::ui::controls
const auto new_head_position = mouse_point.y - pressing_delta_;
const auto new_offset = new_head_position / vertical_bar_info_.border.height * view_height_;
SetScrollOffset(std::nullopt, new_offset);
+ args.SetHandled();
return;
}
});
- mouse_up_event.bubble.AddHandler([this](events::MouseButtonEventArgs& args)
+ mouse_up_event.tunnel.AddHandler([this](events::MouseButtonEventArgs& args)
{
if (args.GetMouseButton() == MouseButton::Left && is_pressing_scroll_bar_.has_value())
{
GetWindow()->ReleaseCurrentMouseCapture();
is_pressing_scroll_bar_ = std::nullopt;
+ args.SetHandled();
}
});
@@ -126,12 +131,14 @@ namespace cru::ui::controls
if (IsVerticalScrollEnabled() && GetScrollOffsetY() != (args.GetDelta() > 0.0f ? 0.0f : AtLeast0(GetViewHeight() - content_rect.height)))
{
SetScrollOffset(std::nullopt, GetScrollOffsetY() - args.GetDelta() / WHEEL_DELTA * view_delta);
+ args.SetHandled();
return;
}
if (IsHorizontalScrollEnabled() && GetScrollOffsetX() != (args.GetDelta() > 0.0f ? 0.0f : AtLeast0(GetViewWidth() - content_rect.width)))
{
SetScrollOffset(GetScrollOffsetX() - args.GetDelta() / WHEEL_DELTA * view_delta, std::nullopt);
+ args.SetHandled();
return;
}
});
diff --git a/src/ui/controls/text_box.cpp b/src/ui/controls/text_box.cpp
index 28e1053d..893d6e8d 100644
--- a/src/ui/controls/text_box.cpp
+++ b/src/ui/controls/text_box.cpp
@@ -34,7 +34,7 @@ namespace cru::ui::controls
}
});
- get_focus_event.bubble.AddHandler([this](events::FocusChangeEventArgs& args)
+ get_focus_event.direct.AddHandler([this](events::FocusChangeEventArgs& args)
{
assert(!caret_timer_.has_value());
is_caret_show_ = true;
@@ -45,7 +45,7 @@ namespace cru::ui::controls
});
});
- lose_focus_event.bubble.AddHandler([this](events::FocusChangeEventArgs& args)
+ lose_focus_event.direct.AddHandler([this](events::FocusChangeEventArgs& args)
{
assert(caret_timer_.has_value());
caret_timer_->Cancel();
diff --git a/src/ui/controls/text_control.cpp b/src/ui/controls/text_control.cpp
index 71a167e2..f32c068f 100644
--- a/src/ui/controls/text_control.cpp
+++ b/src/ui/controls/text_control.cpp
@@ -110,7 +110,7 @@ namespace cru::ui::controls
}
});
- lose_focus_event.bubble.AddHandler([this](events::FocusChangeEventArgs& args)
+ lose_focus_event.direct.AddHandler([this](events::FocusChangeEventArgs& args)
{
if (is_selecting_)
{