OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
windowmanagerimp.hpp
Go to the documentation of this file.
1 #ifndef MWGUI_WINDOWMANAGERIMP_H
2 #define MWGUI_WINDOWMANAGERIMP_H
3 
10 #include <stack>
11 
12 #include <osg/ref_ptr>
13 
14 #include "../mwbase/windowmanager.hpp"
15 
16 #include "../mwworld/ptr.hpp"
17 
20 
21 #include "mapwindow.hpp"
22 #include "textcolours.hpp"
23 
24 #include <MyGUI_KeyCode.h>
25 #include <MyGUI_Types.h>
26 
27 namespace MyGUI
28 {
29  class Gui;
30  class Widget;
31  class Window;
32  class UString;
33  class ImageBox;
34 }
35 
36 namespace MWWorld
37 {
38  class ESMStore;
39 }
40 
41 namespace Compiler
42 {
43  class Extensions;
44 }
45 
46 namespace Translation
47 {
48  class Storage;
49 }
50 
51 namespace osg
52 {
53  class Group;
54 }
55 namespace osgViewer
56 {
57  class Viewer;
58 }
59 
60 namespace Resource
61 {
62  class ResourceSystem;
63 }
64 
65 namespace SceneUtil
66 {
67  class WorkQueue;
68 }
69 
70 namespace SDLUtil
71 {
72  class SDLCursorManager;
73 }
74 
75 namespace osgMyGUI
76 {
77  class Platform;
78 }
79 
80 namespace Gui
81 {
82  class FontLoader;
83 }
84 
85 namespace MWRender
86 {
87  class LocalMap;
88 }
89 
90 namespace MWGui
91 {
92  class WindowBase;
93  class HUD;
94  class MapWindow;
95  class MainMenu;
96  class StatsWindow;
97  class InventoryWindow;
98  struct JournalWindow;
99  class CharacterCreation;
100  class DragAndDrop;
101  class ToolTips;
102  class TextInputDialog;
103  class InfoBoxDialog;
104  class MessageBoxManager;
105  class SettingsWindow;
106  class AlchemyWindow;
107  class QuickKeysMenu;
108  class LoadingScreen;
109  class LevelupDialog;
110  class WaitDialog;
111  class SpellCreationDialog;
112  class EnchantingDialog;
113  class TrainingWindow;
114  class SpellIcons;
115  class MerchantRepair;
116  class Repair;
117  class SoulgemDialog;
118  class Recharge;
119  class CompanionWindow;
120  class VideoWidget;
121  class WindowModal;
122  class ScreenFader;
123  class DebugWindow;
124  class JailScreen;
125  class KeyboardNavigation;
126 
128  {
129  public:
130  typedef std::pair<std::string, int> Faction;
131  typedef std::vector<Faction> FactionList;
132 
133  WindowManager(osgViewer::Viewer* viewer, osg::Group* guiRoot, Resource::ResourceSystem* resourceSystem, SceneUtil::WorkQueue* workQueue,
134  const std::string& logpath, const std::string& cacheDir, bool consoleOnlyScripts, Translation::Storage& translationDataStorage,
135  ToUTF8::FromType encoding, bool exportFonts, const std::map<std::string,std::string>& fallbackMap, const std::string& versionDescription, const std::string& localPath);
136  virtual ~WindowManager();
137 
139  void setStore (const MWWorld::ESMStore& store);
140 
141  void initUI();
142  virtual void loadUserFonts();
143 
145 
148  virtual void playVideo(const std::string& name, bool allowSkipping);
149 
151  virtual void setKeyFocusWidget (MyGUI::Widget* widget);
152 
153  virtual void setNewGame(bool newgame);
154 
155  virtual void pushGuiMode(GuiMode mode, const MWWorld::Ptr& arg);
156  virtual void pushGuiMode (GuiMode mode);
157  virtual void popGuiMode(bool noSound=false);
158  virtual void removeGuiMode(GuiMode mode, bool noSound=false);
159 
160  virtual void goToJail(int days);
161 
162  virtual GuiMode getMode() const;
163  virtual bool containsMode(GuiMode mode) const;
164 
165  virtual bool isGuiMode() const;
166 
167  virtual bool isConsoleMode() const;
168 
169  virtual void toggleVisible(GuiWindow wnd);
170 
171  virtual void forceHide(MWGui::GuiWindow wnd);
172  virtual void unsetForceHide(MWGui::GuiWindow wnd);
173 
175  virtual void disallowAll();
176 
178  virtual void allow(GuiWindow wnd);
179 
180  virtual bool isAllowed(GuiWindow wnd) const;
181 
187 
189  virtual void useItem(const MWWorld::Ptr& item, bool bypassBeastRestrictions=false);
190 
191  virtual void updateSpellWindow();
192 
193  virtual void setConsoleSelectedObject(const MWWorld::Ptr& object);
194 
196  virtual void setValue (const std::string& id, const MWMechanics::AttributeValue& value);
197  virtual void setValue (int parSkill, const MWMechanics::SkillValue& value);
198  virtual void setValue (const std::string& id, const MWMechanics::DynamicStat<float>& value);
199  virtual void setValue (const std::string& id, const std::string& value);
200  virtual void setValue (const std::string& id, int value);
201 
205  virtual void setDrowningTimeLeft (float time, float maxTime);
206 
207  virtual void setPlayerClass (const ESM::Class &class_);
208  virtual void configureSkills (const SkillList& major, const SkillList& minor);
209  virtual void updateSkillArea();
210 
211  virtual void changeCell(const MWWorld::CellStore* cell);
212 
213  virtual void setFocusObject(const MWWorld::Ptr& focus);
214  virtual void setFocusObjectScreenCoords(float min_x, float min_y, float max_x, float max_y);
215 
216  virtual void getMousePosition(int &x, int &y);
217  virtual void getMousePosition(float &x, float &y);
218  virtual void setDragDrop(bool dragDrop);
219  virtual bool getWorldMouseOver();
220 
221  virtual bool toggleFogOfWar();
222  virtual bool toggleFullHelp();
223  virtual bool getFullHelp() const;
224 
225  virtual void setActiveMap(int x, int y, bool interior);
227 
229  virtual void setDrowningBarVisibility(bool visible);
230 
231  // sets the visibility of the hud health/magicka/stamina bars
232  virtual void setHMSVisibility(bool visible);
233  // sets the visibility of the hud minimap
234  virtual void setMinimapVisibility(bool visible);
235  virtual void setWeaponVisibility(bool visible);
236  virtual void setSpellVisibility(bool visible);
237  virtual void setSneakVisibility(bool visible);
238 
240  virtual void activateQuickKey (int index);
242  virtual void updateActivatedQuickKey ();
243 
244  virtual std::string getSelectedSpell() { return mSelectedSpell; }
245  virtual void setSelectedSpell(const std::string& spellId, int successChancePercent);
246  virtual void setSelectedEnchantItem(const MWWorld::Ptr& item);
247  virtual const MWWorld::Ptr& getSelectedEnchantItem() const;
248  virtual void setSelectedWeapon(const MWWorld::Ptr& item);
249  virtual const MWWorld::Ptr& getSelectedWeapon() const;
250  virtual int getFontHeight() const;
251  virtual void unsetSelectedSpell();
252  virtual void unsetSelectedWeapon();
253 
254  virtual void showCrosshair(bool show);
255  virtual bool getSubtitlesEnabled();
256 
258  virtual bool toggleHud();
259 
260  virtual void disallowMouse();
261  virtual void allowMouse();
262  virtual void notifyInputActionBound();
263 
264  virtual void addVisitedLocation(const std::string& name, int x, int y);
265 
267  virtual void removeDialog(Layout* dialog);
268 
270  virtual void exitCurrentGuiMode();
271 
272  virtual void messageBox (const std::string& message, enum MWGui::ShowInDialogueMode showInDialogueMode = MWGui::ShowInDialogueMode_IfPossible);
273  virtual void staticMessageBox(const std::string& message);
274  virtual void removeStaticMessageBox();
275  virtual void interactiveMessageBox (const std::string& message,
276  const std::vector<std::string>& buttons = std::vector<std::string>(), bool block=false);
277 
278  virtual int readPressedButton ();
279 
280  virtual void onFrame (float frameDuration);
281 
283  virtual std::map<int, MWMechanics::SkillValue > getPlayerSkillValues();
284  virtual std::map<int, MWMechanics::AttributeValue > getPlayerAttributeValues();
287 
295  virtual std::string getGameSettingString(const std::string &id, const std::string &default_);
296 
297  virtual void processChangedSettings(const Settings::CategorySettingVector& changed);
298 
299  virtual void windowResized(int x, int y);
300 
301  virtual void executeInConsole (const std::string& path);
302 
303  virtual void enableRest() { mRestAllowed = true; }
304  virtual bool getRestEnabled();
305 
306  virtual bool getJournalAllowed() { return (mAllowed & GW_Magic) != 0; }
307 
308  virtual bool getPlayerSleeping();
309  virtual void wakeUpPlayer();
310 
311  virtual void updatePlayer();
312 
313  virtual void showSoulgemDialog (MWWorld::Ptr item);
314 
315  virtual void changePointer (const std::string& name);
316 
317  virtual void setEnemy (const MWWorld::Ptr& enemy);
318 
319  virtual const Translation::Storage& getTranslationDataStorage() const;
320 
321  void onSoulgemDialogButtonPressed (int button);
322 
323  virtual bool getCursorVisible();
324 
326  virtual void setCursorActive(bool active);
327 
329  virtual void clear();
330 
331  virtual void write (ESM::ESMWriter& writer, Loading::Listener& progress);
332  virtual void readRecord (ESM::ESMReader& reader, uint32_t type);
333  virtual int countSavedGameRecords() const;
334 
336  virtual bool isSavingAllowed() const;
337 
339  virtual void exitCurrentModal();
340 
342 
343  virtual void addCurrentModal(WindowModal* input);
344 
346 
348  virtual void removeCurrentModal(WindowModal* input);
349 
350  virtual void pinWindow (MWGui::GuiWindow window);
351 
353  virtual void fadeScreenIn(const float time, bool clearQueue, float delay);
355  virtual void fadeScreenOut(const float time, bool clearQueue, float delay);
357  virtual void fadeScreenTo(const int percent, const float time, bool clearQueue, float delay);
359  virtual void setBlindness(const int percent);
360 
361  virtual void activateHitOverlay(bool interrupt);
362  virtual void setWerewolfOverlay(bool set);
363 
364  virtual void toggleDebugWindow();
365 
367  virtual void cycleSpell(bool next);
369  virtual void cycleWeapon(bool next);
370 
371  virtual void playSound(const std::string& soundId, float volume = 1.f, float pitch = 1.f);
372 
373  // In WindowManager for now since there isn't a VFS singleton
374  virtual std::string correctIconPath(const std::string& path);
375  virtual std::string correctBookartPath(const std::string& path, int width, int height, bool* exists = nullptr);
376  virtual std::string correctTexturePath(const std::string& path);
377  virtual bool textureExists(const std::string& path);
378 
379  void removeCell(MWWorld::CellStore* cell);
380  void writeFog(MWWorld::CellStore* cell);
381 
382  virtual const MWGui::TextColours& getTextColours();
383 
384  virtual bool injectKeyPress(MyGUI::KeyCode key, unsigned int text, bool repeat=false);
385  virtual bool injectKeyRelease(MyGUI::KeyCode key);
386 
387  private:
390  osg::ref_ptr<SceneUtil::WorkQueue> mWorkQueue;
391 
393  osgViewer::Viewer* mViewer;
394 
395  std::unique_ptr<Gui::FontLoader> mFontLoader;
396 
398 
399  std::map<MyGUI::Window*, std::string> mTrackedWindows;
400  void trackWindow(Layout* layout, const std::string& name);
401  void onWindowChangeCoord(MyGUI::Window* _sender);
402 
403  std::string mSelectedSpell;
406 
407  void loadFontDelegate(MyGUI::xml::ElementPtr _node, const std::string& _file, MyGUI::Version _version);
408 
409  std::vector<WindowModal*> mCurrentModals;
410 
411  // Markers placed manually by the player. Must be shared between both map views (the HUD map and the map window).
413 
435  MyGUI::ImageBox* mVideoBackground;
443 
444  std::vector<WindowBase*> mWindows;
445 
447 
449 
450  MyGUI::Widget* mInputBlocker;
451 
459 
460  void setCursorVisible(bool visible);
461 
463  // Various stats about player as needed by window manager
464  std::string mPlayerName;
465  std::string mPlayerRaceId;
466  std::map<int, MWMechanics::AttributeValue > mPlayerAttributes;
468  std::map<int, MWMechanics::SkillValue > mPlayerSkillValues;
469 
470  MyGUI::Gui *mGui; // Gui
471 
473  {
475  {
476  mWindows.push_back(window);
477  }
478  GuiModeState(const std::vector<WindowBase*>& windows)
479  : mWindows(windows) {}
481 
482  void update(bool visible);
483 
484  std::vector<WindowBase*> mWindows;
485 
486  std::string mCloseSound;
487  std::string mOpenSound;
488  };
489  // Defines the windows that should be shown in a particular GUI mode.
490  std::map<GuiMode, GuiModeState> mGuiModeStates;
491  // The currently active stack of GUI modes (top mode is the one we are in).
492  std::vector<GuiMode> mGuiModes;
493 
495 
496  std::vector<Layout*> mGarbageDialogs;
497  void cleanupGarbage();
498 
499  GuiWindow mShown; // Currently shown windows in inventory mode
500  GuiWindow mForceHidden; // Hidden windows (overrides mShown)
501 
502  /* Currently ALLOWED windows in inventory mode. This is used at
503  the start of the game, when windows are enabled one by one
504  through script commands. You can manipulate this through using
505  allow() and disableAll().
506  */
508  // is the rest window allowed?
510 
511  void updateVisible(); // Update visibility of all windows based on mode, shown and allowed settings
512 
513  void updateMap();
514 
515  std::map<std::string, std::string> mFallbackMap;
516 
518 
520 
522 
523  std::string mVersionDescription;
524 
526 
527  std::unique_ptr<KeyboardNavigation> mKeyboardNavigation;
528 
540  void onRetrieveTag(const MyGUI::UString& _tag, MyGUI::UString& _result);
541 
542  void onCursorChange(const std::string& name);
543  void onKeyFocusChanged(MyGUI::Widget* widget);
544 
545  // Key pressed while playing a video
546  void onVideoKeyPressed(MyGUI::Widget *_sender, MyGUI::KeyCode _key, MyGUI::Char _char);
547 
548  void sizeVideo(int screenWidth, int screenHeight);
549 
550  void onClipboardChanged(const std::string& _type, const std::string& _data);
551  void onClipboardRequested(const std::string& _type, std::string& _data);
552 
553  void createTextures();
554  void createCursors();
555  void setMenuTransparency(float value);
556 
557  void updatePinnedWindows();
558  };
559 }
560 
561 #endif
osgMyGUI::Platform * mGuiPlatform
Definition: windowmanagerimp.hpp:392
void loadFontDelegate(MyGUI::xml::ElementPtr _node, const std::string &_file, MyGUI::Version _version)
Definition: windowmanagerimp.cpp:296
Definition: tradewindow.hpp:25
SoulgemDialog * mSoulgemDialog
Definition: windowmanagerimp.hpp:434
virtual void updateSkillArea()
update display of skills, factions, birth sign, reputation and bounty
Definition: windowmanagerimp.cpp:848
WindowManager()
Definition: windowmanager.hpp:101
Definition: inventorywindow.hpp:33
GuiModeState(const std::vector< WindowBase * > &windows)
Definition: windowmanagerimp.hpp:478
virtual void configureSkills(const SkillList &major, const SkillList &minor)
configure skill groups, each set contains the skill ID for that group.
Definition: windowmanagerimp.cpp:840
void message(CodeContainer &code, Literals &literals, const std::string &message, int buttons)
Definition: generator.cpp:537
virtual bool getSubtitlesEnabled()
Definition: windowmanagerimp.cpp:1587
osgViewer::Viewer * mViewer
Definition: windowmanagerimp.hpp:393
GuiModeState(WindowBase *window)
Definition: windowmanagerimp.hpp:474
Definition: hud.hpp:19
Definition: stat.hpp:123
Definition: videowidget.hpp:22
Definition: confirmationdialog.hpp:8
Wrapper class that constructs and provides access to the most commonly used resource subsystems...
Definition: resourcesystem.hpp:30
virtual void getMousePosition(int &x, int &y)
Definition: windowmanagerimp.cpp:1420
virtual GuiMode getMode() const
Definition: windowmanagerimp.cpp:1520
virtual void setPlayerClass(const ESM::Class &class_)
set current class of player
Definition: windowmanagerimp.cpp:835
std::vector< Layout * > mGarbageDialogs
Definition: windowmanagerimp.hpp:496
virtual void fadeScreenOut(const float time, bool clearQueue, float delay)
Fade the screen out to black, over time seconds.
Definition: windowmanagerimp.cpp:1970
osg::ref_ptr< SceneUtil::WorkQueue > mWorkQueue
Definition: windowmanagerimp.hpp:390
virtual void changeCell(const MWWorld::CellStore *cell)
change the active cell
Definition: windowmanagerimp.cpp:1049
Definition: quickkeysmenu.hpp:19
Definition: mapwindow.hpp:42
virtual void loadUserFonts()
Definition: windowmanagerimp.cpp:384
Resource::ResourceSystem * mResourceSystem
Definition: windowmanagerimp.hpp:389
JailScreen * mJailScreen
Definition: windowmanagerimp.hpp:442
std::string mCloseSound
Definition: windowmanagerimp.hpp:486
void updateMap()
Definition: windowmanagerimp.cpp:954
virtual void exitCurrentModal()
Send exit command to active Modal window **/.
Definition: windowmanagerimp.cpp:1873
ScreenFader * mScreenFader
Definition: windowmanagerimp.hpp:440
virtual void updateSpellWindow()
Definition: windowmanagerimp.cpp:2054
Definition: soulgemdialog.hpp:11
void onClipboardRequested(const std::string &_type, std::string &_data)
Definition: windowmanagerimp.cpp:2017
void onCursorChange(const std::string &name)
Definition: windowmanagerimp.cpp:1260
DialogueWindow * mDialogueWindow
Definition: windowmanagerimp.hpp:421
virtual void updateActivatedQuickKey()
update activated quick key state (if action executing was delayed for some reason) ...
Definition: windowmanagerimp.cpp:1577
Definition: countdialog.hpp:13
virtual void changePointer(const std::string &name)
Definition: windowmanagerimp.cpp:1627
virtual bool containsMode(GuiMode mode) const
Definition: windowmanagerimp.cpp:1563
A work queue that users can push work items onto, to be completed by one or more background threads...
Definition: workqueue.hpp:48
Definition: esmreader.hpp:21
virtual void staticMessageBox(const std::string &message)
Definition: windowmanagerimp.cpp:929
virtual bool toggleHud()
Turn visibility of HUD on or off.
Definition: windowmanagerimp.cpp:1592
virtual void readRecord(ESM::ESMReader &reader, uint32_t type)
Definition: windowmanagerimp.cpp:1758
virtual Loading::Listener * getLoadingScreen()
Definition: windowmanagerimp.cpp:1674
virtual int getFontHeight() const
Definition: windowmanagerimp.cpp:609
virtual bool getFullHelp() const
Definition: windowmanagerimp.cpp:1131
virtual int countSavedGameRecords() const
Definition: windowmanagerimp.cpp:1779
Definition: mapwindow.hpp:195
std::vector< GuiMode > mGuiModes
Definition: windowmanagerimp.hpp:492
virtual std::string getGameSettingString(const std::string &id, const std::string &default_)
Definition: windowmanagerimp.cpp:944
SettingsWindow * mSettingsWindow
Definition: windowmanagerimp.hpp:428
virtual void goToJail(int days)
Definition: windowmanagerimp.cpp:1348
virtual void activateQuickKey(int index)
activate selected quick key
Definition: windowmanagerimp.cpp:1582
bool mWerewolfOverlayEnabled
Definition: windowmanagerimp.hpp:455
virtual const Translation::Storage & getTranslationDataStorage() const
Definition: windowmanagerimp.cpp:1622
virtual void setCursorActive(bool active)
Call when mouse cursor or buttons are used.
Definition: windowmanagerimp.cpp:1167
virtual void setWerewolfOverlay(bool set)
Definition: windowmanagerimp.cpp:2002
Definition: waitdialog.hpp:25
Definition: myguiplatform.hpp:30
virtual void allowMouse()
Definition: windowmanagerimp.cpp:1552
Definition: sdlcursormanager.hpp:19
virtual MWGui::TradeWindow * getTradeWindow()
Definition: windowmanagerimp.cpp:1450
Definition: textcolours.hpp:9
virtual const MWWorld::Ptr & getSelectedWeapon() const
Definition: windowmanagerimp.cpp:1395
bool mHudEnabled
Definition: windowmanagerimp.hpp:456
Definition: bookwindow.hpp:12
virtual void setFocusObject(const MWWorld::Ptr &focus)
Definition: windowmanagerimp.cpp:1110
Definition: messagebox.hpp:20
virtual void executeInConsole(const std::string &path)
Definition: windowmanagerimp.cpp:1442
ScreenFader * mBlindnessFader
Definition: windowmanagerimp.hpp:438
MessageBoxManager * mMessageBoxManager
Definition: windowmanagerimp.hpp:419
virtual void setSneakVisibility(bool visible)
Definition: windowmanagerimp.cpp:1147
SkillList mPlayerMajorSkills
Definition: windowmanagerimp.hpp:467
virtual void setDrowningTimeLeft(float time, float maxTime)
Definition: windowmanagerimp.cpp:830
void onKeyFocusChanged(MyGUI::Widget *widget)
Definition: windowmanagerimp.cpp:1661
void updatePinnedWindows()
Definition: windowmanagerimp.cpp:1929
LoadingScreen * mLoadingScreen
Definition: windowmanagerimp.hpp:432
virtual bool getCursorVisible()
Should the cursor be visible?
Definition: windowmanagerimp.cpp:1679
void sizeVideo(int screenWidth, int screenHeight)
Definition: windowmanagerimp.cpp:1865
void onVideoKeyPressed(MyGUI::Widget *_sender, MyGUI::KeyCode _key, MyGUI::Char _char)
Definition: windowmanagerimp.cpp:1923
Definition: mode.hpp:60
virtual void toggleDebugWindow()
Definition: windowmanagerimp.cpp:2029
virtual void cycleWeapon(bool next)
Cycle to next or previous weapon.
Definition: windowmanagerimp.cpp:2040
Definition: translation.hpp:9
virtual bool injectKeyPress(MyGUI::KeyCode key, unsigned int text, bool repeat=false)
Definition: windowmanagerimp.cpp:2181
std::pair< std::string, int > Faction
Definition: windowmanagerimp.hpp:130
virtual void setMinimapVisibility(bool visible)
sets the visibility of the hud minimap
Definition: windowmanagerimp.cpp:1099
Version
Definition: esmcommon.hpp:12
void onSoulgemDialogButtonPressed(int button)
SkillList mPlayerMinorSkills
Definition: windowmanagerimp.hpp:467
Definition: windowmanager.hpp:73
Console * mConsole
Definition: windowmanagerimp.hpp:420
Definition: loadinglistener.hpp:8
std::map< MyGUI::Window *, std::string > mTrackedWindows
Definition: windowmanagerimp.hpp:399
bool mSubtitlesEnabled
Definition: windowmanagerimp.hpp:453
virtual void setFocusObjectScreenCoords(float min_x, float min_y, float max_x, float max_y)
Definition: windowmanagerimp.cpp:1121
virtual void wakeUpPlayer()
Definition: windowmanagerimp.cpp:1612
ScrollWindow * mScrollWindow
Definition: windowmanagerimp.hpp:424
ToolTips * mToolTips
Definition: windowmanagerimp.hpp:417
virtual void addVisitedLocation(const std::string &name, int x, int y)
Definition: windowmanagerimp.cpp:1617
Definition: draganddrop.hpp:17
virtual void fadeScreenIn(const float time, bool clearQueue, float delay)
Fade the screen in, over time seconds.
Definition: windowmanagerimp.cpp:1963
HUD * mHud
Definition: windowmanagerimp.hpp:414
CountDialog * mCountDialog
Definition: windowmanagerimp.hpp:426
void setMenuTransparency(float value)
Definition: windowmanagerimp.cpp:2151
DebugWindow * mDebugWindow
Definition: windowmanagerimp.hpp:441
Definition: dialogue.hpp:108
virtual void updatePlayer()
Definition: windowmanagerimp.cpp:1639
void createCursors()
Definition: windowmanagerimp.cpp:2089
virtual bool isSavingAllowed() const
Does the current stack of GUI-windows permit saving?
Definition: windowmanagerimp.cpp:1787
void updateVisible()
Definition: windowmanagerimp.cpp:685
void trackWindow(Layout *layout, const std::string &name)
Definition: windowmanagerimp.cpp:1684
void cleanupGarbage()
Definition: windowmanagerimp.cpp:672
CharacterCreation * mCharGen
Definition: windowmanagerimp.hpp:448
virtual void disallowMouse()
Definition: windowmanagerimp.cpp:1547
std::map< std::string, std::string > mFallbackMap
Definition: windowmanagerimp.hpp:515
std::string mVersionDescription
Definition: windowmanagerimp.hpp:523
std::vector< WindowBase * > mWindows
Definition: windowmanagerimp.hpp:444
std::set< std::pair< std::string, std::string > > CategorySettingVector
Definition: settings.hpp:11
virtual void windowResized(int x, int y)
Definition: windowmanagerimp.cpp:1230
std::vector< Faction > FactionList
Definition: windowmanagerimp.hpp:131
std::string mOpenSound
Definition: windowmanagerimp.hpp:487
virtual bool textureExists(const std::string &path)
Definition: windowmanagerimp.cpp:2083
Definition: statswindow.hpp:13
WaitDialog * mWaitDialog
Definition: windowmanagerimp.hpp:433
virtual void setActiveMap(int x, int y, bool interior)
set the indices of the map texture that should be used
Definition: windowmanagerimp.cpp:1083
MWWorld::Ptr mSelectedEnchantItem
Definition: windowmanagerimp.hpp:404
std::unique_ptr< Gui::FontLoader > mFontLoader
Definition: windowmanagerimp.hpp:395
void onRetrieveTag(const MyGUI::UString &_tag, MyGUI::UString &_result)
Definition: windowmanagerimp.cpp:1172
Definition: esmwriter.hpp:17
std::map< int, MWMechanics::SkillValue > mPlayerSkillValues
Definition: windowmanagerimp.hpp:468
Definition: settingswindow.hpp:13
virtual std::string correctTexturePath(const std::string &path)
Definition: windowmanagerimp.cpp:2078
virtual void notifyInputActionBound()
Definition: windowmanagerimp.cpp:1557
virtual void setEnemy(const MWWorld::Ptr &enemy)
Definition: windowmanagerimp.cpp:1669
virtual void exitCurrentGuiMode()
Gracefully attempts to exit the topmost GUI mode.
Definition: windowmanagerimp.cpp:861
bool mConsoleOnlyScripts
Definition: windowmanagerimp.hpp:397
Definition: loadingscreen.hpp:30
MapWindow * mMap
Definition: windowmanagerimp.hpp:415
virtual void forceHide(MWGui::GuiWindow wnd)
Definition: windowmanagerimp.cpp:1496
Definition: esmstore.hpp:17
std::string mSelectedSpell
Definition: windowmanagerimp.hpp:403
virtual void unsetSelectedWeapon()
Definition: windowmanagerimp.cpp:1413
ConfirmationDialog * mConfirmationDialog
Definition: windowmanagerimp.hpp:429
virtual void setNewGame(bool newgame)
Definition: windowmanagerimp.cpp:614
Interface for widnow manager (implemented in MWGui)
Definition: windowmanager.hpp:89
virtual void write(ESM::ESMWriter &writer, Loading::Listener &progress)
Definition: windowmanagerimp.cpp:1737
GuiWindow
Definition: mode.hpp:54
virtual std::string correctBookartPath(const std::string &path, int width, int height, bool *exists=nullptr)
Definition: windowmanagerimp.cpp:2070
const MWWorld::ESMStore * mStore
Definition: windowmanagerimp.hpp:388
virtual void setSelectedEnchantItem(const MWWorld::Ptr &item)
Definition: windowmanagerimp.cpp:1365
Local map rendering.
Definition: localmap.hpp:36
void writeFog(MWWorld::CellStore *cell)
Definition: windowmanagerimp.cpp:2171
virtual bool toggleFullHelp()
show extra info in item tooltips (owner, script)
Definition: windowmanagerimp.cpp:1126
virtual bool isGuiMode() const
Definition: windowmanagerimp.cpp:1508
void createTextures()
Definition: windowmanagerimp.cpp:2114
virtual void pushGuiMode(GuiMode mode, const MWWorld::Ptr &arg)
Definition: windowmanagerimp.cpp:1270
virtual void onFrame(float frameDuration)
Definition: windowmanagerimp.cpp:981
virtual int readPressedButton()
returns the index of the pressed button or -1 if no button was pressed (->MessageBoxmanager->Interact...
Definition: windowmanagerimp.cpp:939
Definition: charactercreation.hpp:37
QuickKeysMenu * mQuickKeysMenu
Definition: windowmanagerimp.hpp:431
virtual bool toggleFogOfWar()
Definition: windowmanagerimp.cpp:1104
virtual void useItem(const MWWorld::Ptr &item, bool bypassBeastRestrictions=false)
Make the player use an item, while updating GUI state accordingly.
Definition: windowmanagerimp.cpp:1452
virtual void cycleSpell(bool next)
Cycle to next or previous spell.
Definition: windowmanagerimp.cpp:2034
bool mCursorActive
Definition: windowmanagerimp.hpp:458
Mutable state of a cell.
Definition: cellstore.hpp:51
InventoryWindow * mInventoryWindow
Definition: windowmanagerimp.hpp:423
ScreenFader * mWerewolfFader
Definition: windowmanagerimp.hpp:437
virtual bool getRestEnabled()
Definition: windowmanagerimp.cpp:1599
virtual bool getWorldMouseOver()
Definition: windowmanagerimp.cpp:1437
virtual void removeCurrentModal(WindowModal *input)
Removes the top Modal.
Definition: windowmanagerimp.cpp:1896
ShowInDialogueMode
Definition: windowmanager.hpp:72
bool mHitFaderEnabled
Definition: windowmanagerimp.hpp:454
Translation::Storage & mTranslationDataStorage
Definition: windowmanagerimp.hpp:446
std::map< int, MWMechanics::AttributeValue > mPlayerAttributes
Definition: windowmanagerimp.hpp:466
int mShowOwned
Definition: windowmanagerimp.hpp:517
virtual std::string correctIconPath(const std::string &path)
Definition: windowmanagerimp.cpp:2065
SpellWindow * mSpellWindow
Definition: windowmanagerimp.hpp:430
virtual bool isAllowed(GuiWindow wnd) const
Definition: windowmanagerimp.cpp:1458
virtual void activateHitOverlay(bool interrupt)
Definition: windowmanagerimp.cpp:1989
virtual void setSpellVisibility(bool visible)
Definition: windowmanagerimp.cpp:1141
FromType
Definition: to_utf8.hpp:11
ScreenFader * mHitFader
Definition: windowmanagerimp.hpp:439
std::unique_ptr< KeyboardNavigation > mKeyboardNavigation
Definition: windowmanagerimp.hpp:527
virtual MWGui::ConfirmationDialog * getConfirmationDialog()
Definition: windowmanagerimp.cpp:1449
GuiWindow mAllowed
Definition: windowmanagerimp.hpp:507
virtual void processChangedSettings(const Settings::CategorySettingVector &changed)
Definition: windowmanagerimp.cpp:1214
virtual bool isConsoleMode() const
Definition: windowmanagerimp.cpp:1513
virtual void playVideo(const std::string &name, bool allowSkipping)
Definition: windowmanagerimp.cpp:1794
DragAndDrop * mDragAndDrop
Definition: windowmanagerimp.hpp:422
virtual SkillList getPlayerMajorSkills()
Definition: windowmanagerimp.cpp:1542
virtual void setValue(const std::string &id, const MWMechanics::AttributeValue &value)
Set value for the given ID.
Definition: windowmanagerimp.cpp:769
virtual void setDrowningBarVisibility(bool visible)
sets the visibility of the drowning bar
Definition: windowmanagerimp.cpp:1089
void update(bool visible)
Definition: windowmanagerimp.cpp:2217
StatsWindow * mStatsWindow
Definition: windowmanagerimp.hpp:418
void removeCell(MWWorld::CellStore *cell)
Definition: windowmanagerimp.cpp:2166
std::string mPlayerRaceId
Definition: windowmanagerimp.hpp:465
std::vector< WindowBase * > mWindows
Definition: windowmanagerimp.hpp:484
virtual MWGui::InventoryWindow * getInventoryWindow()
Definition: windowmanagerimp.cpp:1447
MWGui::TextColours mTextColours
Definition: windowmanagerimp.hpp:525
Definition: debugwindow.hpp:9
Definition: scrollwindow.hpp:15
virtual void fadeScreenTo(const int percent, const float time, bool clearQueue, float delay)
Fade the screen to a specified percentage of black, over time seconds.
Definition: windowmanagerimp.cpp:1977
virtual void toggleVisible(GuiWindow wnd)
Definition: windowmanagerimp.cpp:1487
Definition: jailscreen.hpp:9
Definition: windowbase.hpp:21
GuiWindow mForceHidden
Definition: windowmanagerimp.hpp:500
virtual void removeStaticMessageBox()
Definition: windowmanagerimp.cpp:934
virtual void playSound(const std::string &soundId, float volume=1.f, float pitch=1.f)
Definition: windowmanagerimp.cpp:2046
Definition: spellwindow.hpp:14
bool mCrosshairEnabled
Definition: windowmanagerimp.hpp:452
virtual const MWWorld::Ptr & getSelectedEnchantItem() const
Definition: windowmanagerimp.cpp:1378
virtual void showSoulgemDialog(MWWorld::Ptr item)
Definition: windowmanagerimp.cpp:1633
Definition: layout.hpp:15
void initUI()
Definition: windowmanagerimp.cpp:389
SDLUtil::SDLCursorManager * mCursorManager
Definition: windowmanagerimp.hpp:494
virtual void setKeyFocusWidget(MyGUI::Widget *widget)
Warning: do not use MyGUI::InputManager::setKeyFocusWidget directly. Instead use this.
Definition: windowmanagerimp.cpp:1652
CustomMarkerCollection mCustomMarkers
Definition: windowmanagerimp.hpp:412
BookWindow * mBookWindow
Definition: windowmanagerimp.hpp:425
virtual std::map< int, MWMechanics::AttributeValue > getPlayerAttributeValues()
Definition: windowmanagerimp.cpp:1532
GuiMode
Definition: mode.hpp:6
virtual void setSelectedWeapon(const MWWorld::Ptr &item)
Definition: windowmanagerimp.cpp:1383
void setCursorVisible(bool visible)
Definition: windowmanagerimp.cpp:1158
std::map< GuiMode, GuiModeState > mGuiModeStates
Definition: windowmanagerimp.hpp:490
virtual void removeGuiMode(GuiMode mode, bool noSound=false)
can be anywhere in the stack
Definition: windowmanagerimp.cpp:1328
GuiWindow mShown
Definition: windowmanagerimp.hpp:499
virtual void pinWindow(MWGui::GuiWindow window)
Definition: windowmanagerimp.cpp:1940
virtual void clear()
Clear all savegame-specific data.
Definition: windowmanagerimp.cpp:1713
virtual void enableRest()
Definition: windowmanagerimp.hpp:303
MyGUI::Widget * mInputBlocker
Definition: windowmanagerimp.hpp:450
virtual std::map< int, MWMechanics::SkillValue > getPlayerSkillValues()
Definition: windowmanagerimp.cpp:1527
virtual void setBlindness(const int percent)
Darken the screen to a specified percentage.
Definition: windowmanagerimp.cpp:1984
Definition: loadclas.hpp:18
virtual void disallowAll()
Disallow all inventory mode windows.
Definition: windowmanagerimp.cpp:1476
TradeWindow * mTradeWindow
Definition: windowmanagerimp.hpp:427
Definition: stat.hpp:152
virtual void popGuiMode(bool noSound=false)
Definition: windowmanagerimp.cpp:1301
VideoWidget * mVideoWidget
Definition: windowmanagerimp.hpp:436
void onWindowChangeCoord(MyGUI::Window *_sender)
Definition: windowmanagerimp.cpp:1699
Definition: windowmanagerimp.hpp:472
virtual void allow(GuiWindow wnd)
Allow one or more windows.
Definition: windowmanagerimp.cpp:1463
virtual void showCrosshair(bool show)
Definition: windowmanagerimp.cpp:1571
virtual bool getPlayerSleeping()
Definition: windowmanagerimp.cpp:1607
std::vector< int > SkillList
Definition: windowmanager.hpp:99
bool mRestAllowed
Definition: windowmanagerimp.hpp:509
virtual void addCurrentModal(WindowModal *input)
Sets the current Modal.
Definition: windowmanagerimp.cpp:1884
virtual bool getJournalAllowed()
Definition: windowmanagerimp.hpp:306
std::string mPlayerName
Definition: windowmanagerimp.hpp:464
ToUTF8::FromType mEncoding
Definition: windowmanagerimp.hpp:519
virtual void unsetSelectedSpell()
Definition: windowmanagerimp.cpp:1400
MWRender::LocalMap * mLocalMapRender
Definition: windowmanagerimp.hpp:416
Definition: console.hpp:24
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
virtual bool injectKeyRelease(MyGUI::KeyCode key)
Definition: windowmanagerimp.cpp:2212
Definition: tooltips.hpp:47
virtual void setWeaponVisibility(bool visible)
Definition: windowmanagerimp.cpp:1136
int mFontHeight
Definition: windowmanagerimp.hpp:521
virtual void messageBox(const std::string &message, enum MWGui::ShowInDialogueMode showInDialogueMode=MWGui::ShowInDialogueMode_IfPossible)
Definition: windowmanagerimp.cpp:920
Definition: screenfader.hpp:35
MyGUI::ImageBox * mVideoBackground
Definition: windowmanagerimp.hpp:435
virtual void setHMSVisibility(bool visible)
sets the visibility of the hud health/magicka/stamina bars
Definition: windowmanagerimp.cpp:1094
MWWorld::Ptr mSelectedWeapon
Definition: windowmanagerimp.hpp:405
MyGUI::Gui * mGui
Definition: windowmanagerimp.hpp:470
virtual void removeDialog(Layout *dialog)
Hides dialog and schedules dialog to be deleted.
Definition: windowmanagerimp.cpp:853
std::vector< WindowModal * > mCurrentModals
Definition: windowmanagerimp.hpp:409
virtual const MWGui::TextColours & getTextColours()
Definition: windowmanagerimp.cpp:2176
virtual void interactiveMessageBox(const std::string &message, const std::vector< std::string > &buttons=std::vector< std::string >(), bool block=false)
Definition: windowmanagerimp.cpp:884
void onClipboardChanged(const std::string &_type, const std::string &_data)
Definition: windowmanagerimp.cpp:2011
virtual void setDragDrop(bool dragDrop)
Definition: windowmanagerimp.cpp:1152
virtual void unsetForceHide(MWGui::GuiWindow wnd)
Definition: windowmanagerimp.cpp:1502
KeyCode
Keyboard scan codes.
Definition: OISCompat.hpp:10
virtual void setConsoleSelectedObject(const MWWorld::Ptr &object)
Set value for the given ID.
Definition: windowmanagerimp.cpp:2060
void setStore(const MWWorld::ESMStore &store)
Set the ESMStore to use for retrieving of GUI-related strings.
Definition: windowmanagerimp.cpp:667
virtual std::string getSelectedSpell()
Definition: windowmanagerimp.hpp:244
virtual SkillList getPlayerMinorSkills()
Definition: windowmanagerimp.cpp:1537
Definition: windowmanagerimp.hpp:127
virtual MWGui::CountDialog * getCountDialog()
Definition: windowmanagerimp.cpp:1448
bool mCursorVisible
Definition: windowmanagerimp.hpp:457
Definition: windowbase.hpp:61
const char * name
Definition: crashcatcher.cpp:67
virtual void setSelectedSpell(const std::string &spellId, int successChancePercent)
Definition: windowmanagerimp.cpp:1354
GuiModeState()
Definition: windowmanagerimp.hpp:480
virtual ~WindowManager()
Definition: windowmanagerimp.cpp:626