MyGUI 3.0.1
|
00001 00008 /* 00009 This file is part of MyGUI. 00010 00011 MyGUI is free software: you can redistribute it and/or modify 00012 it under the terms of the GNU Lesser General Public License as published by 00013 the Free Software Foundation, either version 3 of the License, or 00014 (at your option) any later version. 00015 00016 MyGUI is distributed in the hope that it will be useful, 00017 but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 GNU Lesser General Public License for more details. 00020 00021 You should have received a copy of the GNU Lesser General Public License 00022 along with MyGUI. If not, see <http://www.gnu.org/licenses/>. 00023 */ 00024 00025 #ifndef __MYGUI_PREREQUEST_H__ 00026 #define __MYGUI_PREREQUEST_H__ 00027 00028 #include "MyGUI_Platform.h" 00029 00030 #if MYGUI_COMPILER == MYGUI_COMPILER_MSVC 00031 # ifndef _CRT_SECURE_NO_WARNINGS 00032 # define _CRT_SECURE_NO_WARNINGS 00033 # endif 00034 #endif 00035 00036 #define MYGUI_DEFINE_VERSION(major, minor, patch) ((major << 16) | (minor << 8) | patch) 00037 00038 #ifndef MYGUI_DONT_REPLACE_NULLPTR 00039 #if MYGUI_COMPILER == MYGUI_COMPILER_MSVC 00040 #ifndef _MANAGED 00041 #define nullptr 0 00042 #endif 00043 #else 00044 #define nullptr 0 00045 #endif 00046 #endif 00047 00048 namespace MyGUI 00049 { 00050 00051 class Gui; 00052 class IWidgetCreator; 00053 00054 // managers 00055 class LogManager; 00056 class InputManager; 00057 class SubWidgetManager; 00058 class LayerManager; 00059 class SkinManager; 00060 class WidgetManager; 00061 class FontManager; 00062 class ControllerManager; 00063 class PointerManager; 00064 class ClipboardManager; 00065 class LayoutManager; 00066 class PluginManager; 00067 class DynLibManager; 00068 class LanguageManager; 00069 class ResourceManager; 00070 class RenderManager; 00071 class FactoryManager; 00072 class TextureManager; 00073 00074 class IWidgetFactory; 00075 00076 class DynLib; 00077 00078 namespace factory 00079 { 00080 template <typename T> 00081 class BaseWidgetFactory; 00082 } 00083 00084 class Widget; 00085 class Button; 00086 class Window; 00087 class List; 00088 class HScroll; 00089 class VScroll; 00090 class Edit; 00091 class ComboBox; 00092 class StaticText; 00093 class Tab; 00094 class TabItem; 00095 class Progress; 00096 class ItemBox; 00097 class MultiList; 00098 class StaticImage; 00099 class Message; 00100 class MenuCtrl; 00101 class MenuItem; 00102 class PopupMenu; 00103 class MenuBar; 00104 class ScrollView; 00105 class DDContainer; 00106 class Canvas; 00107 class ListCtrl; 00108 class ListBox; 00109 00110 typedef Widget* WidgetPtr; 00111 typedef Button* ButtonPtr; 00112 typedef Window* WindowPtr; 00113 typedef List* ListPtr; 00114 typedef HScroll* HScrollPtr; 00115 typedef VScroll* VScrollPtr; 00116 typedef Edit* EditPtr; 00117 typedef ComboBox* ComboBoxPtr; 00118 typedef StaticText* StaticTextPtr; 00119 typedef Tab* TabPtr; 00120 typedef TabItem* TabItemPtr; 00121 typedef Progress* ProgressPtr; 00122 typedef ItemBox* ItemBoxPtr; 00123 typedef MultiList* MultiListPtr; 00124 typedef StaticImage* StaticImagePtr; 00125 typedef Message* MessagePtr; 00126 typedef MenuCtrl* MenuCtrlPtr; 00127 typedef MenuItem* MenuItemPtr; 00128 typedef PopupMenu* PopupMenuPtr; 00129 typedef MenuBar* MenuBarPtr; 00130 typedef ScrollView* ScrollViewPtr; 00131 typedef DDContainer* DDContainerPtr; 00132 typedef Canvas* CanvasPtr; 00133 typedef ListCtrl* ListCtrlPtr; 00134 typedef ListBox* ListBoxPtr; 00135 00136 #ifndef MYGUI_DONT_USE_OBSOLETE 00137 00138 typedef TabItem Sheet; 00139 typedef TabItem* SheetPtr; 00140 typedef Canvas RenderBox; 00141 typedef Canvas* RenderBoxPtr; 00142 00143 #endif // MYGUI_DONT_USE_OBSOLETE 00144 00145 // Define version 00146 #define MYGUI_VERSION_MAJOR 3 00147 #define MYGUI_VERSION_MINOR 0 00148 #define MYGUI_VERSION_PATCH 1 00149 00150 #define MYGUI_VERSION MYGUI_DEFINE_VERSION(MYGUI_VERSION_MAJOR, MYGUI_VERSION_MINOR, MYGUI_VERSION_PATCH) 00151 00152 // Disable warnings for MSVC compiler 00153 #if MYGUI_COMPILER == MYGUI_COMPILER_MSVC 00154 00155 // Turn off warnings generated by long std templates 00156 // This warns about truncation to 255 characters in debug/browse info 00157 # pragma warning (disable : 4786) 00158 00159 // Turn off warnings generated by long std templates 00160 // This warns about truncation to 255 characters in debug/browse info 00161 # pragma warning (disable : 4503) 00162 00163 // disable: "conversion from 'double' to 'float', possible loss of data 00164 # pragma warning (disable : 4244) 00165 00166 // disable: "truncation from 'double' to 'float' 00167 # pragma warning (disable : 4305) 00168 00169 // disable: "<type> needs to have dll-interface to be used by clients' 00170 // Happens on STL member variables which are not public therefore is ok 00171 # pragma warning (disable : 4251) 00172 00173 // disable: "non dll-interface class used as base for dll-interface class" 00174 // Happens when deriving from Singleton because bug in compiler ignores 00175 // template export 00176 # pragma warning (disable : 4275) 00177 00178 // disable: "C++ Exception Specification ignored" 00179 // This is because MSVC 6 did not implement all the C++ exception 00180 // specifications in the ANSI C++ draft. 00181 # pragma warning( disable : 4290 ) 00182 00183 // disable: "no suitable definition provided for explicit template 00184 // instantiation request" Occurs in VC7 for no justifiable reason on all 00185 // #includes of Singleton 00186 # pragma warning( disable: 4661) 00187 00188 #endif 00189 00190 } // namespace MyGUI 00191 00192 #endif // __MYGUI_PREREQUEST_H__