OpenMW
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
windowmanager.hpp
Go to the documentation of this file.
1 #ifndef GAME_MWBASE_WINDOWMANAGER_H
2 #define GAME_MWBASE_WINDOWMANAGER_H
3 
4 #include <stdint.h>
5 #include <string>
6 #include <vector>
7 #include <map>
8 #include <set>
9 
10 #include <MyGUI_KeyCode.h>
11 
12 #include "../mwgui/mode.hpp"
13 
14 namespace Loading
15 {
16  class Listener;
17 }
18 
19 namespace Translation
20 {
21  class Storage;
22 }
23 
24 namespace MyGUI
25 {
26  class Gui;
27  class Widget;
28  class UString;
29 }
30 
31 namespace ESM
32 {
33  struct Class;
34  class ESMReader;
35  class ESMWriter;
36  struct CellId;
37 }
38 
39 namespace MWMechanics
40 {
41  class AttributeValue;
42  template<typename T>
43  class DynamicStat;
44  class SkillValue;
45 }
46 
47 namespace MWWorld
48 {
49  class CellStore;
50  class Ptr;
51 }
52 
53 namespace MWGui
54 {
55  class Layout;
56 
57  class Console;
58  class SpellWindow;
59  class TradeWindow;
60  class TravelWindow;
61  class SpellBuyingWindow;
62  class ConfirmationDialog;
63  class CountDialog;
64  class ScrollWindow;
65  class BookWindow;
66  class InventoryWindow;
67  class ContainerWindow;
68  class DialogueWindow;
69  class WindowModal;
70  class JailScreen;
71 
76  };
77 
78  struct TextColours;
79 }
80 
81 namespace SFO
82 {
83  class CursorManager;
84 }
85 
86 namespace MWBase
87 {
90  {
93 
96 
97  public:
98 
99  typedef std::vector<int> SkillList;
100 
102 
103  virtual ~WindowManager() {}
104 
107  virtual void playVideo(const std::string& name, bool allowSkipping) = 0;
108 
109  virtual void setNewGame(bool newgame) = 0;
110 
111  virtual void pushGuiMode (MWGui::GuiMode mode, const MWWorld::Ptr& arg) = 0;
112  virtual void pushGuiMode (MWGui::GuiMode mode) = 0;
113  virtual void popGuiMode(bool noSound=false) = 0;
114 
115  virtual void removeGuiMode (MWGui::GuiMode mode, bool noSound=false) = 0;
117 
118  virtual void goToJail(int days) = 0;
119 
120  virtual void updatePlayer() = 0;
121 
122  virtual MWGui::GuiMode getMode() const = 0;
123  virtual bool containsMode(MWGui::GuiMode) const = 0;
124 
125  virtual bool isGuiMode() const = 0;
126 
127  virtual bool isConsoleMode() const = 0;
128 
129  virtual void toggleVisible (MWGui::GuiWindow wnd) = 0;
130 
131  virtual void forceHide(MWGui::GuiWindow wnd) = 0;
132  virtual void unsetForceHide(MWGui::GuiWindow wnd) = 0;
133 
135  virtual void disallowAll() = 0;
136 
138  virtual void allow (MWGui::GuiWindow wnd) = 0;
139 
140  virtual bool isAllowed (MWGui::GuiWindow wnd) const = 0;
141 
144  virtual MWGui::CountDialog* getCountDialog() = 0;
146  virtual MWGui::TradeWindow* getTradeWindow() = 0;
147 
149  virtual void useItem(const MWWorld::Ptr& item, bool force=false) = 0;
150 
151  virtual void updateSpellWindow() = 0;
152 
153  virtual void setConsoleSelectedObject(const MWWorld::Ptr& object) = 0;
154 
156  virtual void setValue (const std::string& id, const MWMechanics::AttributeValue& value) = 0;
157  virtual void setValue (int parSkill, const MWMechanics::SkillValue& value) = 0;
158  virtual void setValue (const std::string& id, const MWMechanics::DynamicStat<float>& value) = 0;
159  virtual void setValue (const std::string& id, const std::string& value) = 0;
160  virtual void setValue (const std::string& id, int value) = 0;
161 
165  virtual void setDrowningTimeLeft (float time, float maxTime) = 0;
166 
167  virtual void setPlayerClass (const ESM::Class &class_) = 0;
169 
170  virtual void configureSkills (const SkillList& major, const SkillList& minor) = 0;
172 
173  virtual void updateSkillArea() = 0;
175 
176  virtual void changeCell(const MWWorld::CellStore* cell) = 0;
178 
179  virtual void setFocusObject(const MWWorld::Ptr& focus) = 0;
180  virtual void setFocusObjectScreenCoords(float min_x, float min_y, float max_x, float max_y) = 0;
181 
182  virtual void setCursorVisible(bool visible) = 0;
183  virtual void setCursorActive(bool active) = 0;
184  virtual void getMousePosition(int &x, int &y) = 0;
185  virtual void getMousePosition(float &x, float &y) = 0;
186  virtual void setDragDrop(bool dragDrop) = 0;
187  virtual bool getWorldMouseOver() = 0;
188 
189  virtual bool toggleFogOfWar() = 0;
190 
191  virtual bool toggleFullHelp() = 0;
193 
194  virtual bool getFullHelp() const = 0;
195 
196  virtual void setActiveMap(int x, int y, bool interior) = 0;
198 
200  virtual void setDrowningBarVisibility(bool visible) = 0;
201 
203  virtual void setHMSVisibility(bool visible) = 0;
204 
206  virtual void setMinimapVisibility(bool visible) = 0;
207  virtual void setWeaponVisibility(bool visible) = 0;
208  virtual void setSpellVisibility(bool visible) = 0;
209  virtual void setSneakVisibility(bool visible) = 0;
210 
212  virtual void activateQuickKey (int index) = 0;
214  virtual void updateActivatedQuickKey () = 0;
215 
216  virtual std::string getSelectedSpell() = 0;
217  virtual void setSelectedSpell(const std::string& spellId, int successChancePercent) = 0;
218  virtual void setSelectedEnchantItem(const MWWorld::Ptr& item) = 0;
219  virtual const MWWorld::Ptr& getSelectedEnchantItem() const = 0;
220  virtual void setSelectedWeapon(const MWWorld::Ptr& item) = 0;
221  virtual const MWWorld::Ptr& getSelectedWeapon() const = 0;
222  virtual int getFontHeight() const = 0;
223  virtual void unsetSelectedSpell() = 0;
224  virtual void unsetSelectedWeapon() = 0;
225 
226  virtual void showCrosshair(bool show) = 0;
227  virtual bool getSubtitlesEnabled() = 0;
228  virtual bool toggleHud() = 0;
229 
230  virtual void disallowMouse() = 0;
231  virtual void allowMouse() = 0;
232  virtual void notifyInputActionBound() = 0;
233 
234  virtual void addVisitedLocation(const std::string& name, int x, int y) = 0;
235 
237  virtual void removeDialog(MWGui::Layout* dialog) = 0;
238 
240 
241  virtual void exitCurrentGuiMode() = 0;
242 
243  virtual void messageBox (const std::string& message, enum MWGui::ShowInDialogueMode showInDialogueMode = MWGui::ShowInDialogueMode_IfPossible) = 0;
244  virtual void staticMessageBox(const std::string& message) = 0;
245  virtual void removeStaticMessageBox() = 0;
246  virtual void interactiveMessageBox (const std::string& message,
247  const std::vector<std::string>& buttons = std::vector<std::string>(), bool block=false) = 0;
248 
250  virtual int readPressedButton() = 0;
251 
252  virtual void onFrame (float frameDuration) = 0;
253 
255  virtual std::map<int, MWMechanics::SkillValue > getPlayerSkillValues() = 0;
256  virtual std::map<int, MWMechanics::AttributeValue > getPlayerAttributeValues() = 0;
257  virtual SkillList getPlayerMinorSkills() = 0;
258  virtual SkillList getPlayerMajorSkills() = 0;
259 
267  virtual std::string getGameSettingString(const std::string &id, const std::string &default_) = 0;
268 
269  virtual void processChangedSettings(const std::set< std::pair<std::string, std::string> >& changed) = 0;
270 
271  virtual void windowResized(int x, int y) = 0;
272 
273  virtual void executeInConsole (const std::string& path) = 0;
274 
275  virtual void enableRest() = 0;
276  virtual bool getRestEnabled() = 0;
277  virtual bool getJournalAllowed() = 0;
278 
279  virtual bool getPlayerSleeping() = 0;
280  virtual void wakeUpPlayer() = 0;
281 
282  virtual void showSoulgemDialog (MWWorld::Ptr item) = 0;
283 
284  virtual void changePointer (const std::string& name) = 0;
285 
286  virtual void setEnemy (const MWWorld::Ptr& enemy) = 0;
287 
288  virtual const Translation::Storage& getTranslationDataStorage() const = 0;
289 
291  virtual void setKeyFocusWidget (MyGUI::Widget* widget) = 0;
292 
293  virtual void loadUserFonts() = 0;
294 
295  virtual Loading::Listener* getLoadingScreen() = 0;
296 
298  virtual bool getCursorVisible() = 0;
299 
301  virtual void clear() = 0;
302 
303  virtual void write (ESM::ESMWriter& writer, Loading::Listener& progress) = 0;
304  virtual void readRecord (ESM::ESMReader& reader, uint32_t type) = 0;
305  virtual int countSavedGameRecords() const = 0;
306 
308  virtual bool isSavingAllowed() const = 0;
309 
311  virtual void exitCurrentModal() = 0;
312 
314 
315  virtual void addCurrentModal(MWGui::WindowModal* input) = 0;
316 
318 
320  virtual void removeCurrentModal(MWGui::WindowModal* input) = 0;
321 
322  virtual void pinWindow (MWGui::GuiWindow window) = 0;
323 
325  virtual void fadeScreenIn(const float time, bool clearQueue=true, float delay=0.f) = 0;
327  virtual void fadeScreenOut(const float time, bool clearQueue=true, float delay=0.f) = 0;
329  virtual void fadeScreenTo(const int percent, const float time, bool clearQueue=true, float delay=0.f) = 0;
331  virtual void setBlindness(const int percent) = 0;
332 
333  virtual void activateHitOverlay(bool interrupt=true) = 0;
334  virtual void setWerewolfOverlay(bool set) = 0;
335 
336  virtual void toggleDebugWindow() = 0;
337 
339  virtual void cycleSpell(bool next) = 0;
341  virtual void cycleWeapon(bool next) = 0;
342 
343  virtual void playSound(const std::string& soundId, float volume = 1.f, float pitch = 1.f) = 0;
344 
345  // In WindowManager for now since there isn't a VFS singleton
346  virtual std::string correctIconPath(const std::string& path) = 0;
347  virtual std::string correctBookartPath(const std::string& path, int width, int height, bool* exists = nullptr) = 0;
348  virtual std::string correctTexturePath(const std::string& path) = 0;
349  virtual bool textureExists(const std::string& path) = 0;
350 
351  virtual void removeCell(MWWorld::CellStore* cell) = 0;
352  virtual void writeFog(MWWorld::CellStore* cell) = 0;
353 
354  virtual const MWGui::TextColours& getTextColours() = 0;
355 
356  virtual bool injectKeyPress(MyGUI::KeyCode key, unsigned int text, bool repeat) = 0;
357  virtual bool injectKeyRelease(MyGUI::KeyCode key) = 0;
358  };
359 }
360 
361 #endif
virtual void useItem(const MWWorld::Ptr &item, bool force=false)=0
Make the player use an item, while updating GUI state accordingly.
virtual void setCursorActive(bool active)=0
Definition: tradewindow.hpp:25
virtual void setConsoleSelectedObject(const MWWorld::Ptr &object)=0
virtual bool toggleFogOfWar()=0
WindowManager()
Definition: windowmanager.hpp:101
Definition: inventorywindow.hpp:33
virtual bool textureExists(const std::string &path)=0
void message(CodeContainer &code, Literals &literals, const std::string &message, int buttons)
Definition: generator.cpp:537
Definition: stat.hpp:123
virtual std::string correctBookartPath(const std::string &path, int width, int height, bool *exists=nullptr)=0
Definition: confirmationdialog.hpp:8
virtual void setFocusObject(const MWWorld::Ptr &focus)=0
virtual void unsetForceHide(MWGui::GuiWindow wnd)=0
virtual void addCurrentModal(MWGui::WindowModal *input)=0
Sets the current Modal.
virtual void setSpellVisibility(bool visible)=0
virtual bool getSubtitlesEnabled()=0
Definition: countdialog.hpp:13
virtual bool isGuiMode() const =0
Definition: esmreader.hpp:21
virtual void updatePlayer()=0
virtual void setSelectedWeapon(const MWWorld::Ptr &item)=0
virtual void removeGuiMode(MWGui::GuiMode mode, bool noSound=false)=0
can be anywhere in the stack
virtual void setSneakVisibility(bool visible)=0
virtual void setDrowningTimeLeft(float time, float maxTime)=0
virtual void unsetSelectedWeapon()=0
virtual Loading::Listener * getLoadingScreen()=0
virtual void onFrame(float frameDuration)=0
virtual void updateSkillArea()=0
update display of skills, factions, birth sign, reputation and bounty
virtual void updateSpellWindow()=0
virtual ~WindowManager()
Definition: windowmanager.hpp:103
virtual void interactiveMessageBox(const std::string &message, const std::vector< std::string > &buttons=std::vector< std::string >(), bool block=false)=0
Definition: textcolours.hpp:9
virtual bool getPlayerSleeping()=0
virtual void exitCurrentGuiMode()=0
Gracefully attempts to exit the topmost GUI mode.
virtual void disallowMouse()=0
virtual void unsetSelectedSpell()=0
Definition: translation.hpp:9
virtual MWGui::CountDialog * getCountDialog()=0
virtual void staticMessageBox(const std::string &message)=0
virtual std::map< int, MWMechanics::SkillValue > getPlayerSkillValues()=0
Definition: windowmanager.hpp:73
virtual void setActiveMap(int x, int y, bool interior)=0
set the indices of the map texture that should be used
virtual std::string getSelectedSpell()=0
Definition: loadinglistener.hpp:8
virtual void addVisitedLocation(const std::string &name, int x, int y)=0
virtual std::string correctTexturePath(const std::string &path)=0
virtual void setHMSVisibility(bool visible)=0
sets the visibility of the hud health/magicka/stamina bars
virtual void toggleDebugWindow()=0
virtual void showSoulgemDialog(MWWorld::Ptr item)=0
virtual void showCrosshair(bool show)=0
virtual bool isConsoleMode() const =0
virtual bool getCursorVisible()=0
Should the cursor be visible?
virtual const Translation::Storage & getTranslationDataStorage() const =0
virtual void exitCurrentModal()=0
Send exit command to active Modal window.
virtual void forceHide(MWGui::GuiWindow wnd)=0
virtual void setValue(const std::string &id, const MWMechanics::AttributeValue &value)=0
Set value for the given ID.
virtual void removeStaticMessageBox()=0
virtual void cycleWeapon(bool next)=0
Cycle to next or previous weapon.
virtual std::map< int, MWMechanics::AttributeValue > getPlayerAttributeValues()=0
virtual bool toggleHud()=0
Definition: esmwriter.hpp:17
virtual void removeCell(MWWorld::CellStore *cell)=0
virtual SkillList getPlayerMinorSkills()=0
virtual MWGui::InventoryWindow * getInventoryWindow()=0
virtual int readPressedButton()=0
returns the index of the pressed button or -1 if no button was pressed (->MessageBoxmanager->Interact...
virtual void windowResized(int x, int y)=0
virtual void pinWindow(MWGui::GuiWindow window)=0
virtual bool getRestEnabled()=0
virtual void loadUserFonts()=0
virtual void messageBox(const std::string &message, enum MWGui::ShowInDialogueMode showInDialogueMode=MWGui::ShowInDialogueMode_IfPossible)=0
Interface for widnow manager (implemented in MWGui)
Definition: windowmanager.hpp:89
GuiWindow
Definition: mode.hpp:54
virtual void allow(MWGui::GuiWindow wnd)=0
Allow one or more windows.
virtual bool getWorldMouseOver()=0
virtual void enableRest()=0
virtual void setSelectedSpell(const std::string &spellId, int successChancePercent)=0
virtual void goToJail(int days)=0
virtual void updateActivatedQuickKey()=0
update activated quick key state (if action executing was delayed for some reason) ...
WindowManager & operator=(const WindowManager &)
not implemented
virtual void changeCell(const MWWorld::CellStore *cell)=0
change the active cell
virtual void executeInConsole(const std::string &path)=0
virtual void notifyInputActionBound()=0
Definition: windowmanager.hpp:74
virtual void configureSkills(const SkillList &major, const SkillList &minor)=0
configure skill groups, each set contains the skill ID for that group.
Mutable state of a cell.
Definition: cellstore.hpp:51
virtual bool isSavingAllowed() const =0
Does the current stack of GUI-windows permit saving?
ShowInDialogueMode
Definition: windowmanager.hpp:72
virtual void processChangedSettings(const std::set< std::pair< std::string, std::string > > &changed)=0
virtual void clear()=0
Clear all savegame-specific data.
virtual void toggleVisible(MWGui::GuiWindow wnd)=0
virtual void fadeScreenTo(const int percent, const float time, bool clearQueue=true, float delay=0.f)=0
Fade the screen to a specified percentage of black, over time seconds.
Definition: windowmanager.hpp:43
virtual void setKeyFocusWidget(MyGUI::Widget *widget)=0
Warning: do not use MyGUI::InputManager::setKeyFocusWidget directly. Instead use this.
virtual void setWeaponVisibility(bool visible)=0
virtual void write(ESM::ESMWriter &writer, Loading::Listener &progress)=0
virtual void setDrowningBarVisibility(bool visible)=0
sets the visibility of the drowning bar
virtual void setBlindness(const int percent)=0
Darken the screen to a specified percentage.
virtual MWGui::TradeWindow * getTradeWindow()=0
virtual const MWWorld::Ptr & getSelectedEnchantItem() const =0
virtual void popGuiMode(bool noSound=false)=0
virtual void setSelectedEnchantItem(const MWWorld::Ptr &item)=0
virtual bool toggleFullHelp()=0
show extra info in item tooltips (owner, script)
virtual void getMousePosition(int &x, int &y)=0
virtual void setMinimapVisibility(bool visible)=0
sets the visibility of the hud minimap
virtual const MWGui::TextColours & getTextColours()=0
virtual void setPlayerClass(const ESM::Class &class_)=0
set current class of player
virtual void setCursorVisible(bool visible)=0
virtual bool isAllowed(MWGui::GuiWindow wnd) const =0
Definition: layout.hpp:15
virtual void removeCurrentModal(MWGui::WindowModal *input)=0
Removes the top Modal.
virtual void playVideo(const std::string &name, bool allowSkipping)=0
virtual void removeDialog(MWGui::Layout *dialog)=0
Hides dialog and schedules dialog to be deleted.
virtual MWGui::ConfirmationDialog * getConfirmationDialog()=0
GuiMode
Definition: mode.hpp:6
virtual void fadeScreenIn(const float time, bool clearQueue=true, float delay=0.f)=0
Fade the screen in, over time seconds.
virtual void fadeScreenOut(const float time, bool clearQueue=true, float delay=0.f)=0
Fade the screen out to black, over time seconds.
virtual void activateHitOverlay(bool interrupt=true)=0
Definition: windowmanager.hpp:75
virtual void readRecord(ESM::ESMReader &reader, uint32_t type)=0
virtual void setFocusObjectScreenCoords(float min_x, float min_y, float max_x, float max_y)=0
virtual bool injectKeyRelease(MyGUI::KeyCode key)=0
virtual bool getJournalAllowed()=0
Definition: loadclas.hpp:18
virtual void disallowAll()=0
Disallow all inventory mode windows.
virtual bool injectKeyPress(MyGUI::KeyCode key, unsigned int text, bool repeat)=0
Definition: stat.hpp:152
virtual void pushGuiMode(MWGui::GuiMode mode, const MWWorld::Ptr &arg)=0
virtual void setNewGame(bool newgame)=0
virtual void setWerewolfOverlay(bool set)=0
virtual void cycleSpell(bool next)=0
Cycle to next or previous spell.
virtual MWGui::GuiMode getMode() const =0
std::vector< int > SkillList
Definition: windowmanager.hpp:99
virtual SkillList getPlayerMajorSkills()=0
virtual int countSavedGameRecords() const =0
virtual void writeFog(MWWorld::CellStore *cell)=0
virtual std::string getGameSettingString(const std::string &id, const std::string &default_)=0
Pointer to a LiveCellRef.
Definition: ptr.hpp:19
virtual void setEnemy(const MWWorld::Ptr &enemy)=0
virtual int getFontHeight() const =0
virtual void changePointer(const std::string &name)=0
virtual bool containsMode(MWGui::GuiMode) const =0
virtual void setDragDrop(bool dragDrop)=0
virtual const MWWorld::Ptr & getSelectedWeapon() const =0
virtual void wakeUpPlayer()=0
KeyCode
Keyboard scan codes.
Definition: OISCompat.hpp:10
virtual void allowMouse()=0
virtual void playSound(const std::string &soundId, float volume=1.f, float pitch=1.f)=0
virtual void activateQuickKey(int index)=0
activate selected quick key
Definition: windowbase.hpp:61
virtual bool getFullHelp() const =0
const char * name
Definition: crashcatcher.cpp:67
virtual std::string correctIconPath(const std::string &path)=0