Custom widgets can now access right mouse events

0.8
Bruno Van de Velde 2017-09-09 16:01:35 +02:00
parent e627b918f4
commit 9e5b8e5fd4
3 changed files with 35 additions and 5 deletions

View File

@ -451,6 +451,16 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void leftMouseReleased(sf::Vector2f pos);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @internal
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void rightMousePressed(sf::Vector2f pos);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @internal
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
virtual void rightMouseReleased(sf::Vector2f pos);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// @internal
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

View File

@ -746,9 +746,8 @@ namespace tgui
return false;
}
// Check if a mouse button was pressed
else if (((event.type == sf::Event::MouseButtonPressed) && (event.mouseButton.button == sf::Mouse::Left))
|| ((event.type == sf::Event::TouchBegan) && (event.touch.finger == 0)))
// Check if a mouse button was pressed or a touch event occurred
else if ((event.type == sf::Event::MouseButtonPressed) || (event.type == sf::Event::TouchBegan))
{
sf::Vector2f mousePos;
if (event.type == sf::Event::MouseButtonPressed)
@ -775,8 +774,17 @@ namespace tgui
}
}
widget->leftMousePressed(mousePos);
return true;
if (((event.type == sf::Event::MouseButtonPressed) && (event.mouseButton.button == sf::Mouse::Left))
|| ((event.type == sf::Event::TouchBegan) && (event.touch.finger == 0)))
{
widget->leftMousePressed(mousePos);
return true;
}
else if ((event.type == sf::Event::MouseButtonPressed) && (event.mouseButton.button == sf::Mouse::Right))
{
widget->rightMousePressed(mousePos);
return true;
}
}
else // The mouse did not went down on a widget, so unfocus the focused widget
unfocusWidgets();

View File

@ -623,6 +623,18 @@ namespace tgui
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Widget::rightMousePressed(sf::Vector2f)
{
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Widget::rightMouseReleased(sf::Vector2f)
{
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void Widget::mouseMoved(sf::Vector2f)
{
if (!m_mouseHover)