aboutsummaryrefslogtreecommitdiff
path: root/src/ui
diff options
context:
space:
mode:
Diffstat (limited to 'src/ui')
-rw-r--r--src/ui/CMakeLists.txt32
-rw-r--r--src/ui/LayoutControl.cpp6
-rw-r--r--src/ui/NoChildControl.cpp3
-rw-r--r--src/ui/controls/Button.cpp17
-rw-r--r--src/ui/controls/ContentControl.cpp (renamed from src/ui/ContentControl.cpp)8
-rw-r--r--src/ui/controls/Control.cpp (renamed from src/ui/Control.cpp)6
-rw-r--r--src/ui/controls/LayoutControl.cpp3
-rw-r--r--src/ui/controls/NoChildControl.cpp3
-rw-r--r--src/ui/controls/TextControlService.hpp8
-rw-r--r--src/ui/controls/Window.cpp (renamed from src/ui/Window.cpp)6
-rw-r--r--src/ui/events/UiEvent.cpp (renamed from src/ui/UiEvent.cpp)2
-rw-r--r--src/ui/helper/ClickDetector.cpp (renamed from src/ui/ClickDetector.cpp)8
-rw-r--r--src/ui/helper/ShortcutHub.cpp (renamed from src/ui/ShortcutHub.cpp)10
-rw-r--r--src/ui/host/RoutedEventDispatch.hpp14
-rw-r--r--src/ui/host/WindowHost.cpp83
15 files changed, 103 insertions, 106 deletions
diff --git a/src/ui/CMakeLists.txt b/src/ui/CMakeLists.txt
index 449fb4d9..2f0eb10d 100644
--- a/src/ui/CMakeLists.txt
+++ b/src/ui/CMakeLists.txt
@@ -4,23 +4,23 @@ add_library(cru_ui STATIC
Helper.hpp
host/RoutedEventDispatch.hpp
- ClickDetector.cpp
- ContentControl.cpp
- Control.cpp
Helper.cpp
- LayoutControl.cpp
- NoChildControl.cpp
- ShortcutHub.cpp
- UiEvent.cpp
UiManager.cpp
- Window.cpp
controls/Button.cpp
controls/Container.cpp
+ controls/ContentControl.cpp
+ controls/Control.cpp
controls/FlexLayout.cpp
+ controls/LayoutControl.cpp
+ controls/NoChildControl.cpp
controls/StackLayout.cpp
controls/TextBlock.cpp
controls/TextBox.cpp
controls/TextControlService.hpp
+ controls/Window.cpp
+ events/UiEvent.cpp
+ helper/ClickDetector.cpp
+ helper/ShortcutHub.cpp
host/LayoutPaintCycler.cpp
host/WindowHost.cpp
render/BorderRenderObject.cpp
@@ -34,23 +34,23 @@ add_library(cru_ui STATIC
)
target_sources(cru_ui PUBLIC
${CRU_UI_INCLUDE_DIR}/Base.hpp
- ${CRU_UI_INCLUDE_DIR}/ClickDetector.hpp
- ${CRU_UI_INCLUDE_DIR}/ContentControl.hpp
- ${CRU_UI_INCLUDE_DIR}/Control.hpp
${CRU_UI_INCLUDE_DIR}/DebugFlags.hpp
- ${CRU_UI_INCLUDE_DIR}/LayoutControl.hpp
- ${CRU_UI_INCLUDE_DIR}/NoChildControl.hpp
- ${CRU_UI_INCLUDE_DIR}/ShortcutHub.hpp
- ${CRU_UI_INCLUDE_DIR}/UiEvent.hpp
${CRU_UI_INCLUDE_DIR}/UiManager.hpp
- ${CRU_UI_INCLUDE_DIR}/Window.hpp
${CRU_UI_INCLUDE_DIR}/controls/Base.hpp
${CRU_UI_INCLUDE_DIR}/controls/Button.hpp
${CRU_UI_INCLUDE_DIR}/controls/Container.hpp
+ ${CRU_UI_INCLUDE_DIR}/controls/ContentControl.hpp
+ ${CRU_UI_INCLUDE_DIR}/controls/Control.hpp
${CRU_UI_INCLUDE_DIR}/controls/FlexLayout.hpp
+ ${CRU_UI_INCLUDE_DIR}/controls/LayoutControl.hpp
+ ${CRU_UI_INCLUDE_DIR}/controls/NoChildControl.hpp
${CRU_UI_INCLUDE_DIR}/controls/StackLayout.hpp
${CRU_UI_INCLUDE_DIR}/controls/TextBox.hpp
${CRU_UI_INCLUDE_DIR}/controls/TextBlock.hpp
+ ${CRU_UI_INCLUDE_DIR}/controls/Window.hpp
+ ${CRU_UI_INCLUDE_DIR}/events/UiEvent.hpp
+ ${CRU_UI_INCLUDE_DIR}/helper/ClickDetector.hpp
+ ${CRU_UI_INCLUDE_DIR}/helper/ShortcutHub.hpp
${CRU_UI_INCLUDE_DIR}/host/LayoutPaintCycler.hpp
${CRU_UI_INCLUDE_DIR}/host/WindowHost.hpp
${CRU_UI_INCLUDE_DIR}/render/Base.hpp
diff --git a/src/ui/LayoutControl.cpp b/src/ui/LayoutControl.cpp
deleted file mode 100644
index 351026f9..00000000
--- a/src/ui/LayoutControl.cpp
+++ /dev/null
@@ -1,6 +0,0 @@
-#include "cru/ui/LayoutControl.hpp"
-
-#include "cru/ui/Window.hpp"
-
-namespace cru::ui {
-} // namespace cru::ui
diff --git a/src/ui/NoChildControl.cpp b/src/ui/NoChildControl.cpp
deleted file mode 100644
index 8adbe3bc..00000000
--- a/src/ui/NoChildControl.cpp
+++ /dev/null
@@ -1,3 +0,0 @@
-#include "cru/ui/NoChildControl.hpp"
-
-namespace cru::ui {}
diff --git a/src/ui/controls/Button.cpp b/src/ui/controls/Button.cpp
index 5f7ed143..b7407ec2 100644
--- a/src/ui/controls/Button.cpp
+++ b/src/ui/controls/Button.cpp
@@ -5,9 +5,9 @@
#include "cru/platform/graphics/Brush.hpp"
#include "cru/platform/gui/Cursor.hpp"
#include "cru/platform/gui/UiApplication.hpp"
-#include "cru/ui/render/BorderRenderObject.hpp"
#include "cru/ui/UiManager.hpp"
-#include "cru/ui/Window.hpp"
+#include "cru/ui/helper/ClickDetector.hpp"
+#include "cru/ui/render/BorderRenderObject.hpp"
namespace cru::ui::controls {
using cru::platform::gui::SystemCursorType;
@@ -21,8 +21,7 @@ void Set(render::BorderRenderObject* o, const ButtonStateStyle& s) {
o->SetBackgroundBrush(s.background_brush);
}
-std::shared_ptr<platform::gui::ICursor> GetSystemCursor(
- SystemCursorType type) {
+std::shared_ptr<platform::gui::ICursor> GetSystemCursor(SystemCursorType type) {
return GetUiApplication()->GetCursorManager()->GetSystemCursor(type);
}
} // namespace
@@ -36,21 +35,21 @@ Button::Button() : click_detector_(this) {
render_object_->SetBorderEnabled(true);
click_detector_.StateChangeEvent()->AddHandler(
- [this](const ClickState& state) {
+ [this](const helper::ClickState& state) {
switch (state) {
- case ClickState::None:
+ case helper::ClickState::None:
Set(render_object_.get(), style_.normal);
SetCursor(GetSystemCursor(SystemCursorType::Arrow));
break;
- case ClickState::Hover:
+ case helper::ClickState::Hover:
Set(render_object_.get(), style_.hover);
SetCursor(GetSystemCursor(SystemCursorType::Hand));
break;
- case ClickState::Press:
+ case helper::ClickState::Press:
Set(render_object_.get(), style_.press);
SetCursor(GetSystemCursor(SystemCursorType::Hand));
break;
- case ClickState::PressInactive:
+ case helper::ClickState::PressInactive:
Set(render_object_.get(), style_.press_cancel);
SetCursor(GetSystemCursor(SystemCursorType::Arrow));
break;
diff --git a/src/ui/ContentControl.cpp b/src/ui/controls/ContentControl.cpp
index 19b1b06f..653882c0 100644
--- a/src/ui/ContentControl.cpp
+++ b/src/ui/controls/ContentControl.cpp
@@ -1,8 +1,6 @@
-#include "cru/ui/ContentControl.hpp"
+#include "cru/ui/controls/ContentControl.hpp"
-#include "cru/ui/Window.hpp"
-
-namespace cru::ui {
+namespace cru::ui::controls {
Control* ContentControl::GetChild() const {
if (GetChildren().empty()) return nullptr;
return GetChildren()[0];
@@ -24,4 +22,4 @@ void ContentControl::OnChildChanged(Control* old_child, Control* new_child) {
CRU_UNUSED(old_child)
CRU_UNUSED(new_child)
}
-} // namespace cru::ui
+} // namespace cru::ui::controls
diff --git a/src/ui/Control.cpp b/src/ui/controls/Control.cpp
index 23a3cef2..c1316a62 100644
--- a/src/ui/Control.cpp
+++ b/src/ui/controls/Control.cpp
@@ -1,4 +1,4 @@
-#include "cru/ui/Control.hpp"
+#include "cru/ui/controls/Control.hpp"
#include "cru/common/Base.hpp"
#include "cru/platform/gui/Cursor.hpp"
@@ -9,7 +9,7 @@
#include <memory>
-namespace cru::ui {
+namespace cru::ui::controls {
using platform::gui::ICursor;
using platform::gui::IUiApplication;
using platform::gui::SystemCursorType;
@@ -154,4 +154,4 @@ void Control::OnParentChanged(Control* old_parent, Control* new_parent) {
void Control::OnAttachToHost(host::WindowHost* host) { CRU_UNUSED(host) }
void Control::OnDetachFromHost(host::WindowHost* host) { CRU_UNUSED(host) }
-} // namespace cru::ui
+} // namespace cru::ui::controls
diff --git a/src/ui/controls/LayoutControl.cpp b/src/ui/controls/LayoutControl.cpp
new file mode 100644
index 00000000..85417beb
--- /dev/null
+++ b/src/ui/controls/LayoutControl.cpp
@@ -0,0 +1,3 @@
+#include "cru/ui/controls/LayoutControl.hpp"
+
+namespace cru::ui::controls {}
diff --git a/src/ui/controls/NoChildControl.cpp b/src/ui/controls/NoChildControl.cpp
new file mode 100644
index 00000000..c62c5819
--- /dev/null
+++ b/src/ui/controls/NoChildControl.cpp
@@ -0,0 +1,3 @@
+#include "cru/ui/controls/NoChildControl.hpp"
+
+namespace cru::ui::controls {}
diff --git a/src/ui/controls/TextControlService.hpp b/src/ui/controls/TextControlService.hpp
index a7e4e440..8ad95dec 100644
--- a/src/ui/controls/TextControlService.hpp
+++ b/src/ui/controls/TextControlService.hpp
@@ -8,10 +8,10 @@
#include "cru/platform/gui/UiApplication.hpp"
#include "cru/platform/gui/Window.hpp"
#include "cru/ui/Base.hpp"
-#include "cru/ui/Control.hpp"
#include "cru/ui/DebugFlags.hpp"
-#include "cru/ui/ShortcutHub.hpp"
-#include "cru/ui/UiEvent.hpp"
+#include "cru/ui/controls/Control.hpp"
+#include "cru/ui/events/UiEvent.hpp"
+#include "cru/ui/helper/ShortcutHub.hpp"
#include "cru/ui/host/WindowHost.hpp"
#include "cru/ui/render/CanvasRenderObject.hpp"
#include "cru/ui/render/ScrollRenderObject.hpp"
@@ -472,7 +472,7 @@ class TextControlService : public Object {
platform::gui::TimerAutoCanceler caret_timer_canceler_;
int caret_blink_duration_ = k_default_caret_blink_duration;
- ShortcutHub shortcut_hub_;
+ helper::ShortcutHub shortcut_hub_;
// nullopt means not selecting
std::optional<MouseButton> select_down_button_;
diff --git a/src/ui/Window.cpp b/src/ui/controls/Window.cpp
index c49140a4..7ce40dfe 100644
--- a/src/ui/Window.cpp
+++ b/src/ui/controls/Window.cpp
@@ -1,11 +1,11 @@
-#include "cru/ui/Window.hpp"
+#include "cru/ui/controls/Window.hpp"
#include "cru/common/Base.hpp"
#include "cru/ui/host/WindowHost.hpp"
#include "cru/ui/render/Base.hpp"
#include "cru/ui/render/StackLayoutRenderObject.hpp"
-namespace cru::ui {
+namespace cru::ui::controls {
Window* Window::CreateOverlapped() { return new Window(); }
Window::Window() : render_object_(new render::StackLayoutRenderObject()) {
@@ -29,4 +29,4 @@ void Window::OnRemoveChild(Control* child, Index position) {
CRU_UNUSED(child);
render_object_->RemoveChild(position);
}
-} // namespace cru::ui
+} // namespace cru::ui::controls
diff --git a/src/ui/UiEvent.cpp b/src/ui/events/UiEvent.cpp
index 74dd54dc..b35f15a7 100644
--- a/src/ui/UiEvent.cpp
+++ b/src/ui/events/UiEvent.cpp
@@ -1,4 +1,4 @@
-#include "cru/ui/UiEvent.hpp"
+#include "cru/ui/events/UiEvent.hpp"
#include "cru/ui/render/RenderObject.hpp"
diff --git a/src/ui/ClickDetector.cpp b/src/ui/helper/ClickDetector.cpp
index 09f208cd..4059f890 100644
--- a/src/ui/ClickDetector.cpp
+++ b/src/ui/helper/ClickDetector.cpp
@@ -1,11 +1,11 @@
-#include "cru/ui/ClickDetector.hpp"
+#include "cru/ui/helper/ClickDetector.hpp"
#include "cru/common/Logger.hpp"
#include <optional>
-namespace cru::ui {
-ClickDetector::ClickDetector(Control* control) {
+namespace cru::ui::helper {
+ClickDetector::ClickDetector(controls::Control* control) {
Expects(control);
control_ = control;
@@ -128,4 +128,4 @@ void ClickDetector::SetState(ClickState state) {
state_ = state;
state_change_event_.Raise(state);
}
-} // namespace cru::ui
+} // namespace cru::ui::helper
diff --git a/src/ui/ShortcutHub.cpp b/src/ui/helper/ShortcutHub.cpp
index c9ce6cdd..823072f2 100644
--- a/src/ui/ShortcutHub.cpp
+++ b/src/ui/helper/ShortcutHub.cpp
@@ -1,15 +1,15 @@
-#include "cru/ui/ShortcutHub.hpp"
+#include "cru/ui/helper/ShortcutHub.hpp"
#include "cru/common/Logger.hpp"
-#include "cru/ui/Control.hpp"
#include "cru/ui/DebugFlags.hpp"
+#include "cru/ui/controls/Control.hpp"
#include <algorithm>
#include <functional>
#include <iterator>
#include <optional>
-namespace cru::ui {
+namespace cru::ui::helper {
int ShortcutHub::RegisterShortcut(Shortcut shortcut) {
const int id = current_id_++;
map_[shortcut.key_bind].push_back({id, std::move(shortcut.name),
@@ -62,7 +62,7 @@ const std::vector<ShortcutInfo>& ShortcutHub::GetShortcutByKeyBind(
return empty_list_;
}
-void ShortcutHub::Install(Control* control) {
+void ShortcutHub::Install(controls::Control* control) {
if (!event_guard_.IsEmpty()) {
log::Error(u"Shortcut hub is already installed. Failed to install.");
return;
@@ -117,4 +117,4 @@ void ShortcutHub::OnKeyDown(event::KeyEventArgs& event) {
}
}
}
-} // namespace cru::ui
+} // namespace cru::ui::helper
diff --git a/src/ui/host/RoutedEventDispatch.hpp b/src/ui/host/RoutedEventDispatch.hpp
index de94a598..52507fc7 100644
--- a/src/ui/host/RoutedEventDispatch.hpp
+++ b/src/ui/host/RoutedEventDispatch.hpp
@@ -1,8 +1,7 @@
#pragma once
-#include "cru/ui/Control.hpp"
-
#include "cru/common/Logger.hpp"
#include "cru/ui/DebugFlags.hpp"
+#include "cru/ui/controls/Control.hpp"
#include <vector>
@@ -21,10 +20,11 @@ namespace cru::ui {
// "original_sender", which is unchanged. And "args" will be perfectly forwarded
// as the rest arguments.
template <typename EventArgs, typename... Args>
-void DispatchEvent(const std::u16string_view& event_name,
- Control* const original_sender,
- event::RoutedEvent<EventArgs>* (Control::*event_ptr)(),
- Control* const last_receiver, Args&&... args) {
+void DispatchEvent(
+ const std::u16string_view& event_name,
+ controls::Control* const original_sender,
+ event::RoutedEvent<EventArgs>* (controls::Control::*event_ptr)(),
+ controls::Control* const last_receiver, Args&&... args) {
CRU_UNUSED(event_name)
if (original_sender == last_receiver) {
@@ -36,7 +36,7 @@ void DispatchEvent(const std::u16string_view& event_name,
return;
}
- std::vector<Control*> receive_list;
+ std::vector<controls::Control*> receive_list;
auto parent = original_sender;
while (parent != last_receiver) {
diff --git a/src/ui/host/WindowHost.cpp b/src/ui/host/WindowHost.cpp
index e04fdf31..1702c4ed 100644
--- a/src/ui/host/WindowHost.cpp
+++ b/src/ui/host/WindowHost.cpp
@@ -8,7 +8,7 @@
#include "cru/platform/gui/UiApplication.hpp"
#include "cru/platform/gui/Window.hpp"
#include "cru/ui/DebugFlags.hpp"
-#include "cru/ui/Window.hpp"
+#include "cru/ui/controls/Window.hpp"
#include "cru/ui/host/LayoutPaintCycler.hpp"
#include "cru/ui/render/MeasureRequirement.hpp"
#include "cru/ui/render/RenderObject.hpp"
@@ -43,7 +43,7 @@ CRU_DEFINE_EVENT_NAME(KeyUp)
} // namespace event_names
namespace {
-bool IsAncestor(Control* control, Control* ancestor) {
+bool IsAncestor(controls::Control* control, controls::Control* ancestor) {
while (control != nullptr) {
if (control == ancestor) return true;
control = control->GetParent();
@@ -52,8 +52,8 @@ bool IsAncestor(Control* control, Control* ancestor) {
}
// Ancestor at last.
-std::vector<Control*> GetAncestorList(Control* control) {
- std::vector<Control*> l;
+std::vector<controls::Control*> GetAncestorList(controls::Control* control) {
+ std::vector<controls::Control*> l;
while (control != nullptr) {
l.push_back(control);
control = control->GetParent();
@@ -61,7 +61,8 @@ std::vector<Control*> GetAncestorList(Control* control) {
return l;
}
-Control* FindLowestCommonAncestor(Control* left, Control* right) {
+controls::Control* FindLowestCommonAncestor(controls::Control* left,
+ controls::Control* right) {
if (left == nullptr || right == nullptr) return nullptr;
auto&& left_list = GetAncestorList(left);
@@ -102,13 +103,13 @@ inline void BindNativeEvent(
}
} // namespace
-WindowHost::WindowHost(Control* root_control)
+WindowHost::WindowHost(controls::Control* root_control)
: root_control_(root_control), focus_control_(root_control) {
const auto ui_application = IUiApplication::GetInstance();
auto native_window = ui_application->CreateWindow(nullptr);
native_window_ = native_window;
- root_control_->TraverseDescendants([this](Control* control) {
+ root_control_->TraverseDescendants([this](controls::Control* control) {
control->window_host_ = this;
control->OnAttachToHost(this);
});
@@ -195,9 +196,9 @@ void WindowHost::Repaint() {
painter->EndDraw();
}
-Control* WindowHost::GetFocusControl() { return focus_control_; }
+controls::Control* WindowHost::GetFocusControl() { return focus_control_; }
-void WindowHost::SetFocusControl(Control* control) {
+void WindowHost::SetFocusControl(controls::Control* control) {
if (focus_control_ == control) return;
if (control == nullptr) control = root_control_;
@@ -206,13 +207,13 @@ void WindowHost::SetFocusControl(Control* control) {
focus_control_ = control;
DispatchEvent(event_names::LoseFocus, old_focus_control,
- &Control::LoseFocusEvent, nullptr, false);
+ &controls::Control::LoseFocusEvent, nullptr, false);
- DispatchEvent(event_names::GainFocus, control, &Control::GainFocusEvent,
- nullptr, false);
+ DispatchEvent(event_names::GainFocus, control,
+ &controls::Control::GainFocusEvent, nullptr, false);
}
-bool WindowHost::CaptureMouseFor(Control* control) {
+bool WindowHost::CaptureMouseFor(controls::Control* control) {
if (!native_window_) return false;
if (control == mouse_captured_control_) return true;
@@ -240,7 +241,7 @@ bool WindowHost::CaptureMouseFor(Control* control) {
return true;
}
-Control* WindowHost::GetMouseCaptureControl() {
+controls::Control* WindowHost::GetMouseCaptureControl() {
return mouse_captured_control_;
}
@@ -275,9 +276,9 @@ void WindowHost::OnNativeFocus(INativeWindow* window,
focus == platform::gui::FocusChangeType::Gain
? DispatchEvent(event_names::GainFocus, focus_control_,
- &Control::GainFocusEvent, nullptr, true)
+ &controls::Control::GainFocusEvent, nullptr, true)
: DispatchEvent(event_names::LoseFocus, focus_control_,
- &Control::LoseFocusEvent, nullptr, true);
+ &controls::Control::LoseFocusEvent, nullptr, true);
}
void WindowHost::OnNativeMouseEnterLeave(
@@ -286,7 +287,7 @@ void WindowHost::OnNativeMouseEnterLeave(
if (type == platform::gui::MouseEnterLeaveType::Leave) {
DispatchEvent(event_names::MouseLeave, mouse_hover_control_,
- &Control::MouseLeaveEvent, nullptr);
+ &controls::Control::MouseLeaveEvent, nullptr);
mouse_hover_control_ = nullptr;
}
}
@@ -306,13 +307,14 @@ void WindowHost::OnNativeMouseMove(INativeWindow* window, const Point& point) {
mouse_captured_control_);
bool a = IsAncestor(o, n);
if (a) {
- DispatchEvent(event_names::MouseLeave, o, &Control::MouseLeaveEvent, n);
+ DispatchEvent(event_names::MouseLeave, o,
+ &controls::Control::MouseLeaveEvent, n);
} else {
- DispatchEvent(event_names::MouseEnter, n, &Control::MouseEnterEvent, o,
- point);
+ DispatchEvent(event_names::MouseEnter, n,
+ &controls::Control::MouseEnterEvent, o, point);
}
DispatchEvent(event_names::MouseMove, mouse_captured_control_,
- &Control::MouseMoveEvent, nullptr, point);
+ &controls::Control::MouseMoveEvent, nullptr, point);
UpdateCursor();
return;
}
@@ -320,7 +322,7 @@ void WindowHost::OnNativeMouseMove(INativeWindow* window, const Point& point) {
DispatchMouseHoverControlChangeEvent(
old_mouse_hover_control, new_mouse_hover_control, point, false, false);
DispatchEvent(event_names::MouseMove, new_mouse_hover_control,
- &Control::MouseMoveEvent, nullptr, point);
+ &controls::Control::MouseMoveEvent, nullptr, point);
UpdateCursor();
}
@@ -329,10 +331,11 @@ void WindowHost::OnNativeMouseDown(
const platform::gui::NativeMouseButtonEventArgs& args) {
CRU_UNUSED(window)
- Control* control =
+ controls::Control* control =
mouse_captured_control_ ? mouse_captured_control_ : HitTest(args.point);
- DispatchEvent(event_names::MouseDown, control, &Control::MouseDownEvent,
- nullptr, args.point, args.button, args.modifier);
+ DispatchEvent(event_names::MouseDown, control,
+ &controls::Control::MouseDownEvent, nullptr, args.point,
+ args.button, args.modifier);
}
void WindowHost::OnNativeMouseUp(
@@ -340,44 +343,44 @@ void WindowHost::OnNativeMouseUp(
const platform::gui::NativeMouseButtonEventArgs& args) {
CRU_UNUSED(window)
- Control* control =
+ controls::Control* control =
mouse_captured_control_ ? mouse_captured_control_ : HitTest(args.point);
- DispatchEvent(event_names::MouseUp, control, &Control::MouseUpEvent, nullptr,
- args.point, args.button, args.modifier);
+ DispatchEvent(event_names::MouseUp, control, &controls::Control::MouseUpEvent,
+ nullptr, args.point, args.button, args.modifier);
}
void WindowHost::OnNativeKeyDown(
INativeWindow* window, const platform::gui::NativeKeyEventArgs& args) {
CRU_UNUSED(window)
- DispatchEvent(event_names::KeyDown, focus_control_, &Control::KeyDownEvent,
- nullptr, args.key, args.modifier);
+ DispatchEvent(event_names::KeyDown, focus_control_,
+ &controls::Control::KeyDownEvent, nullptr, args.key,
+ args.modifier);
}
void WindowHost::OnNativeKeyUp(INativeWindow* window,
const platform::gui::NativeKeyEventArgs& args) {
CRU_UNUSED(window)
- DispatchEvent(event_names::KeyUp, focus_control_, &Control::KeyUpEvent,
- nullptr, args.key, args.modifier);
+ DispatchEvent(event_names::KeyUp, focus_control_,
+ &controls::Control::KeyUpEvent, nullptr, args.key,
+ args.modifier);
}
-void WindowHost::DispatchMouseHoverControlChangeEvent(Control* old_control,
- Control* new_control,
- const Point& point,
- bool no_leave,
- bool no_enter) {
+void WindowHost::DispatchMouseHoverControlChangeEvent(
+ controls::Control* old_control, controls::Control* new_control,
+ const Point& point, bool no_leave, bool no_enter) {
if (new_control != old_control) // if the mouse-hover-on control changed
{
const auto lowest_common_ancestor =
FindLowestCommonAncestor(old_control, new_control);
if (!no_leave && old_control != nullptr)
DispatchEvent(event_names::MouseLeave, old_control,
- &Control::MouseLeaveEvent,
+ &controls::Control::MouseLeaveEvent,
lowest_common_ancestor); // dispatch mouse leave event.
if (!no_enter && new_control != nullptr) {
DispatchEvent(event_names::MouseEnter, new_control,
- &Control::MouseEnterEvent, lowest_common_ancestor,
+ &controls::Control::MouseEnterEvent, lowest_common_ancestor,
point); // dispatch mouse enter event.
}
}
@@ -391,7 +394,7 @@ void WindowHost::UpdateCursor() {
}
}
-Control* WindowHost::HitTest(const Point& point) {
+controls::Control* WindowHost::HitTest(const Point& point) {
const auto render_object = root_render_object_->HitTest(point);
if (render_object) {
const auto control = render_object->GetAttachedControl();