utils.h

Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2007-2008 Martin Pieuchot
00003  *
00004  * This library is free software; you can redistribute it and/or
00005  * modify it under the terms of the GNU Lesser General Public
00006  * License as published by the Free Software Foundation; either
00007  * version 2.1 of the License, or (at your option) any later version.
00008  *
00009  * This library is distributed in the hope that it will be useful,
00010  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00012  * Lesser General Public License for more details.
00013  *
00014  * You should have received a copy of the GNU Lesser General Public
00015  * License along with this library; if not, write to the Free Software
00016  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301
00017  * USA
00018  */
00019 
00020 #ifndef _WX_OGRE_UTILS_H_
00021 #define _WX_OGRE_UTILS_H_
00022 
00023 #include <wx/wx.h>
00024 #include <Ogre.h>
00025 
00026 #define IMPLEMENT_OGRE_SINGLETON(CLASS)                         \
00027                                                                 \
00028     template<> CLASS* Ogre::Singleton<CLASS>::ms_Singleton = 0; \
00029                                                                 \
00030     CLASS& CLASS::getSingleton()                                \
00031     {                                                           \
00032         assert(ms_Singleton);                                   \
00033         return *ms_Singleton;                                   \
00034     }                                                           \
00035                                                                 \
00036     CLASS* CLASS::getSingletonPtr()                             \
00037     {                                                           \
00038         return ms_Singleton;                                    \
00039     }                                                           \
00040 
00041 #define DECLARE_OGRE_SINGLETON(CLASS)                           \
00042 public:                                                         \
00043                                                                 \
00044     static CLASS& getSingleton();                               \
00045                                                                 \
00046     static CLASS* getSingletonPtr();
00047 
00048 void wxOgreExceptionBox(Ogre::Exception& e);
00049 
00051 std::string wx2std(const wxString& s);
00052 
00054 wxString std2wx(const std::string& s);
00055 
00057 std::string getExtension(const std::string& s);
00058 
00059 #define all2std(x) Ogre::StringConverter::toString((x))
00060 
00061 #endif