From 2b2a5958399c551e7643237bc6b519d299bad164 Mon Sep 17 00:00:00 2001 From: haranp Date: Fri, 29 Jun 2007 16:55:20 +0000 Subject: 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 --- crawl-ref/source/menu.cc | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'crawl-ref/source/menu.cc') 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(items[i]); + if ( p ) + p->toggle(); + } + + // Toggle title + ToggleableMenuEntry* const pt = + dynamic_cast(title); + if ( pt ) + pt->toggle(); + + // Redraw + draw_menu(); + + // Don't further process the key + return 0; + } + return key; +} -- cgit v1.2.3-54-g00ecf