summaryrefslogtreecommitdiff
path: root/library/include
diff options
context:
space:
mode:
authorAlexander Gavrilov2012-08-24 13:20:08 +0400
committerAlexander Gavrilov2012-08-24 13:20:08 +0400
commite825dc5ddb1f2c0798b571ebcb02a52e184fc689 (patch)
treef5fe92c3ea5b2f56e677f8d9d0b670e252317b4c /library/include
parentb12b9fa91e3be0d4d157f144f4b20202cdb72917 (diff)
downloaddfhack-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.h8
-rw-r--r--library/include/modules/Screen.h8
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();
};
}