From 21fccf43ec049569f690674840ca1a10420a40da Mon Sep 17 00:00:00 2001 From: crupest Date: Mon, 13 Dec 2021 20:58:42 +0800 Subject: ... --- src/ui/CMakeLists.txt | 12 ++++++++++-- src/ui/controls/Control.cpp | 4 ++-- src/ui/controls/TextHostControlService.cpp | 12 ++++++------ src/ui/events/MouseEventArgs.cpp | 14 ++++++++++++++ src/ui/events/UiEvent.cpp | 14 -------------- src/ui/helper/ClickDetector.cpp | 8 ++++---- src/ui/helper/ShortcutHub.cpp | 2 +- src/ui/host/RoutedEventDispatch.hpp | 2 +- src/ui/render/ScrollBar.cpp | 10 +++++----- src/ui/render/ScrollRenderObject.cpp | 2 +- 10 files changed, 44 insertions(+), 36 deletions(-) create mode 100644 src/ui/events/MouseEventArgs.cpp delete mode 100644 src/ui/events/UiEvent.cpp (limited to 'src') diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt index 35c3581f..e4707cbc 100644 --- a/src/ui/CMakeLists.txt +++ b/src/ui/CMakeLists.txt @@ -24,7 +24,7 @@ add_library(cru_ui STATIC controls/TextBox.cpp controls/TextHostControlService.cpp controls/Window.cpp - events/UiEvent.cpp + events/MouseEventArgs.cpp helper/ClickDetector.cpp helper/ShortcutHub.cpp host/LayoutPaintCycler.cpp @@ -68,7 +68,15 @@ target_sources(cru_ui PUBLIC ${CRU_UI_INCLUDE_DIR}/controls/TextBox.hpp ${CRU_UI_INCLUDE_DIR}/controls/TextHostControlService.hpp ${CRU_UI_INCLUDE_DIR}/controls/Window.hpp - ${CRU_UI_INCLUDE_DIR}/events/UiEvent.hpp + ${CRU_UI_INCLUDE_DIR}/events/FocusChangeEventArgs.hpp + ${CRU_UI_INCLUDE_DIR}/events/KeyEventArgs.hpp + ${CRU_UI_INCLUDE_DIR}/events/MouseButtonEventArgs.hpp + ${CRU_UI_INCLUDE_DIR}/events/MouseEventArgs.hpp + ${CRU_UI_INCLUDE_DIR}/events/MouseWheelEventArgs.hpp + ${CRU_UI_INCLUDE_DIR}/events/PaintEventArgs.hpp + ${CRU_UI_INCLUDE_DIR}/events/RoutedEvent.hpp + ${CRU_UI_INCLUDE_DIR}/events/UiEventArgs.hpp + ${CRU_UI_INCLUDE_DIR}/events/UiEvents.hpp ${CRU_UI_INCLUDE_DIR}/helper/ClickDetector.hpp ${CRU_UI_INCLUDE_DIR}/helper/ShortcutHub.hpp ${CRU_UI_INCLUDE_DIR}/host/LayoutPaintCycler.hpp diff --git a/src/ui/controls/Control.cpp b/src/ui/controls/Control.cpp index 29c2c46a..44da7f6f 100644 --- a/src/ui/controls/Control.cpp +++ b/src/ui/controls/Control.cpp @@ -20,12 +20,12 @@ Control::Control() { style_rule_set_bind_ = std::make_unique(this, style_rule_set_.get()); - MouseEnterEvent()->Direct()->AddHandler([this](event::MouseEventArgs&) { + MouseEnterEvent()->Direct()->AddHandler([this](events::MouseEventArgs&) { this->is_mouse_over_ = true; this->OnMouseHoverChange(true); }); - MouseLeaveEvent()->Direct()->AddHandler([this](event::MouseEventArgs&) { + MouseLeaveEvent()->Direct()->AddHandler([this](events::MouseEventArgs&) { this->is_mouse_over_ = false; this->OnMouseHoverChange(true); }); diff --git a/src/ui/controls/TextHostControlService.cpp b/src/ui/controls/TextHostControlService.cpp index b0759058..3a67860d 100644 --- a/src/ui/controls/TextHostControlService.cpp +++ b/src/ui/controls/TextHostControlService.cpp @@ -15,7 +15,7 @@ #include "cru/ui/Base.hpp" #include "cru/ui/DebugFlags.hpp" #include "cru/ui/components/Menu.hpp" -#include "cru/ui/events/UiEvent.hpp" +#include "cru/ui/events/UiEvents.hpp" #include "cru/ui/helper/ShortcutHub.hpp" #include "cru/ui/host/WindowHost.hpp" #include "cru/ui/render/ScrollRenderObject.hpp" @@ -445,7 +445,7 @@ void TextHostControlService::UpdateInputMethodPosition() { } void TextHostControlService::MouseDownHandler( - event::MouseButtonEventArgs& args) { + events::MouseButtonEventArgs& args) { if (IsEnabled()) { this->control_->SetFocus(); if (args.GetButton() == mouse_buttons::left && @@ -461,14 +461,14 @@ void TextHostControlService::MouseDownHandler( } } -void TextHostControlService::MouseUpHandler(event::MouseButtonEventArgs& args) { +void TextHostControlService::MouseUpHandler(events::MouseButtonEventArgs& args) { if (args.GetButton() == mouse_buttons::left && mouse_move_selecting_) { this->control_->ReleaseMouse(); this->mouse_move_selecting_ = false; } } -void TextHostControlService::MouseMoveHandler(event::MouseEventArgs& args) { +void TextHostControlService::MouseMoveHandler(events::MouseEventArgs& args) { if (this->mouse_move_selecting_) { const auto text_render_object = this->GetTextRenderObject(); const auto result = text_render_object->TextHitTest( @@ -479,7 +479,7 @@ void TextHostControlService::MouseMoveHandler(event::MouseEventArgs& args) { } void TextHostControlService::GainFocusHandler( - event::FocusChangeEventArgs& args) { + events::FocusChangeEventArgs& args) { CRU_UNUSED(args); if (editable_) { auto input_method_context = GetInputMethodContext(); @@ -514,7 +514,7 @@ void TextHostControlService::GainFocusHandler( } void TextHostControlService::LoseFocusHandler( - event::FocusChangeEventArgs& args) { + events::FocusChangeEventArgs& args) { if (!args.IsWindow()) this->AbortSelection(); input_method_context_event_guard_.Clear(); auto input_method_context = GetInputMethodContext(); diff --git a/src/ui/events/MouseEventArgs.cpp b/src/ui/events/MouseEventArgs.cpp new file mode 100644 index 00000000..b27bb9d4 --- /dev/null +++ b/src/ui/events/MouseEventArgs.cpp @@ -0,0 +1,14 @@ +#include "cru/ui/events/MouseEventArgs.hpp" + +#include "cru/ui/render/RenderObject.hpp" + +namespace cru::ui::events { +Point MouseEventArgs::GetPoint(render::RenderObject* render_object) const { + return GetPoint() - render_object->GetTotalOffset(); +} + +Point MouseEventArgs::GetPointToContent( + render::RenderObject* render_object) const { + return render_object->FromRootToContent(GetPoint()); +} +} // namespace cru::ui::events diff --git a/src/ui/events/UiEvent.cpp b/src/ui/events/UiEvent.cpp deleted file mode 100644 index 4c75f690..00000000 --- a/src/ui/events/UiEvent.cpp +++ /dev/null @@ -1,14 +0,0 @@ -#include "cru/ui/events/UiEvent.hpp" - -#include "cru/ui/render/RenderObject.hpp" - -namespace cru::ui::event { -Point MouseEventArgs::GetPoint(render::RenderObject* render_object) const { - return GetPoint() - render_object->GetTotalOffset(); -} - -Point MouseEventArgs::GetPointToContent( - render::RenderObject* render_object) const { - return render_object->FromRootToContent(GetPoint()); -} -} // namespace cru::ui::event diff --git a/src/ui/helper/ClickDetector.cpp b/src/ui/helper/ClickDetector.cpp index 309685d3..d8d51327 100644 --- a/src/ui/helper/ClickDetector.cpp +++ b/src/ui/helper/ClickDetector.cpp @@ -12,7 +12,7 @@ ClickDetector::ClickDetector(controls::Control* control) { event_rovoker_guards_.push_back( EventRevokerGuard(control->MouseEnterEvent()->Direct()->AddHandler( - [this](event::MouseEventArgs&) { + [this](events::MouseEventArgs&) { if (this->enable_) { if (this->state_ == ClickState::PressInactive) { if ((this->button_ & this->trigger_button_)) { @@ -26,7 +26,7 @@ ClickDetector::ClickDetector(controls::Control* control) { event_rovoker_guards_.push_back( EventRevokerGuard(control->MouseLeaveEvent()->Direct()->AddHandler( - [this](event::MouseEventArgs&) { + [this](events::MouseEventArgs&) { if (this->enable_) { if (this->state_ == ClickState::Press) { if ((this->button_ & this->trigger_button_)) { @@ -40,7 +40,7 @@ ClickDetector::ClickDetector(controls::Control* control) { event_rovoker_guards_.push_back( EventRevokerGuard(control->MouseDownEvent()->Direct()->AddHandler( - [this](event::MouseButtonEventArgs& args) { + [this](events::MouseButtonEventArgs& args) { const auto button = args.GetButton(); if (this->enable_ && (button & this->trigger_button_) && this->state_ == ClickState::Hover) { @@ -59,7 +59,7 @@ ClickDetector::ClickDetector(controls::Control* control) { event_rovoker_guards_.push_back( EventRevokerGuard(control->MouseUpEvent()->Direct()->AddHandler( - [this](event::MouseButtonEventArgs& args) { + [this](events::MouseButtonEventArgs& args) { const auto button = args.GetButton(); if (this->enable_ && (button & this->trigger_button_) && button == button_) { diff --git a/src/ui/helper/ShortcutHub.cpp b/src/ui/helper/ShortcutHub.cpp index f35ad0ef..c0b6c5d8 100644 --- a/src/ui/helper/ShortcutHub.cpp +++ b/src/ui/helper/ShortcutHub.cpp @@ -81,7 +81,7 @@ void ShortcutHub::Uninstall() { event_guard_.Clear(); } -void ShortcutHub::OnKeyDown(event::KeyEventArgs& event) { +void ShortcutHub::OnKeyDown(events::KeyEventArgs& event) { ShortcutKeyBind key_bind(event.GetKeyCode(), event.GetKeyModifier()); const auto& shortcut_list = this->GetShortcutByKeyBind(key_bind); diff --git a/src/ui/host/RoutedEventDispatch.hpp b/src/ui/host/RoutedEventDispatch.hpp index 52507fc7..027ddbe4 100644 --- a/src/ui/host/RoutedEventDispatch.hpp +++ b/src/ui/host/RoutedEventDispatch.hpp @@ -23,7 +23,7 @@ template void DispatchEvent( const std::u16string_view& event_name, controls::Control* const original_sender, - event::RoutedEvent* (controls::Control::*event_ptr)(), + events::RoutedEvent* (controls::Control::*event_ptr)(), controls::Control* const last_receiver, Args&&... args) { CRU_UNUSED(event_name) diff --git a/src/ui/render/ScrollBar.cpp b/src/ui/render/ScrollBar.cpp index aeecd9e2..8e16862f 100644 --- a/src/ui/render/ScrollBar.cpp +++ b/src/ui/render/ScrollBar.cpp @@ -12,7 +12,7 @@ #include "cru/ui/Base.hpp" #include "cru/ui/ThemeManager.hpp" #include "cru/ui/UiManager.hpp" -#include "cru/ui/events/UiEvent.hpp" +#include "cru/ui/events/UiEvents.hpp" #include "cru/ui/helper/ClickDetector.hpp" #include "cru/ui/host/WindowHost.hpp" #include "cru/ui/render/ScrollRenderObject.hpp" @@ -124,7 +124,7 @@ void ScrollBar::InstallHandlers(controls::Control* control) { if (control != nullptr) { event_guard_ += control->MouseDownEvent()->Tunnel()->PrependShortCircuitHandler( - [control, this](event::MouseButtonEventArgs& event) { + [control, this](events::MouseButtonEventArgs& event) { if (event.GetButton() == mouse_buttons::left && IsEnabled() && IsExpanded()) { auto hit_test_result = @@ -178,7 +178,7 @@ void ScrollBar::InstallHandlers(controls::Control* control) { event_guard_ += control->MouseUpEvent()->Tunnel()->PrependShortCircuitHandler( - [control, this](event::MouseButtonEventArgs& event) { + [control, this](events::MouseButtonEventArgs& event) { if (mouse_press_ != std::nullopt) { mouse_press_ = std::nullopt; render_object_->InvalidatePaint(); @@ -203,7 +203,7 @@ void ScrollBar::InstallHandlers(controls::Control* control) { event_guard_ += control->MouseMoveEvent()->Tunnel()->PrependShortCircuitHandler( - [this](event::MouseEventArgs& event) { + [this](events::MouseEventArgs& event) { if (move_thumb_start_) { auto new_scroll_position = CalculateNewScrollPosition( move_thumb_thumb_original_rect_, @@ -249,7 +249,7 @@ void ScrollBar::InstallHandlers(controls::Control* control) { event_guard_ += control->MouseLeaveEvent()->Tunnel()->PrependShortCircuitHandler( - [this](event::MouseEventArgs&) { + [this](events::MouseEventArgs&) { if (IsExpanded() && !move_thumb_start_) { if (mouse_hover_ != std::nullopt) { mouse_hover_ = std::nullopt; diff --git a/src/ui/render/ScrollRenderObject.cpp b/src/ui/render/ScrollRenderObject.cpp index 93472cdc..bd9b8559 100644 --- a/src/ui/render/ScrollRenderObject.cpp +++ b/src/ui/render/ScrollRenderObject.cpp @@ -211,7 +211,7 @@ void ScrollRenderObject::InstallMouseWheelHandler(controls::Control* control) { if (control != nullptr) { guard_ += control->MouseWheelEvent()->Bubble()->PrependShortCircuitHandler( - [this](event::MouseWheelEventArgs& args) { + [this](events::MouseWheelEventArgs& args) { auto delta = args.GetDelta(); delta *= 24; -- cgit v1.2.3