mirror of
https://gitlab.com/OpenMW/openmw.git
synced 2025-09-16 16:06:23 -04:00
Show tooltips in controller mode on spell menus
This commit is contained in:
parent
b1989ffdf7
commit
ea70f2b5c2
@ -9,6 +9,7 @@
|
|||||||
#include <components/settings/values.hpp>
|
#include <components/settings/values.hpp>
|
||||||
|
|
||||||
#include "../mwbase/environment.hpp"
|
#include "../mwbase/environment.hpp"
|
||||||
|
#include "../mwbase/inputmanager.hpp"
|
||||||
#include "../mwbase/mechanicsmanager.hpp"
|
#include "../mwbase/mechanicsmanager.hpp"
|
||||||
#include "../mwbase/windowmanager.hpp"
|
#include "../mwbase/windowmanager.hpp"
|
||||||
|
|
||||||
@ -37,6 +38,7 @@ namespace MWGui
|
|||||||
mDisableGamepadCursor = true;
|
mDisableGamepadCursor = true;
|
||||||
mControllerButtons.a = "#{sBuy}";
|
mControllerButtons.a = "#{sBuy}";
|
||||||
mControllerButtons.b = "#{sCancel}";
|
mControllerButtons.b = "#{sCancel}";
|
||||||
|
mControllerButtons.r3 = "#{sInfo}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,6 +146,13 @@ namespace MWGui
|
|||||||
mControllerFocus = 0;
|
mControllerFocus = 0;
|
||||||
if (mSpellButtons.size() > 0)
|
if (mSpellButtons.size() > 0)
|
||||||
mSpellButtons[0].first->setStateSelected(true);
|
mSpellButtons[0].first->setStateSelected(true);
|
||||||
|
|
||||||
|
MWBase::WindowManager* winMgr = MWBase::Environment::get().getWindowManager();
|
||||||
|
if (winMgr->getControllerTooltip())
|
||||||
|
{
|
||||||
|
winMgr->setCursorActive(false);
|
||||||
|
winMgr->setControllerTooltip(false);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Canvas size must be expressed with VScroll disabled, otherwise MyGUI would expand the scroll area when the
|
// Canvas size must be expressed with VScroll disabled, otherwise MyGUI would expand the scroll area when the
|
||||||
@ -228,6 +237,12 @@ namespace MWGui
|
|||||||
{
|
{
|
||||||
onCancelButtonClicked(mCancelButton);
|
onCancelButtonClicked(mCancelButton);
|
||||||
}
|
}
|
||||||
|
else if (arg.button == SDL_CONTROLLER_BUTTON_RIGHTSTICK)
|
||||||
|
{
|
||||||
|
// Toggle info tooltip
|
||||||
|
MWBase::Environment::get().getWindowManager()->setControllerTooltip(
|
||||||
|
!MWBase::Environment::get().getWindowManager()->getControllerTooltip());
|
||||||
|
}
|
||||||
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_UP)
|
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_UP)
|
||||||
{
|
{
|
||||||
if (mSpellButtons.size() <= 1)
|
if (mSpellButtons.size() <= 1)
|
||||||
@ -258,6 +273,10 @@ namespace MWGui
|
|||||||
const int lineHeight = Settings::gui().mFontSize + 2;
|
const int lineHeight = Settings::gui().mFontSize + 2;
|
||||||
mSpellsView->setViewOffset(MyGUI::IntPoint(0, -lineHeight * (line - 5)));
|
mSpellsView->setViewOffset(MyGUI::IntPoint(0, -lineHeight * (line - 5)));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Warp the mouse to the selected spell to show the tooltip
|
||||||
|
if (MWBase::Environment::get().getWindowManager()->getControllerTooltip())
|
||||||
|
MWBase::Environment::get().getInputManager()->warpMouseToWidget(mSpellButtons[mControllerFocus].first);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
#include "../mwbase/environment.hpp"
|
#include "../mwbase/environment.hpp"
|
||||||
#include "../mwbase/mechanicsmanager.hpp"
|
#include "../mwbase/mechanicsmanager.hpp"
|
||||||
|
#include "../mwbase/inputmanager.hpp"
|
||||||
#include "../mwbase/windowmanager.hpp"
|
#include "../mwbase/windowmanager.hpp"
|
||||||
|
|
||||||
#include "../mwworld/class.hpp"
|
#include "../mwworld/class.hpp"
|
||||||
@ -102,6 +103,7 @@ namespace MWGui
|
|||||||
mControllerButtons.a = "#{sSelect}";
|
mControllerButtons.a = "#{sSelect}";
|
||||||
mControllerButtons.b = "#{sCancel}";
|
mControllerButtons.b = "#{sCancel}";
|
||||||
mControllerButtons.x = "#{sOk}";
|
mControllerButtons.x = "#{sOk}";
|
||||||
|
mControllerButtons.r3 = "#{sInfo}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -615,6 +617,13 @@ namespace MWGui
|
|||||||
mPtr = actor;
|
mPtr = actor;
|
||||||
mNameEdit->setCaption({});
|
mNameEdit->setCaption({});
|
||||||
|
|
||||||
|
MWBase::WindowManager* winMgr = MWBase::Environment::get().getWindowManager();
|
||||||
|
if (Settings::gui().mControllerMenus && winMgr->getControllerTooltip())
|
||||||
|
{
|
||||||
|
winMgr->setCursorActive(false);
|
||||||
|
winMgr->setControllerTooltip(false);
|
||||||
|
}
|
||||||
|
|
||||||
startEditing();
|
startEditing();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1048,6 +1057,12 @@ namespace MWGui
|
|||||||
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
|
MWBase::Environment::get().getWindowManager()->playSound(ESM::RefId::stringRefId("Menu Click"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else if (arg.button == SDL_CONTROLLER_BUTTON_RIGHTSTICK)
|
||||||
|
{
|
||||||
|
// Toggle info tooltip
|
||||||
|
MWBase::Environment::get().getWindowManager()->setControllerTooltip(
|
||||||
|
!MWBase::Environment::get().getWindowManager()->getControllerTooltip());
|
||||||
|
}
|
||||||
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_UP)
|
else if (arg.button == SDL_CONTROLLER_BUTTON_DPAD_UP)
|
||||||
{
|
{
|
||||||
if (mRightColumn && mEffectButtons.size() > 0)
|
if (mRightColumn && mEffectButtons.size() > 0)
|
||||||
@ -1108,6 +1123,13 @@ namespace MWGui
|
|||||||
mAvailableEffectsList->setViewOffset(-lineHeight * (mAvailableFocus - 5));
|
mAvailableEffectsList->setViewOffset(-lineHeight * (mAvailableFocus - 5));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!mRightColumn && mAvailableFocus >= 0 && mAvailableFocus < mAvailableButtons.size())
|
||||||
|
{
|
||||||
|
// Warp the mouse to the selected spell to show the tooltip
|
||||||
|
if (MWBase::Environment::get().getWindowManager()->getControllerTooltip())
|
||||||
|
MWBase::Environment::get().getInputManager()->warpMouseToWidget(mAvailableButtons[mAvailableFocus]);
|
||||||
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user