nuclear@9: #include nuclear@9: #include "vector.h" nuclear@9: #include "scrman.h" nuclear@9: nuclear@9: static vector screens; nuclear@9: static vector active; nuclear@9: nuclear@9: void add_screen(Screen *s) nuclear@9: { nuclear@9: screens.push_back(s); nuclear@9: } nuclear@9: nuclear@9: Screen *get_screen(const char *name) nuclear@9: { nuclear@9: for(size_t i=0; iget_name(), name) == 0) { nuclear@9: return screens[i]; nuclear@9: } nuclear@9: } nuclear@9: return 0; nuclear@9: } nuclear@9: nuclear@9: void destroy_screens() nuclear@9: { nuclear@9: for(size_t i=0; ishutdown(); nuclear@9: delete screens[i]; nuclear@9: } nuclear@9: screens.clear(); nuclear@9: active.clear(); nuclear@9: } nuclear@9: nuclear@9: void activate_screen(Screen *s) nuclear@9: { nuclear@9: active.push_back(s); nuclear@9: } nuclear@9: nuclear@9: Screen *deactivate_screen() nuclear@9: { nuclear@9: Screen *s = active_screen(); nuclear@9: if(!s) return 0; nuclear@9: nuclear@9: active.pop_back(); nuclear@9: return s; nuclear@9: } nuclear@9: nuclear@9: Screen *active_screen() nuclear@9: { nuclear@9: return active.empty() ? 0 : active.back(); nuclear@9: }