void inventory_selector::on_action( const std::string &action ) { if( action == "CATEGORY_SELECTION" ) { toggle_navigation_mode(); } else if( action == "LEFT" ) { toggle_active_column(); } else { for( auto &column : columns ) { column->on_action( action ); } refresh_active_column(); // Columns can react to actions by losing their activation capacity } }
void refresh_active_column() { if( !get_active_column().activatable() ) { toggle_active_column(); } }