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