00001 // wg_error.h 00002 // 00003 // wGui error classes 00004 // 00005 // 00006 // Copyright (c) 2002-2004 Rob Wiskow 00007 // rob-dev@boxedchaos.com 00008 // 00009 // This library is free software; you can redistribute it and/or 00010 // modify it under the terms of the GNU Lesser General Public 00011 // License as published by the Free Software Foundation; either 00012 // version 2.1 of the License, or (at your option) any later version. 00013 // 00014 // This library is distributed in the hope that it will be useful, 00015 // but WITHOUT ANY WARRANTY; without even the implied warranty of 00016 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00017 // Lesser General Public License for more details. 00018 // 00019 // You should have received a copy of the GNU Lesser General Public 00020 // License along with this library; if not, write to the Free Software 00021 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 00022 // 00023 00024 00025 // This is for all the exception classes that are used in wGui 00026 00027 #ifndef _WG_ERROR_H_ 00028 #define _WG_ERROR_H_ 00029 00030 #include <exception> 00031 #include <string> 00032 #include "std_ex.h" 00033 00034 00035 namespace wGui 00036 { 00037 00039 class Wg_Ex_Base : public std::exception 00040 { 00041 public: 00044 Wg_Ex_Base(const std::wstring& sWhat) : m_sWhat(sWhat) { } 00045 00047 virtual ~Wg_Ex_Base(void) throw() { } 00048 00051 virtual const char* what() const throw() { return stdex::ToMbString(m_sWhat).c_str(); } 00052 00055 virtual const std::wstring& std_what() const throw() { return m_sWhat; } 00056 00057 private: 00058 std::wstring m_sWhat; 00059 }; 00060 00061 00063 class Wg_Ex_SDL : public Wg_Ex_Base 00064 { 00065 public: 00068 Wg_Ex_SDL(const std::wstring& sWhat) : Wg_Ex_Base(sWhat) { } 00069 }; 00070 00071 00073 class Wg_Ex_FreeType : public Wg_Ex_Base 00074 { 00075 public: 00078 Wg_Ex_FreeType(const std::wstring& sWhat) : Wg_Ex_Base(sWhat) { } 00079 }; 00080 00081 00083 class Wg_Ex_App : public Wg_Ex_Base 00084 { 00085 public: 00088 Wg_Ex_App(const std::wstring& sWhat) : Wg_Ex_Base(sWhat) { } 00089 }; 00090 00091 00093 class Wg_Ex_Range : public Wg_Ex_Base 00094 { 00095 public: 00098 Wg_Ex_Range(const std::wstring& sWhat) : Wg_Ex_Base(sWhat) { } 00099 }; 00100 00101 } 00102 00103 #endif // _WG_ERROR_H_ 00104