Platform/Events: Replace MousebuttonDoubleClicked with clickCount in MouseButtonEvent
This commit is contained in:
parent
f7b69e11c2
commit
e73489e958
|
|
@ -52,7 +52,6 @@ namespace Nz
|
||||||
LostFocus,
|
LostFocus,
|
||||||
KeyPressed,
|
KeyPressed,
|
||||||
KeyReleased,
|
KeyReleased,
|
||||||
MouseButtonDoubleClicked,
|
|
||||||
MouseButtonPressed,
|
MouseButtonPressed,
|
||||||
MouseButtonReleased,
|
MouseButtonReleased,
|
||||||
MouseEntered,
|
MouseEntered,
|
||||||
|
|
|
||||||
|
|
@ -34,13 +34,14 @@ namespace Nz
|
||||||
};
|
};
|
||||||
|
|
||||||
// Used by:
|
// Used by:
|
||||||
// -WindowEventType::MouseButtonDoubleClicked
|
|
||||||
// -WindowEventType::MouseButtonPressed
|
// -WindowEventType::MouseButtonPressed
|
||||||
|
// -WindowEventType::MouseButtonReleased
|
||||||
struct MouseButtonEvent
|
struct MouseButtonEvent
|
||||||
{
|
{
|
||||||
Mouse::Button button;
|
Mouse::Button button;
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
|
unsigned int clickCount; //< 1 for simple click, 2 for double click, 3 for triple click. (always 1 on release event)
|
||||||
};
|
};
|
||||||
|
|
||||||
// Used by:
|
// Used by:
|
||||||
|
|
@ -104,8 +105,8 @@ namespace Nz
|
||||||
KeyEvent key;
|
KeyEvent key;
|
||||||
|
|
||||||
// Used by:
|
// Used by:
|
||||||
// -WindowEventType::MouseButtonDoubleClicked
|
|
||||||
// -WindowEventType::MouseButtonPressed
|
// -WindowEventType::MouseButtonPressed
|
||||||
|
// -WindowEventType::MouseButtonReleased
|
||||||
MouseButtonEvent mouseButton;
|
MouseButtonEvent mouseButton;
|
||||||
|
|
||||||
// Used by:
|
// Used by:
|
||||||
|
|
|
||||||
|
|
@ -38,7 +38,6 @@ namespace Nz
|
||||||
NazaraSignal(OnLostFocus, const EventHandler* /*eventHandler*/);
|
NazaraSignal(OnLostFocus, const EventHandler* /*eventHandler*/);
|
||||||
NazaraSignal(OnKeyPressed, const EventHandler* /*eventHandler*/, const WindowEvent::KeyEvent& /*event*/);
|
NazaraSignal(OnKeyPressed, const EventHandler* /*eventHandler*/, const WindowEvent::KeyEvent& /*event*/);
|
||||||
NazaraSignal(OnKeyReleased, const EventHandler* /*eventHandler*/, const WindowEvent::KeyEvent& /*event*/);
|
NazaraSignal(OnKeyReleased, const EventHandler* /*eventHandler*/, const WindowEvent::KeyEvent& /*event*/);
|
||||||
NazaraSignal(OnMouseButtonDoubleClicked, const EventHandler* /*eventHandler*/, const WindowEvent::MouseButtonEvent& /*event*/);
|
|
||||||
NazaraSignal(OnMouseButtonPressed, const EventHandler* /*eventHandler*/, const WindowEvent::MouseButtonEvent& /*event*/);
|
NazaraSignal(OnMouseButtonPressed, const EventHandler* /*eventHandler*/, const WindowEvent::MouseButtonEvent& /*event*/);
|
||||||
NazaraSignal(OnMouseButtonReleased, const EventHandler* /*eventHandler*/, const WindowEvent::MouseButtonEvent& /*event*/);
|
NazaraSignal(OnMouseButtonReleased, const EventHandler* /*eventHandler*/, const WindowEvent::MouseButtonEvent& /*event*/);
|
||||||
NazaraSignal(OnMouseEntered, const EventHandler* /*eventHandler*/);
|
NazaraSignal(OnMouseEntered, const EventHandler* /*eventHandler*/);
|
||||||
|
|
|
||||||
|
|
@ -35,10 +35,6 @@ namespace Nz
|
||||||
OnLostFocus(this);
|
OnLostFocus(this);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case WindowEventType::MouseButtonDoubleClicked:
|
|
||||||
OnMouseButtonDoubleClicked(this, event.mouseButton);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case WindowEventType::MouseButtonPressed:
|
case WindowEventType::MouseButtonPressed:
|
||||||
OnMouseButtonPressed(this, event.mouseButton);
|
OnMouseButtonPressed(this, event.mouseButton);
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -129,8 +129,10 @@ namespace Nz
|
||||||
virtual void OnKeyReleased(const WindowEvent::KeyEvent& key);
|
virtual void OnKeyReleased(const WindowEvent::KeyEvent& key);
|
||||||
virtual void OnMouseEnter();
|
virtual void OnMouseEnter();
|
||||||
virtual void OnMouseMoved(int x, int y, int deltaX, int deltaY);
|
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 OnMouseButtonPress(int x, int y, Mouse::Button button);
|
||||||
virtual void OnMouseButtonRelease(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 void OnMouseWheelMoved(int x, int y, float delta);
|
||||||
virtual void OnMouseExit();
|
virtual void OnMouseExit();
|
||||||
virtual void OnParentResized(const Vector2f& newSize);
|
virtual void OnParentResized(const Vector2f& newSize);
|
||||||
|
|
|
||||||
|
|
@ -389,14 +389,7 @@ namespace Nz
|
||||||
evt.mouseButton.button = SDLToNazaraButton(event->button.button);
|
evt.mouseButton.button = SDLToNazaraButton(event->button.button);
|
||||||
evt.mouseButton.x = event->button.x;
|
evt.mouseButton.x = event->button.x;
|
||||||
evt.mouseButton.y = event->button.y;
|
evt.mouseButton.y = event->button.y;
|
||||||
|
evt.mouseButton.clickCount = event->button.clicks;
|
||||||
if (event->button.clicks % 2 == 0)
|
|
||||||
{
|
|
||||||
evt.type = WindowEventType::MouseButtonDoubleClicked;
|
|
||||||
|
|
||||||
window->m_parent->PushEvent(evt);
|
|
||||||
}
|
|
||||||
|
|
||||||
evt.type = WindowEventType::MouseButtonPressed;
|
evt.type = WindowEventType::MouseButtonPressed;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
|
||||||
|
|
@ -282,6 +282,10 @@ namespace Nz
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BaseWidget::OnMouseButtonDoublePress(int /*x*/, int /*y*/, Mouse::Button /*button*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void BaseWidget::OnMouseButtonPress(int /*x*/, int /*y*/, Mouse::Button /*button*/)
|
void BaseWidget::OnMouseButtonPress(int /*x*/, int /*y*/, Mouse::Button /*button*/)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
@ -290,6 +294,10 @@ namespace Nz
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BaseWidget::OnMouseButtonTriplePress(int /*x*/, int /*y*/, Mouse::Button /*button*/)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
void BaseWidget::OnMouseWheelMoved(int /*x*/, int /*y*/, float /*delta*/)
|
void BaseWidget::OnMouseWheelMoved(int /*x*/, int /*y*/, float /*delta*/)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -98,7 +98,12 @@ namespace Nz
|
||||||
int x = static_cast<int>(std::round(event.x - hoveredWidget.box.x));
|
int x = static_cast<int>(std::round(event.x - hoveredWidget.box.x));
|
||||||
int y = static_cast<int>(std::round(m_size.y - event.y - hoveredWidget.box.y));
|
int y = static_cast<int>(std::round(m_size.y - event.y - hoveredWidget.box.y));
|
||||||
|
|
||||||
hoveredWidget.widget->OnMouseButtonPress(x, y, event.button);
|
if (event.clickCount == 2)
|
||||||
|
targetWidget.widget->OnMouseButtonDoublePress(x, y, event.button);
|
||||||
|
else if (event.clickCount == 3)
|
||||||
|
targetWidget.widget->OnMouseButtonTriplePress(x, y, event.button);
|
||||||
|
else
|
||||||
|
targetWidget.widget->OnMouseButtonPress(x, y, event.button);
|
||||||
}
|
}
|
||||||
|
|
||||||
SetMouseOwner(m_hoveredWidget);
|
SetMouseOwner(m_hoveredWidget);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue