Awesome, everything works! I saw that parameter, but stupidly concluded I needed to pass in true to do what I wanted instead of false.
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts Menu
//doesnt fix it
theResizedWindow.setView(recalculatedDefaultView);
gui.draw()
//doesnt fix it
gui.setWindow(theResizedWindow);
void WidgetBase::f_callback(const tgui::Callback& callback)
{
if(callbackHook(callback))
{
}
else if(callback.trigger == tgui::Widget::WidgetCallbacks::MouseEntered)
{
f_MouseEntered();
}
else if(callback.trigger == tgui::Widget::WidgetCallbacks::MouseLeft)
{
f_MouseLeft();
}
else if(callback.trigger == tgui::ClickableWidget::LeftMouseClicked)
{
f_LeftMouseClicked();
}
else if(callback.trigger == tgui::ClickableWidget::LeftMousePressed)
{
f_LeftMousePressed();
}
else if(callback.trigger == tgui::ClickableWidget::LeftMouseReleased)
{
f_LeftMouseReleased();
}
}
void WidgetBase::f_MouseEntered()
{
sf::Packet pack;
mouseEnteredHook(pack);
m_io.event(EventType::MouseEntered, 0, pack);
}
bool callbackHook(const tgui::Callback& callback);
void WidgetBase::f_assign(tgui::Widget* pWidget)
{
m_pWidget->bindCallbackEx(&WidgetBase::f_callback, this, 4095);
}
Quote from: texus on 21 October 2014, 10:21:03If you have multiple sfml and tgui folders you should remove them to make sure that you can't be using the wrong one accidentally. And make sure that all dll files are coming from these folders.
Quote from: texus on 21 October 2014, 10:21:03There must still be a configuration mistake on his pc then.
if (rEvent.key.code == sf::Keyboard::F1)
{
m_pCPT->setState(PlayerState::Editing);
}
// somewhere else in the code:
else if(m_pCPT->getState() == PlayerState::Editing)
{
if (rEvent.type == sf::Event::MouseButtonPressed)
{
tgui::Widget::Ptr widget = f_MouseOnWhichWidget(rEvent.mouseButton.x, rEvent.mouseButton.y, m_rGui.getWidgets());
if(widget != nullptr)
{
if(widget->getWidgetType() == tgui::WidgetTypes::Type_Panel)
{
if(f_MouseOnWhichWidget(rEvent.mouseButton.x, rEvent.mouseButton.y, tgui::Panel::Ptr(widget)->getWidgets()) == nullptr)
{
m_pDraggingWidget = widget;
m_pDraggingPosition = sf::Vector2f(rEvent.mouseButton.x, rEvent.mouseButton.y);
}
}
}
}
else if (rEvent.type == sf::Event::MouseButtonReleased)
{
m_pDraggingWidget = nullptr;
}
else if (rEvent.type == sf::Event::MouseMoved)
{
if (m_pDraggingWidget != nullptr)
{
m_pDraggingWidget->setPosition(m_pDraggingWidget->getPosition().x + rEvent.mouseMove.x - m_pDraggingPosition.x,
m_pDraggingWidget->getPosition().y + rEvent.mouseMove.y - m_pDraggingPosition.y);
m_pDraggingPosition = sf::Vector2f(rEvent.mouseMove.x, rEvent.mouseMove.y);
}
}
}
tgui::Widget::Ptr MouseOnWhichWidget(float x, float y, std::vector<tgui::Widget::Ptr>& widgets)
{
for (std::vector<tgui::Widget::Ptr>::reverse_iterator it = widgets.rbegin(); it != widgets.rend(); ++it)
if (((*it)->isVisible()) && ((*it)->isEnabled()) && ((*it)->mouseOnWidget(x, y)))
return *it;
return nullptr;
};