mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-04-01 21:06:43 +00:00
GUI mode dependent position
This commit is contained in:
parent
e27ba55541
commit
7ed763262f
3 changed files with 56 additions and 1 deletions
|
@ -36,6 +36,11 @@ namespace MWGui
|
||||||
, mPreview(MWBase::Environment::get().getWorld ()->getPlayer ().getPlayer ())
|
, mPreview(MWBase::Environment::get().getWorld ()->getPlayer ().getPlayer ())
|
||||||
, mPreviewDirty(true)
|
, mPreviewDirty(true)
|
||||||
, mDragAndDrop(dragAndDrop)
|
, mDragAndDrop(dragAndDrop)
|
||||||
|
, mPositionInventory(0, 342, 498, 258)
|
||||||
|
, mPositionContainer(0, 342, 498, 258)
|
||||||
|
, mPositionCompanion(0, 342, 498, 258)
|
||||||
|
, mPositionBarter(0, 342, 498, 258)
|
||||||
|
, mGuiMode(GM_Inventory)
|
||||||
{
|
{
|
||||||
static_cast<MyGUI::Window*>(mMainWidget)->eventWindowChangeCoord += MyGUI::newDelegate(this, &InventoryWindow::onWindowResize);
|
static_cast<MyGUI::Window*>(mMainWidget)->eventWindowChangeCoord += MyGUI::newDelegate(this, &InventoryWindow::onWindowResize);
|
||||||
|
|
||||||
|
@ -67,7 +72,7 @@ namespace MWGui
|
||||||
|
|
||||||
mFilterAll->setStateSelected(true);
|
mFilterAll->setStateSelected(true);
|
||||||
|
|
||||||
setCoord(0, 342, 498, 258);
|
setCoord(mPositionInventory.left, mPositionInventory.top, mPositionInventory.width, mPositionInventory.height);
|
||||||
onWindowResize(static_cast<MyGUI::Window*>(mMainWidget));
|
onWindowResize(static_cast<MyGUI::Window*>(mMainWidget));
|
||||||
|
|
||||||
mPreview.setup();
|
mPreview.setup();
|
||||||
|
@ -83,6 +88,27 @@ namespace MWGui
|
||||||
mPreview.setup();
|
mPreview.setup();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void InventoryWindow::setGuiMode(GuiMode mode)
|
||||||
|
{
|
||||||
|
mGuiMode = mode;
|
||||||
|
switch(mode) {
|
||||||
|
case GM_Container:
|
||||||
|
mMainWidget->setCoord(mPositionContainer);
|
||||||
|
break;
|
||||||
|
case GM_Companion:
|
||||||
|
mMainWidget->setCoord(mPositionCompanion);
|
||||||
|
break;
|
||||||
|
case GM_Barter:
|
||||||
|
mMainWidget->setCoord(mPositionBarter);
|
||||||
|
break;
|
||||||
|
case GM_Inventory:
|
||||||
|
default:
|
||||||
|
mMainWidget->setCoord(mPositionInventory);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
onWindowResize(static_cast<MyGUI::Window*>(mMainWidget));
|
||||||
|
}
|
||||||
|
|
||||||
TradeItemModel* InventoryWindow::getTradeModel()
|
TradeItemModel* InventoryWindow::getTradeModel()
|
||||||
{
|
{
|
||||||
return mTradeModel;
|
return mTradeModel;
|
||||||
|
@ -210,6 +236,21 @@ namespace MWGui
|
||||||
_sender->getSize().width - 12 - (_sender->getSize().height-44) * aspect - 15,
|
_sender->getSize().width - 12 - (_sender->getSize().height-44) * aspect - 15,
|
||||||
_sender->getSize().height-44 );
|
_sender->getSize().height-44 );
|
||||||
|
|
||||||
|
switch(mGuiMode) {
|
||||||
|
case GM_Container:
|
||||||
|
mPositionContainer = _sender->getCoord();
|
||||||
|
break;
|
||||||
|
case GM_Companion:
|
||||||
|
mPositionCompanion = _sender->getCoord();
|
||||||
|
break;
|
||||||
|
case GM_Barter:
|
||||||
|
mPositionBarter = _sender->getCoord();
|
||||||
|
break;
|
||||||
|
case GM_Inventory:
|
||||||
|
default:
|
||||||
|
mPositionInventory = _sender->getCoord();
|
||||||
|
}
|
||||||
|
|
||||||
if (mMainWidget->getSize().width != mLastXSize || mMainWidget->getSize().height != mLastYSize)
|
if (mMainWidget->getSize().width != mLastXSize || mMainWidget->getSize().height != mLastYSize)
|
||||||
{
|
{
|
||||||
mLastXSize = mMainWidget->getSize().width;
|
mLastXSize = mMainWidget->getSize().width;
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
|
|
||||||
#include "windowpinnablebase.hpp"
|
#include "windowpinnablebase.hpp"
|
||||||
#include "widgets.hpp"
|
#include "widgets.hpp"
|
||||||
|
#include "mode.hpp"
|
||||||
|
|
||||||
namespace MWGui
|
namespace MWGui
|
||||||
{
|
{
|
||||||
|
@ -47,6 +48,8 @@ namespace MWGui
|
||||||
|
|
||||||
void updatePlayer();
|
void updatePlayer();
|
||||||
|
|
||||||
|
void setGuiMode(GuiMode mode);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
DragAndDrop* mDragAndDrop;
|
DragAndDrop* mDragAndDrop;
|
||||||
|
|
||||||
|
@ -73,6 +76,13 @@ namespace MWGui
|
||||||
MyGUI::Button* mFilterMagic;
|
MyGUI::Button* mFilterMagic;
|
||||||
MyGUI::Button* mFilterMisc;
|
MyGUI::Button* mFilterMisc;
|
||||||
|
|
||||||
|
MyGUI::IntCoord mPositionInventory;
|
||||||
|
MyGUI::IntCoord mPositionContainer;
|
||||||
|
MyGUI::IntCoord mPositionCompanion;
|
||||||
|
MyGUI::IntCoord mPositionBarter;
|
||||||
|
|
||||||
|
GuiMode mGuiMode;
|
||||||
|
|
||||||
int mLastXSize;
|
int mLastXSize;
|
||||||
int mLastYSize;
|
int mLastYSize;
|
||||||
|
|
||||||
|
|
|
@ -441,16 +441,19 @@ namespace MWGui
|
||||||
mMap ->setVisible(eff & GW_Map);
|
mMap ->setVisible(eff & GW_Map);
|
||||||
mStatsWindow ->setVisible(eff & GW_Stats);
|
mStatsWindow ->setVisible(eff & GW_Stats);
|
||||||
mInventoryWindow->setVisible(eff & GW_Inventory);
|
mInventoryWindow->setVisible(eff & GW_Inventory);
|
||||||
|
mInventoryWindow->setGuiMode(mode);
|
||||||
mSpellWindow ->setVisible(eff & GW_Magic);
|
mSpellWindow ->setVisible(eff & GW_Magic);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case GM_Container:
|
case GM_Container:
|
||||||
mContainerWindow->setVisible(true);
|
mContainerWindow->setVisible(true);
|
||||||
mInventoryWindow->setVisible(true);
|
mInventoryWindow->setVisible(true);
|
||||||
|
mInventoryWindow->setGuiMode(mode);
|
||||||
break;
|
break;
|
||||||
case GM_Companion:
|
case GM_Companion:
|
||||||
mCompanionWindow->setVisible(true);
|
mCompanionWindow->setVisible(true);
|
||||||
mInventoryWindow->setVisible(true);
|
mInventoryWindow->setVisible(true);
|
||||||
|
mInventoryWindow->setGuiMode(mode);
|
||||||
break;
|
break;
|
||||||
case GM_Dialogue:
|
case GM_Dialogue:
|
||||||
mDialogueWindow->setVisible(true);
|
mDialogueWindow->setVisible(true);
|
||||||
|
@ -458,6 +461,7 @@ namespace MWGui
|
||||||
case GM_Barter:
|
case GM_Barter:
|
||||||
mInventoryWindow->setVisible(true);
|
mInventoryWindow->setVisible(true);
|
||||||
mInventoryWindow->setTrading(true);
|
mInventoryWindow->setTrading(true);
|
||||||
|
mInventoryWindow->setGuiMode(mode);
|
||||||
mTradeWindow->setVisible(true);
|
mTradeWindow->setVisible(true);
|
||||||
break;
|
break;
|
||||||
case GM_SpellBuying:
|
case GM_SpellBuying:
|
||||||
|
|
Loading…
Reference in a new issue