Platform/Events: Replace MousebuttonDoubleClicked with clickCount in MouseButtonEvent

This commit is contained in:
Jérôme Leclercq
2021-11-30 12:38:57 +01:00
parent f7b69e11c2
commit e73489e958
8 changed files with 20 additions and 17 deletions

View File

@@ -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;

View File

@@ -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*/)
{
}

View File

@@ -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);