diff options
| author | Alexander Gavrilov | 2012-08-24 13:20:08 +0400 |
|---|---|---|
| committer | Alexander Gavrilov | 2012-08-24 13:20:08 +0400 |
| commit | e825dc5ddb1f2c0798b571ebcb02a52e184fc689 (patch) | |
| tree | f5fe92c3ea5b2f56e677f8d9d0b670e252317b4c /library/include | |
| parent | b12b9fa91e3be0d4d157f144f4b20202cdb72917 (diff) | |
| download | dfhack-e825dc5ddb1f2c0798b571ebcb02a52e184fc689.tar.gz dfhack-e825dc5ddb1f2c0798b571ebcb02a52e184fc689.tar.bz2 dfhack-e825dc5ddb1f2c0798b571ebcb02a52e184fc689.tar.xz | |
Tweak the API for current viewscreen, and dispatch show/dismiss from C++.
Diffstat (limited to 'library/include')
| -rw-r--r-- | library/include/modules/Gui.h | 8 | ||||
| -rw-r--r-- | library/include/modules/Screen.h | 8 |
2 files changed, 12 insertions, 4 deletions
diff --git a/library/include/modules/Gui.h b/library/include/modules/Gui.h index e7155c43..273d84ce 100644 --- a/library/include/modules/Gui.h +++ b/library/include/modules/Gui.h @@ -55,8 +55,6 @@ namespace DFHack */ namespace Gui { - inline df::viewscreen *getCurViewscreen() { return Core::getTopViewscreen(); } - DFHACK_EXPORT std::string getFocusString(df::viewscreen *top); // Full-screen item details view @@ -113,7 +111,11 @@ namespace DFHack * Gui screens */ /// Get the current top-level view-screen - DFHACK_EXPORT df::viewscreen * GetCurrentScreen(); + DFHACK_EXPORT df::viewscreen *getCurViewscreen(bool skip_dismissed = false); + + inline std::string getCurFocus(bool skip_dismissed = false) { + return getFocusString(getCurViewscreen(skip_dismissed)); + } /// get the size of the window buffer DFHACK_EXPORT bool getWindowSize(int32_t & width, int32_t & height); diff --git a/library/include/modules/Screen.h b/library/include/modules/Screen.h index ce3f32ed..492e1eec 100644 --- a/library/include/modules/Screen.h +++ b/library/include/modules/Screen.h @@ -112,7 +112,7 @@ namespace DFHack // Push and remove viewscreens DFHACK_EXPORT bool show(df::viewscreen *screen, df::viewscreen *before = NULL); - DFHACK_EXPORT void dismiss(df::viewscreen *screen); + DFHACK_EXPORT void dismiss(df::viewscreen *screen, bool to_first = false); DFHACK_EXPORT bool isDismissed(df::viewscreen *screen); } @@ -136,7 +136,10 @@ namespace DFHack virtual bool key_conflict(df::interface_key key); virtual bool is_lua_screen() { return false; } + virtual std::string getFocusString() = 0; + virtual void onShow() {}; + virtual void onDismiss() {}; }; class DFHACK_EXPORT dfhack_lua_viewscreen : public dfhack_viewscreen { @@ -166,5 +169,8 @@ namespace DFHack virtual void help(); virtual void resize(int w, int h); virtual void feed(std::set<df::interface_key> *keys); + + virtual void onShow(); + virtual void onDismiss(); }; } |
