Widgets: Rework event dispatching

This commit is contained in:
SirLynix
2022-07-20 13:36:21 +02:00
committed by Jérôme Leclercq
parent 05c78da22a
commit 0fcf24f336
14 changed files with 175 additions and 76 deletions

View File

@@ -102,15 +102,14 @@ namespace Nz
void OnFocusLost() override;
void OnFocusReceived() override;
bool OnKeyPressed(const WindowEvent::KeyEvent& key) override;
void OnKeyReleased(const WindowEvent::KeyEvent& key) override;
void OnMouseButtonDoublePress(int x, int y, Mouse::Button button) override;
void OnMouseButtonPress(int x, int y, Mouse::Button button) override;
void OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
void OnMouseButtonTriplePress(int x, int y, Mouse::Button button) override;
bool OnMouseButtonDoublePress(int x, int y, Mouse::Button button) override;
bool OnMouseButtonPress(int x, int y, Mouse::Button button) override;
bool OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
bool OnMouseButtonTriplePress(int x, int y, Mouse::Button button) override;
void OnMouseEnter() override;
void OnMouseMoved(int x, int y, int deltaX, int deltaY) override;
bool OnMouseMoved(int x, int y, int deltaX, int deltaY) override;
void OnRenderLayerUpdated(int baseRenderLayer) override;
void OnTextEntered(char32_t character, bool repeated) override;
bool OnTextEntered(char32_t character, bool repeated) override;
virtual void PasteFromClipboard(const Vector2ui& targetPosition) = 0;

View File

@@ -128,19 +128,19 @@ namespace Nz
virtual void OnFocusLost();
virtual void OnFocusReceived();
virtual bool OnKeyPressed(const WindowEvent::KeyEvent& key);
virtual void OnKeyReleased(const WindowEvent::KeyEvent& key);
virtual bool OnKeyReleased(const WindowEvent::KeyEvent& key);
virtual void OnMouseEnter();
virtual void OnMouseMoved(int x, int y, int deltaX, int deltaY);
virtual void OnMouseButtonDoublePress(int x, int y, Mouse::Button button);
virtual void OnMouseButtonPress(int x, int y, Mouse::Button button);
virtual void OnMouseButtonRelease(int x, int y, Mouse::Button button);
virtual void OnMouseButtonTriplePress(int x, int y, Mouse::Button button);
virtual void OnMouseWheelMoved(int x, int y, float delta);
virtual bool OnMouseMoved(int x, int y, int deltaX, int deltaY);
virtual bool OnMouseButtonDoublePress(int x, int y, Mouse::Button button);
virtual bool OnMouseButtonPress(int x, int y, Mouse::Button button);
virtual bool OnMouseButtonRelease(int x, int y, Mouse::Button button);
virtual bool OnMouseButtonTriplePress(int x, int y, Mouse::Button button);
virtual bool OnMouseWheelMoved(int x, int y, float delta);
virtual void OnMouseExit();
virtual void OnRenderLayerUpdated(int baseRenderLayer);
virtual void OnParentResized(const Vector2f& newSize);
virtual void OnTextEntered(char32_t character, bool repeated);
virtual void OnTextEdited(const std::array<char, 32>& characters, int length);
virtual bool OnTextEntered(char32_t character, bool repeated);
virtual bool OnTextEdited(const std::array<char, 32>& characters, int length);
inline void SetBaseRenderLayer(int baseRenderLayer);
inline void SetPreferredSize(const Vector2f& preferredSize);
@@ -156,6 +156,7 @@ namespace Nz
inline bool IsRegisteredToCanvas() const;
inline void NotifyParentResized(const Vector2f& newSize);
void RegisterToCanvas();
void SetParent(BaseWidget* widget);
inline void UpdateCanvasIndex(std::size_t index);
void UnregisterFromCanvas();
void UpdatePositionAndSize();

View File

@@ -37,8 +37,8 @@ namespace Nz
void Layout() override;
void OnMouseEnter() override;
void OnMouseButtonPress(int x, int y, Mouse::Button button) override;
void OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
bool OnMouseButtonPress(int x, int y, Mouse::Button button) override;
bool OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
void OnMouseExit() override;
void OnRenderLayerUpdated(int baseRenderLayer) override;

View File

@@ -55,6 +55,8 @@ namespace Nz
void UnregisterWidget(std::size_t index);
private:
template<typename F> void DispatchEvent(std::size_t widgetIndex, F&& functor);
void OnEventMouseButtonPressed(const EventHandler* eventHandler, const WindowEvent::MouseButtonEvent& event);
void OnEventMouseButtonRelease(const EventHandler* eventHandler, const WindowEvent::MouseButtonEvent& event);
void OnEventMouseEntered(const EventHandler* eventHandler);

View File

@@ -44,8 +44,8 @@ namespace Nz
void Layout() override;
void OnMouseEnter() override;
void OnMouseButtonPress(int x, int y, Mouse::Button button) override;
void OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
bool OnMouseButtonPress(int x, int y, Mouse::Button button) override;
bool OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
void OnMouseExit() override;
void OnRenderLayerUpdated(int baseRenderLayer) override;

View File

@@ -52,8 +52,8 @@ namespace Nz
void Layout() override;
void OnMouseEnter() override;
void OnMouseButtonPress(int x, int y, Mouse::Button button) override;
void OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
bool OnMouseButtonPress(int x, int y, Mouse::Button button) override;
bool OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
void OnMouseExit() override;
void OnRenderLayerUpdated(int baseRenderLayer) override;

View File

@@ -37,10 +37,10 @@ namespace Nz
void Layout() override;
void OnMouseEnter() override;
void OnMouseButtonPress(int x, int y, Mouse::Button button) override;
void OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
bool OnMouseButtonPress(int x, int y, Mouse::Button button) override;
bool OnMouseButtonRelease(int x, int y, Mouse::Button button) override;
void OnMouseExit() override;
void OnMouseMoved(int x, int y, int deltaX, int deltaY) override;
bool OnMouseMoved(int x, int y, int deltaX, int deltaY) override;
void OnRenderLayerUpdated(int baseRenderLayer) override;