aboutsummaryrefslogtreecommitdiff
path: root/CruUI/ui/control.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'CruUI/ui/control.cpp')
-rw-r--r--CruUI/ui/control.cpp29
1 files changed, 25 insertions, 4 deletions
diff --git a/CruUI/ui/control.cpp b/CruUI/ui/control.cpp
index 2f5a7ef8..bfe3f7a7 100644
--- a/CruUI/ui/control.cpp
+++ b/CruUI/ui/control.cpp
@@ -382,8 +382,14 @@ namespace cru {
void Control::OnMouseLeaveCore(MouseEventArgs & args)
{
is_mouse_inside_ = false;
- for (auto& is_mouse_leave : is_mouse_leave_)
- is_mouse_leave.second = true;
+ for (auto& is_mouse_click_valid : is_mouse_click_valid_map_)
+ {
+ if (is_mouse_click_valid.second)
+ {
+ is_mouse_click_valid.second = false;
+ OnMouseClickEnd(is_mouse_click_valid.first);
+ }
+ }
}
void Control::OnMouseMoveCore(MouseEventArgs & args)
@@ -393,13 +399,18 @@ namespace cru {
void Control::OnMouseDownCore(MouseButtonEventArgs & args)
{
- is_mouse_leave_[args.GetMouseButton()] = false;
+ is_mouse_click_valid_map_[args.GetMouseButton()] = true;
+ OnMouseClickBegin(args.GetMouseButton());
}
void Control::OnMouseUpCore(MouseButtonEventArgs & args)
{
- if (!is_mouse_leave_[args.GetMouseButton()])
+ if (is_mouse_click_valid_map_[args.GetMouseButton()])
+ {
+ is_mouse_click_valid_map_[args.GetMouseButton()] = false;
RaiseMouseClickEvent(args);
+ OnMouseClickEnd(args.GetMouseButton());
+ }
}
void Control::OnMouseClickCore(MouseButtonEventArgs& args)
@@ -449,6 +460,16 @@ namespace cru {
mouse_click_event.Raise(args);
}
+ void Control::OnMouseClickBegin(MouseButton button)
+ {
+
+ }
+
+ void Control::OnMouseClickEnd(MouseButton button)
+ {
+
+ }
+
void Control::OnGetFocus(FocusChangeEventArgs& args)
{