MyGUI  3.0.1
MyGUI_Prerequest.h
Go to the documentation of this file.
1 
8 /*
9  This file is part of MyGUI.
10 
11  MyGUI is free software: you can redistribute it and/or modify
12  it under the terms of the GNU Lesser General Public License as published by
13  the Free Software Foundation, either version 3 of the License, or
14  (at your option) any later version.
15 
16  MyGUI is distributed in the hope that it will be useful,
17  but WITHOUT ANY WARRANTY; without even the implied warranty of
18  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19  GNU Lesser General Public License for more details.
20 
21  You should have received a copy of the GNU Lesser General Public License
22  along with MyGUI. If not, see <http://www.gnu.org/licenses/>.
23 */
24 
25 #ifndef __MYGUI_PREREQUEST_H__
26 #define __MYGUI_PREREQUEST_H__
27 
28 #include "MyGUI_Platform.h"
29 
30 #if MYGUI_COMPILER == MYGUI_COMPILER_MSVC
31 # ifndef _CRT_SECURE_NO_WARNINGS
32 # define _CRT_SECURE_NO_WARNINGS
33 # endif
34 #endif
35 
36 #define MYGUI_DEFINE_VERSION(major, minor, patch) ((major << 16) | (minor << 8) | patch)
37 
38 #ifndef MYGUI_DONT_REPLACE_NULLPTR
39  #if MYGUI_COMPILER == MYGUI_COMPILER_MSVC
40  #ifndef _MANAGED
41  #define nullptr 0
42  #endif
43  #else
44  #define nullptr 0
45  #endif
46 #endif
47 
48 namespace MyGUI
49 {
50 
51  class Gui;
52  class IWidgetCreator;
53 
54  // managers
55  class LogManager;
56  class InputManager;
57  class SubWidgetManager;
58  class LayerManager;
59  class SkinManager;
60  class WidgetManager;
61  class FontManager;
62  class ControllerManager;
63  class PointerManager;
64  class ClipboardManager;
65  class LayoutManager;
66  class PluginManager;
67  class DynLibManager;
68  class LanguageManager;
69  class ResourceManager;
70  class RenderManager;
71  class FactoryManager;
72  class TextureManager;
73 
74  class IWidgetFactory;
75 
76  class DynLib;
77 
78  namespace factory
79  {
80  template <typename T>
81  class BaseWidgetFactory;
82  }
83 
84  class Widget;
85  class Button;
86  class Window;
87  class List;
88  class HScroll;
89  class VScroll;
90  class Edit;
91  class ComboBox;
92  class StaticText;
93  class Tab;
94  class TabItem;
95  class Progress;
96  class ItemBox;
97  class MultiList;
98  class StaticImage;
99  class Message;
100  class MenuCtrl;
101  class MenuItem;
102  class PopupMenu;
103  class MenuBar;
104  class ScrollView;
105  class DDContainer;
106  class Canvas;
107  class ListCtrl;
108  class ListBox;
109 
110  typedef Widget* WidgetPtr;
111  typedef Button* ButtonPtr;
112  typedef Window* WindowPtr;
113  typedef List* ListPtr;
114  typedef HScroll* HScrollPtr;
115  typedef VScroll* VScrollPtr;
116  typedef Edit* EditPtr;
119  typedef Tab* TabPtr;
120  typedef TabItem* TabItemPtr;
122  typedef ItemBox* ItemBoxPtr;
125  typedef Message* MessagePtr;
129  typedef MenuBar* MenuBarPtr;
132  typedef Canvas* CanvasPtr;
134  typedef ListBox* ListBoxPtr;
135 
136 #ifndef MYGUI_DONT_USE_OBSOLETE
137 
138  typedef TabItem Sheet;
139  typedef TabItem* SheetPtr;
140  typedef Canvas RenderBox;
142 
143 #endif // MYGUI_DONT_USE_OBSOLETE
144 
145  // Define version
146  #define MYGUI_VERSION_MAJOR 3
147  #define MYGUI_VERSION_MINOR 0
148  #define MYGUI_VERSION_PATCH 1
149 
150  #define MYGUI_VERSION MYGUI_DEFINE_VERSION(MYGUI_VERSION_MAJOR, MYGUI_VERSION_MINOR, MYGUI_VERSION_PATCH)
151 
152  // Disable warnings for MSVC compiler
153 #if MYGUI_COMPILER == MYGUI_COMPILER_MSVC
154 
155 // Turn off warnings generated by long std templates
156 // This warns about truncation to 255 characters in debug/browse info
157 # pragma warning (disable : 4786)
158 
159 // Turn off warnings generated by long std templates
160 // This warns about truncation to 255 characters in debug/browse info
161 # pragma warning (disable : 4503)
162 
163 // disable: "conversion from 'double' to 'float', possible loss of data
164 # pragma warning (disable : 4244)
165 
166 // disable: "truncation from 'double' to 'float'
167 # pragma warning (disable : 4305)
168 
169 // disable: "<type> needs to have dll-interface to be used by clients'
170 // Happens on STL member variables which are not public therefore is ok
171 # pragma warning (disable : 4251)
172 
173 // disable: "non dll-interface class used as base for dll-interface class"
174 // Happens when deriving from Singleton because bug in compiler ignores
175 // template export
176 # pragma warning (disable : 4275)
177 
178 // disable: "C++ Exception Specification ignored"
179 // This is because MSVC 6 did not implement all the C++ exception
180 // specifications in the ANSI C++ draft.
181 # pragma warning( disable : 4290 )
182 
183 // disable: "no suitable definition provided for explicit template
184 // instantiation request" Occurs in VC7 for no justifiable reason on all
185 // #includes of Singleton
186 # pragma warning( disable: 4661)
187 
188 #endif
189 
190 } // namespace MyGUI
191 
192 #endif // __MYGUI_PREREQUEST_H__