diff options
author | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-06-29 16:55:20 +0000 |
---|---|---|
committer | haranp <haranp@c06c8d41-db1a-0410-9941-cceddc491573> | 2007-06-29 16:55:20 +0000 |
commit | 2b2a5958399c551e7643237bc6b519d299bad164 (patch) | |
tree | 645554f77a7f23369028f7ba46eb7c71d07a3160 /crawl-ref/source/menu.cc | |
parent | cf277d8cb8c333532b3db63855ef003553e412f5 (diff) | |
download | crawl-ref-2b2a5958399c551e7643237bc6b519d299bad164.tar.gz crawl-ref-2b2a5958399c551e7643237bc6b519d299bad164.zip |
Implemented 1715578: pressing '!' in the Z? screen toggles between
showing schools/success and hunger/power.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@1693 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/menu.cc')
-rw-r--r-- | crawl-ref/source/menu.cc | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/crawl-ref/source/menu.cc b/crawl-ref/source/menu.cc index 7b78c92b1e..e4a3ea7904 100644 --- a/crawl-ref/source/menu.cc +++ b/crawl-ref/source/menu.cc @@ -1382,3 +1382,32 @@ bool formatted_scroller::process_key( int keyin ) return true; } + +int ToggleableMenu::pre_process(int key) +{ + if ( std::find(toggle_keys.begin(), toggle_keys.end(), key) != + toggle_keys.end() ) + { + // Toggle all menu entries + for ( unsigned int i = 0; i < items.size(); ++i ) + { + ToggleableMenuEntry* const p = + dynamic_cast<ToggleableMenuEntry*>(items[i]); + if ( p ) + p->toggle(); + } + + // Toggle title + ToggleableMenuEntry* const pt = + dynamic_cast<ToggleableMenuEntry*>(title); + if ( pt ) + pt->toggle(); + + // Redraw + draw_menu(); + + // Don't further process the key + return 0; + } + return key; +} |