diff options
Diffstat (limited to 'CruUI/ui/control.cpp')
-rw-r--r-- | CruUI/ui/control.cpp | 29 |
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) { |