MyGUI 3.0.1

MyGUI_Prerequest.h

Go to the documentation of this file.
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__
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines