diff --git a/CHANGELOG.md b/CHANGELOG.md index d762e68f0..acc6f9a50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -86,6 +86,7 @@ Feature #3610: Option to invert X axis Feature #3893: Implicit target for "set" function in console Feature #3980: In-game option to disable controller + Feature #3999: Shift + Double Click should maximize/restore menu size Feature #4001: Toggle sneak controller shortcut Feature #4209: Editor: Faction rank sub-table Feature #4360: Improve default controller bindings diff --git a/apps/openmw/mwbase/windowmanager.hpp b/apps/openmw/mwbase/windowmanager.hpp index 2eec78526..caf549716 100644 --- a/apps/openmw/mwbase/windowmanager.hpp +++ b/apps/openmw/mwbase/windowmanager.hpp @@ -322,6 +322,7 @@ namespace MWBase virtual void removeCurrentModal(MWGui::WindowModal* input) = 0; virtual void pinWindow (MWGui::GuiWindow window) = 0; + virtual void toggleMaximized(MWGui::Layout *layout) = 0; /// Fade the screen in, over \a time seconds virtual void fadeScreenIn(const float time, bool clearQueue=true, float delay=0.f) = 0; diff --git a/apps/openmw/mwgui/exposedwindow.cpp b/apps/openmw/mwgui/exposedwindow.cpp index 1a0484e72..90cfa09d3 100644 --- a/apps/openmw/mwgui/exposedwindow.cpp +++ b/apps/openmw/mwgui/exposedwindow.cpp @@ -2,12 +2,12 @@ namespace MWGui { - MyGUI::VectorWidgetPtr ExposedWindow::getSkinWidgetsByName (const std::string &name) + MyGUI::VectorWidgetPtr Window::getSkinWidgetsByName (const std::string &name) { return MyGUI::Widget::getSkinWidgetsByName (name); } - MyGUI::Widget* ExposedWindow::getSkinWidget(const std::string & _name, bool _throw) + MyGUI::Widget* Window::getSkinWidget(const std::string & _name, bool _throw) { MyGUI::VectorWidgetPtr widgets = getSkinWidgetsByName (_name); diff --git a/apps/openmw/mwgui/exposedwindow.hpp b/apps/openmw/mwgui/exposedwindow.hpp index 7df2fcb35..f1f5d3c2f 100644 --- a/apps/openmw/mwgui/exposedwindow.hpp +++ b/apps/openmw/mwgui/exposedwindow.hpp @@ -9,9 +9,9 @@ namespace MWGui /** * @brief subclass to provide access to some Widget internals. */ - class ExposedWindow : public MyGUI::Window + class Window : public MyGUI::Window { - MYGUI_RTTI_DERIVED(ExposedWindow) + MYGUI_RTTI_DERIVED(Window) public: MyGUI::VectorWidgetPtr getSkinWidgetsByName (const std::string &name); diff --git a/apps/openmw/mwgui/inventorywindow.cpp b/apps/openmw/mwgui/inventorywindow.cpp index 1877ef97d..a3ad5d29a 100644 --- a/apps/openmw/mwgui/inventorywindow.cpp +++ b/apps/openmw/mwgui/inventorywindow.cpp @@ -162,28 +162,39 @@ namespace MWGui mItemView->setModel(nullptr); } + void InventoryWindow::toggleMaximized() + { + std::string setting = getModeSetting(); + + bool maximized = !Settings::Manager::getBool(setting + " maximized", "Windows"); + if (maximized) + setting += " maximized"; + + MyGUI::IntSize viewSize = MyGUI::RenderManager::getInstance().getViewSize(); + float x = Settings::Manager::getFloat(setting + " x", "Windows") * float(viewSize.width); + float y = Settings::Manager::getFloat(setting + " y", "Windows") * float(viewSize.height); + float w = Settings::Manager::getFloat(setting + " w", "Windows") * float(viewSize.width); + float h = Settings::Manager::getFloat(setting + " h", "Windows") * float(viewSize.height); + MyGUI::Window* window = mMainWidget->castType(); + window->setCoord(x, y, w, h); + + if (maximized) + Settings::Manager::setBool(setting, "Windows", maximized); + else + Settings::Manager::setBool(setting + " maximized", "Windows", maximized); + + adjustPanes(); + updatePreviewSize(); + } + void InventoryWindow::setGuiMode(GuiMode mode) { - std::string setting = "inventory"; mGuiMode = mode; - switch(mode) { - case GM_Container: - setPinButtonVisible(false); - setting += " container"; - break; - case GM_Companion: - setPinButtonVisible(false); - setting += " companion"; - break; - case GM_Barter: - setPinButtonVisible(false); - setting += " barter"; - break; - case GM_Inventory: - default: - setPinButtonVisible(true); - break; - } + std::string setting = getModeSetting(); + setPinButtonVisible(mode == GM_Inventory); + + if (Settings::Manager::getBool(setting + " maximized", "Windows")) + setting += " maximized"; MyGUI::IntSize viewSize = MyGUI::RenderManager::getInstance().getViewSize(); MyGUI::IntPoint pos(static_cast(Settings::Manager::getFloat(setting + " x", "Windows") * viewSize.width), @@ -386,11 +397,11 @@ namespace MWGui adjustPanes(); } - void InventoryWindow::onWindowResize(MyGUI::Window* _sender) + std::string InventoryWindow::getModeSetting() const { - adjustPanes(); std::string setting = "inventory"; - switch(mGuiMode) { + switch(mGuiMode) + { case GM_Container: setting += " container"; break; @@ -404,6 +415,14 @@ namespace MWGui break; } + return setting; + } + + void InventoryWindow::onWindowResize(MyGUI::Window* _sender) + { + adjustPanes(); + std::string setting = getModeSetting(); + MyGUI::IntSize viewSize = MyGUI::RenderManager::getInstance().getViewSize(); float x = _sender->getPosition().left / float(viewSize.width); float y = _sender->getPosition().top / float(viewSize.height); @@ -413,6 +432,9 @@ namespace MWGui Settings::Manager::setFloat(setting + " y", "Windows", y); Settings::Manager::setFloat(setting + " w", "Windows", w); Settings::Manager::setFloat(setting + " h", "Windows", h); + bool maximized = Settings::Manager::getBool(setting + " maximized", "Windows"); + if (maximized) + Settings::Manager::setBool(setting + " maximized", "Windows", false); if (mMainWidget->getSize().width != mLastXSize || mMainWidget->getSize().height != mLastYSize) { @@ -476,7 +498,9 @@ namespace MWGui void InventoryWindow::onTitleDoubleClicked() { - if (!mPinned) + if (MyGUI::InputManager::getInstance().isShiftPressed()) + toggleMaximized(); + else if (!mPinned) MWBase::Environment::get().getWindowManager()->toggleVisible(GW_Inventory); } diff --git a/apps/openmw/mwgui/inventorywindow.hpp b/apps/openmw/mwgui/inventorywindow.hpp index c60e37363..8d0a86bbf 100644 --- a/apps/openmw/mwgui/inventorywindow.hpp +++ b/apps/openmw/mwgui/inventorywindow.hpp @@ -65,6 +65,9 @@ namespace MWGui /// Cycle to previous/next weapon void cycle(bool next); + protected: + virtual void onTitleDoubleClicked(); + private: DragAndDrop* mDragAndDrop; @@ -104,11 +107,15 @@ namespace MWGui float mScaleFactor; float mUpdateTimer; + void toggleMaximized(); + void onItemSelected(int index); void onItemSelectedFromSourceModel(int index); void onBackgroundSelected(); + std::string getModeSetting() const; + void sellItem(MyGUI::Widget* sender, int count); void dragItem(MyGUI::Widget* sender, int count); @@ -116,7 +123,6 @@ namespace MWGui void onFilterChanged(MyGUI::Widget* _sender); void onAvatarClicked(MyGUI::Widget* _sender); void onPinToggled(); - void onTitleDoubleClicked(); void updateEncumbranceBar(); void notifyContentChanged(); diff --git a/apps/openmw/mwgui/mapwindow.cpp b/apps/openmw/mwgui/mapwindow.cpp index 5f4c9971c..47ae64b0e 100644 --- a/apps/openmw/mwgui/mapwindow.cpp +++ b/apps/openmw/mwgui/mapwindow.cpp @@ -931,7 +931,9 @@ namespace MWGui void MapWindow::onTitleDoubleClicked() { - if (!mPinned) + if (MyGUI::InputManager::getInstance().isShiftPressed()) + MWBase::Environment::get().getWindowManager()->toggleMaximized(this); + else if (!mPinned) MWBase::Environment::get().getWindowManager()->toggleVisible(GW_Map); } diff --git a/apps/openmw/mwgui/spellwindow.cpp b/apps/openmw/mwgui/spellwindow.cpp index 254e731d0..d6103faeb 100644 --- a/apps/openmw/mwgui/spellwindow.cpp +++ b/apps/openmw/mwgui/spellwindow.cpp @@ -62,7 +62,9 @@ namespace MWGui void SpellWindow::onTitleDoubleClicked() { - if (!mPinned) + if (MyGUI::InputManager::getInstance().isShiftPressed()) + MWBase::Environment::get().getWindowManager()->toggleMaximized(this); + else if (!mPinned) MWBase::Environment::get().getWindowManager()->toggleVisible(GW_Magic); } diff --git a/apps/openmw/mwgui/statswindow.cpp b/apps/openmw/mwgui/statswindow.cpp index c3f852c5b..91d414af3 100644 --- a/apps/openmw/mwgui/statswindow.cpp +++ b/apps/openmw/mwgui/statswindow.cpp @@ -4,6 +4,7 @@ #include #include #include +#include #include #include @@ -652,7 +653,13 @@ namespace MWGui void StatsWindow::onTitleDoubleClicked() { - if (!mPinned) + if (MyGUI::InputManager::getInstance().isShiftPressed()) + { + MWBase::Environment::get().getWindowManager()->toggleMaximized(this); + MyGUI::Window* t = mMainWidget->castType(); + onWindowResize(t); + } + else if (!mPinned) MWBase::Environment::get().getWindowManager()->toggleVisible(GW_Stats); } } diff --git a/apps/openmw/mwgui/windowbase.cpp b/apps/openmw/mwgui/windowbase.cpp index d483a0b4b..0239a4ef8 100644 --- a/apps/openmw/mwgui/windowbase.cpp +++ b/apps/openmw/mwgui/windowbase.cpp @@ -1,5 +1,6 @@ #include "windowbase.hpp" +#include #include #include @@ -9,6 +10,7 @@ #include #include "draganddrop.hpp" +#include "exposedwindow.hpp" using namespace MWGui; @@ -16,6 +18,32 @@ WindowBase::WindowBase(const std::string& parLayout) : Layout(parLayout) { mMainWidget->setVisible(false); + + Window* window = mMainWidget->castType(false); + if (!window) + return; + + MyGUI::Button* button = nullptr; + MyGUI::VectorWidgetPtr widgets = window->getSkinWidgetsByName("Action"); + for (MyGUI::Widget* widget : widgets) + { + if (widget->isUserString("SupportDoubleClick")) + button = widget->castType(); + } + + if (button) + button->eventMouseButtonDoubleClick += MyGUI::newDelegate(this, &WindowBase::onDoubleClick); +} + +void WindowBase::onTitleDoubleClicked() +{ + if (MyGUI::InputManager::getInstance().isShiftPressed()) + MWBase::Environment::get().getWindowManager()->toggleMaximized(this); +} + +void WindowBase::onDoubleClick(MyGUI::Widget *_sender) +{ + onTitleDoubleClicked(); } void WindowBase::setVisible(bool visible) diff --git a/apps/openmw/mwgui/windowbase.hpp b/apps/openmw/mwgui/windowbase.hpp index 8e7fb86b4..56249d77d 100644 --- a/apps/openmw/mwgui/windowbase.hpp +++ b/apps/openmw/mwgui/windowbase.hpp @@ -20,7 +20,7 @@ namespace MWGui class WindowBase: public Layout { - public: + public: WindowBase(const std::string& parLayout); virtual MyGUI::Widget* getDefaultKeyFocus() { return nullptr; } @@ -52,8 +52,13 @@ namespace MWGui /// Called when GUI viewport changes size virtual void onResChange(int width, int height) {} - }; + protected: + virtual void onTitleDoubleClicked(); + + private: + void onDoubleClick(MyGUI::Widget* _sender); + }; /* * "Modal" windows cause the rest of the interface to be inaccessible while they are visible diff --git a/apps/openmw/mwgui/windowmanagerimp.cpp b/apps/openmw/mwgui/windowmanagerimp.cpp index 2fc4896f8..1b271dfd5 100644 --- a/apps/openmw/mwgui/windowmanagerimp.cpp +++ b/apps/openmw/mwgui/windowmanagerimp.cpp @@ -216,7 +216,7 @@ namespace MWGui MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); - MyGUI::FactoryManager::getInstance().registerFactory("Widget"); + MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); MyGUI::FactoryManager::getInstance().registerFactory("Widget"); @@ -1235,10 +1235,14 @@ namespace MWGui for (std::map::iterator it = mTrackedWindows.begin(); it != mTrackedWindows.end(); ++it) { - MyGUI::IntPoint pos(static_cast(Settings::Manager::getFloat(it->second + " x", "Windows") * x), - static_cast( Settings::Manager::getFloat(it->second+ " y", "Windows") * y)); - MyGUI::IntSize size(static_cast(Settings::Manager::getFloat(it->second + " w", "Windows") * x), - static_cast(Settings::Manager::getFloat(it->second + " h", "Windows") * y)); + std::string settingName = it->second; + if (Settings::Manager::getBool(settingName + " maximized", "Windows")) + settingName += " maximized"; + + MyGUI::IntPoint pos(static_cast(Settings::Manager::getFloat(settingName + " x", "Windows") * x), + static_cast(Settings::Manager::getFloat(settingName + " y", "Windows") * y)); + MyGUI::IntSize size(static_cast(Settings::Manager::getFloat(settingName + " w", "Windows") * x), + static_cast(Settings::Manager::getFloat(settingName + " h", "Windows") * y)); it->first->setPosition(pos); it->first->setSize(size); } @@ -1709,11 +1713,16 @@ namespace MWGui void WindowManager::trackWindow(Layout *layout, const std::string &name) { + std::string settingName = name; MyGUI::IntSize viewSize = MyGUI::RenderManager::getInstance().getViewSize(); - MyGUI::IntPoint pos(static_cast(Settings::Manager::getFloat(name + " x", "Windows") * viewSize.width), - static_cast(Settings::Manager::getFloat(name + " y", "Windows") * viewSize.height)); - MyGUI::IntSize size (static_cast(Settings::Manager::getFloat(name + " w", "Windows") * viewSize.width), - static_cast(Settings::Manager::getFloat(name + " h", "Windows") * viewSize.height)); + bool isMaximized = Settings::Manager::getBool(name + " maximized", "Windows"); + if (isMaximized) + settingName += " maximized"; + + MyGUI::IntPoint pos(static_cast(Settings::Manager::getFloat(settingName + " x", "Windows") * viewSize.width), + static_cast(Settings::Manager::getFloat(settingName + " y", "Windows") * viewSize.height)); + MyGUI::IntSize size (static_cast(Settings::Manager::getFloat(settingName + " w", "Windows") * viewSize.width), + static_cast(Settings::Manager::getFloat(settingName + " h", "Windows") * viewSize.height)); layout->mMainWidget->setPosition(pos); layout->mMainWidget->setSize(size); @@ -1722,6 +1731,26 @@ namespace MWGui mTrackedWindows[window] = name; } + void WindowManager::toggleMaximized(Layout *layout) + { + MyGUI::Window* window = layout->mMainWidget->castType(); + std::string setting = mTrackedWindows[window]; + if (setting.empty()) + return; + + bool maximized = !Settings::Manager::getBool(setting + " maximized", "Windows"); + if (maximized) + setting += " maximized"; + + MyGUI::IntSize viewSize = MyGUI::RenderManager::getInstance().getViewSize(); + float x = Settings::Manager::getFloat(setting + " x", "Windows") * float(viewSize.width); + float y = Settings::Manager::getFloat(setting + " y", "Windows") * float(viewSize.height); + float w = Settings::Manager::getFloat(setting + " w", "Windows") * float(viewSize.width); + float h = Settings::Manager::getFloat(setting + " h", "Windows") * float(viewSize.height); + window->setCoord(x, y, w, h); + Settings::Manager::setBool(mTrackedWindows[window] + " maximized", "Windows", maximized); + } + void WindowManager::onWindowChangeCoord(MyGUI::Window *_sender) { std::string setting = mTrackedWindows[_sender]; @@ -1734,6 +1763,9 @@ namespace MWGui Settings::Manager::setFloat(setting + " y", "Windows", y); Settings::Manager::setFloat(setting + " w", "Windows", w); Settings::Manager::setFloat(setting + " h", "Windows", h); + bool maximized = Settings::Manager::getBool(setting + " maximized", "Windows"); + if (maximized) + Settings::Manager::setBool(setting + " maximized", "Windows", false); } void WindowManager::clear() diff --git a/apps/openmw/mwgui/windowmanagerimp.hpp b/apps/openmw/mwgui/windowmanagerimp.hpp index e3dcbc699..b44b353c1 100644 --- a/apps/openmw/mwgui/windowmanagerimp.hpp +++ b/apps/openmw/mwgui/windowmanagerimp.hpp @@ -350,6 +350,7 @@ namespace MWGui virtual void removeCurrentModal(WindowModal* input); virtual void pinWindow (MWGui::GuiWindow window); + virtual void toggleMaximized(Layout *layout); /// Fade the screen in, over \a time seconds virtual void fadeScreenIn(const float time, bool clearQueue, float delay); diff --git a/apps/openmw/mwgui/windowpinnablebase.cpp b/apps/openmw/mwgui/windowpinnablebase.cpp index 88e88b494..6106d6b56 100644 --- a/apps/openmw/mwgui/windowpinnablebase.cpp +++ b/apps/openmw/mwgui/windowpinnablebase.cpp @@ -1,7 +1,5 @@ #include "windowpinnablebase.hpp" -#include - #include "exposedwindow.hpp" namespace MWGui @@ -9,21 +7,10 @@ namespace MWGui WindowPinnableBase::WindowPinnableBase(const std::string& parLayout) : WindowBase(parLayout), mPinned(false) { - ExposedWindow* window = mMainWidget->castType(); + Window* window = mMainWidget->castType(); mPinButton = window->getSkinWidget ("Button"); mPinButton->eventMouseButtonPressed += MyGUI::newDelegate(this, &WindowPinnableBase::onPinButtonPressed); - - MyGUI::Button* button = nullptr; - MyGUI::VectorWidgetPtr widgets = window->getSkinWidgetsByName("Action"); - for (MyGUI::Widget* widget : widgets) - { - if (widget->isUserString("HideWindowOnDoubleClick")) - button = widget->castType(); - } - - if (button) - button->eventMouseButtonDoubleClick += MyGUI::newDelegate(this, &WindowPinnableBase::onDoubleClick); } void WindowPinnableBase::onPinButtonPressed(MyGUI::Widget* _sender, int left, int top, MyGUI::MouseButton id) @@ -41,11 +28,6 @@ namespace MWGui onPinToggled(); } - void WindowPinnableBase::onDoubleClick(MyGUI::Widget *_sender) - { - onTitleDoubleClicked(); - } - void WindowPinnableBase::setPinned(bool pinned) { if (pinned != mPinned) diff --git a/apps/openmw/mwgui/windowpinnablebase.hpp b/apps/openmw/mwgui/windowpinnablebase.hpp index c085bebf2..a94212819 100644 --- a/apps/openmw/mwgui/windowpinnablebase.hpp +++ b/apps/openmw/mwgui/windowpinnablebase.hpp @@ -17,11 +17,9 @@ namespace MWGui private: void onPinButtonPressed(MyGUI::Widget* _sender, int left, int top, MyGUI::MouseButton id); - void onDoubleClick(MyGUI::Widget* _sender); protected: virtual void onPinToggled() = 0; - virtual void onTitleDoubleClicked() = 0; MyGUI::Widget* mPinButton; bool mPinned; diff --git a/files/mygui/openmw_inventory_window.layout b/files/mygui/openmw_inventory_window.layout index e935e2f5c..8f5b4c146 100644 --- a/files/mygui/openmw_inventory_window.layout +++ b/files/mygui/openmw_inventory_window.layout @@ -1,7 +1,7 @@ - + diff --git a/files/mygui/openmw_map_window.layout b/files/mygui/openmw_map_window.layout index 8d45022f8..d6e85919c 100644 --- a/files/mygui/openmw_map_window.layout +++ b/files/mygui/openmw_map_window.layout @@ -1,7 +1,7 @@ - + diff --git a/files/mygui/openmw_spell_window.layout b/files/mygui/openmw_spell_window.layout index 8a98c47b2..003c7ce97 100644 --- a/files/mygui/openmw_spell_window.layout +++ b/files/mygui/openmw_spell_window.layout @@ -1,7 +1,7 @@ - + diff --git a/files/mygui/openmw_stats_window.layout b/files/mygui/openmw_stats_window.layout index 098b3c2d8..f26f1d598 100644 --- a/files/mygui/openmw_stats_window.layout +++ b/files/mygui/openmw_stats_window.layout @@ -1,7 +1,7 @@ - + diff --git a/files/mygui/openmw_windows.skin.xml b/files/mygui/openmw_windows.skin.xml index 426d6dc06..d6d747c4f 100644 --- a/files/mygui/openmw_windows.skin.xml +++ b/files/mygui/openmw_windows.skin.xml @@ -589,6 +589,7 @@ + @@ -725,6 +726,7 @@ + @@ -860,8 +862,8 @@ + - diff --git a/files/settings-default.cfg b/files/settings-default.cfg index 7e7e04b78..2408a56f3 100644 --- a/files/settings-default.cfg +++ b/files/settings-default.cfg @@ -484,86 +484,151 @@ stats x = 0.015 stats y = 0.015 stats w = 0.4275 stats h = 0.45 +stats maximized x = 0.0 +stats maximized y = 0.0 +stats maximized w = 1.0 +stats maximized h = 1.0 stats pin = false stats hidden = false +stats maximized = false # Spells window displaying powers, spells, and magical items. spells x = 0.63 spells y = 0.39 spells w = 0.36 spells h = 0.51 +spells maximized x = 0.0 +spells maximized y = 0.0 +spells maximized w = 1.0 +spells maximized h = 1.0 spells pin = false spells hidden = false +spells maximized = false # Local and world map window. map x = 0.63 map y = 0.015 map w = 0.36 map h = 0.37 +map maximized x = 0.0 +map maximized y = 0.0 +map maximized w = 1.0 +map maximized h = 1.0 map pin = false map hidden = false +map maximized = false # Player inventory window when explicitly opened. -inventory x = 0.015 +inventory x = 0.0 inventory y = 0.54 inventory w = 0.45 inventory h = 0.38 +inventory maximized x = 0.0 +inventory maximized y = 0.0 +inventory maximized w = 1.0 +inventory maximized h = 1.0 inventory pin = false inventory hidden = false - -# Dialog window for talking with NPCs. -dialogue x = 0.15 -dialogue y = 0.5 -dialogue w = 0.7 -dialogue h = 0.45 - -# Alchemy window for crafting potions. -alchemy x = 0.25 -alchemy y = 0.25 -alchemy w = 0.5 -alchemy h = 0.5 - -# Console command window for debugging commands. -console x = 0.015 -console y = 0.015 -console w = 1.0 -console h = 0.5 +inventory maximized = false # Player inventory window when searching a container. inventory container x = 0.015 inventory container y = 0.54 inventory container w = 0.45 inventory container h = 0.38 +inventory container maximized x = 0.0 +inventory container maximized y = 0.5 +inventory container maximized w = 1.0 +inventory container maximized h = 0.5 +inventory container maximized = false # Player inventory window when bartering with a shopkeeper. inventory barter x = 0.015 inventory barter y = 0.54 inventory barter w = 0.45 inventory barter h = 0.38 +inventory barter maximized x = 0.0 +inventory barter maximized y = 0.5 +inventory barter maximized w = 1.0 +inventory barter maximized h = 0.5 +inventory barter maximized = false # Player inventory window when trading with a companion. inventory companion x = 0.015 inventory companion y = 0.54 inventory companion w = 0.45 inventory companion h = 0.38 +inventory companion maximized x = 0.0 +inventory companion maximized y = 0.5 +inventory companion maximized w = 1.0 +inventory companion maximized h = 0.5 +inventory companion maximized = false + +# Dialog window for talking with NPCs. +dialogue x = 0.15 +dialogue y = 0.5 +dialogue w = 0.7 +dialogue h = 0.45 +dialogue maximized x = 0.0 +dialogue maximized y = 0.0 +dialogue maximized w = 1.0 +dialogue maximized h = 1.0 +dialogue maximized = false + +# Alchemy window for crafting potions. +alchemy x = 0.25 +alchemy y = 0.25 +alchemy w = 0.5 +alchemy h = 0.5 +alchemy maximized x = 0.0 +alchemy maximized y = 0.0 +alchemy maximized w = 1.0 +alchemy maximized h = 1.0 +alchemy maximized = false + +# Console command window for debugging commands. +console x = 0.015 +console y = 0.015 +console w = 1.0 +console h = 0.5 +console maximized x = 0.0 +console maximized y = 0.0 +console maximized w = 1.0 +console maximized h = 1.0 +console maximized = false # Container inventory when searching a container. container x = 0.49 container y = 0.54 container w = 0.39 container h = 0.38 +container maximized x = 0.0 +container maximized y = 0.0 +container maximized w = 1.0 +container maximized h = 0.5 +container maximized = false # NPC inventory window when bartering with a shopkeeper. barter x = 0.6 barter y = 0.27 barter w = 0.38 barter h = 0.63 +barter maximized x = 0.0 +barter maximized y = 0.0 +barter maximized w = 1.0 +barter maximized h = 0.5 +barter maximized = false # NPC inventory window when trading with a companion. companion x = 0.6 companion y = 0.27 companion w = 0.38 companion h = 0.63 +companion maximized x = 0.0 +companion maximized y = 0.0 +companion maximized w = 1.0 +companion maximized h = 0.5 +companion maximized = false [Navigator]