00001 #ifndef MERCURYSCREENMANAGER_H 00002 #define MERCURYSCREENMANAGER_H 00003 00004 #include <vector> 00005 #include "MercuryString.h" 00006 #include "MercuryScreen.h" 00007 00009 class MercuryScreenManager 00010 { 00011 public: 00012 MercuryScreenManager(); 00013 ~MercuryScreenManager(); 00014 void Update(const float dTime); 00015 void AddScreen(MercuryScreen* screen); 00016 void AddScreen(MString name); 00017 void RemoveScreen(MercuryScreen* screen, bool delScreen = false); 00018 void RemoveScreen(MString name, bool delScreen = true); 00019 void SetPrimaryScreen( MString name ); 00020 00021 MercuryScreen* GetCurrentScreen() { return m_current; } 00022 private: 00023 MercuryScreen* m_primary; 00024 MDeque<MercuryScreen*> m_screens; 00025 MercuryScreen* m_current; 00026 }; 00027 00028 extern MercuryScreenManager* SCREENMAN; 00029 00030 #endif 00031 00032 /* 00033 * Copyright (c) 2005-2006, Joshua Allen 00034 * All rights reserved. 00035 * 00036 * Redistribution and use in source and binary forms, with or 00037 * without modification, are permitted provided that the following 00038 * conditions are met: 00039 * - Redistributions of source code must retain the above 00040 * copyright notice, this list of conditions and the following disclaimer. 00041 * - Redistributions in binary form must reproduce the above copyright 00042 * notice, this list of conditions and the following disclaimer in 00043 * the documentation and/or other materials provided with the distribution. 00044 * - Neither the name of the Mercury Engine nor the names of its 00045 * contributors may be used to endorse or promote products derived from 00046 * this software without specific prior written permission. 00047 * 00048 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00049 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00050 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 00051 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE 00052 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00053 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00054 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00055 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00056 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE 00057 * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00058 */