]> git.saurik.com Git - wxWidgets.git/blame - include/wx/msw/setup.h
code using ms_PaintDC changed a little (a couple of asserts added, the behaviour
[wxWidgets.git] / include / wx / msw / setup.h
CommitLineData
2bda0e17
KB
1/////////////////////////////////////////////////////////////////////////////
2// Name: setup.h
3// Purpose: Configuration for the library
4// Author: Julian Smart
5// Modified by:
6// Created: 01/02/97
7// RCS-ID: $Id$
8// Copyright: (c) Julian Smart and Markus Holzem
9// Licence: wxWindows license
10/////////////////////////////////////////////////////////////////////////////
11
12#ifndef __SETUPH__
13#define __SETUPH__
14
15/*
16 * General features
17 *
18 */
19
6b0eb19f
JS
20#define USE_CONFIG 1
21 // Use wxConfig, with CreateConfig in wxApp
145aa406
JS
22#define __GOODCOMPILER__
23 // gcc can have problems, but Windows compilers
24 // are generally OK.
2bda0e17
KB
25#define WXWIN_COMPATIBILITY 1
26 // Compatibility with 1.66 API.
27 // Level 0: no backward compatibility, all new features
28 // Level 1: wxDC, OnSize (etc.) compatibility, but
29 // some new features such as event tables
30
31#define USE_AUTOTRANS 1
32 // Define wxTString
33#define USE_POSTSCRIPT 1
34 // 0 for no PostScript device context
35#define USE_AFM_FOR_POSTSCRIPT 0
36 // 1 to use font metric files in GetTextExtent
37#define USE_METAFILE 1
38 // 0 for no Metafile and metafile device context
39#define USE_FORM 0
40 // 0 for no wxForm
41#define USE_IPC 1
42 // 0 for no interprocess comms
43// Note: wxHELP uses IPC under X so these are interdependent!
44#define USE_HELP 1
45 // 0 for no help facility
46#define USE_RESOURCES 1
47 // 0 for no wxGetResource/wxWriteResource
48#define USE_CONSTRAINTS 1
49 // 0 for no window layout constraint system
50
51#define USE_TIMEDATE 1
52 // 0 for no wxTime/wxDate classes
53
54#define USE_CLIPBOARD 1
55 // 0 for no clipboard functions
56#define USE_SPLINES 1
57 // 0 for no splines
58#define USE_XFIG_SPLINE_CODE 1
59 // 1 for XFIG spline code, 0 for AIAI spline code.
60// AIAI spline code is slower, but freer of copyright issues.
61
62#define USE_DRAG_AND_DROP 1
63 // 0 for no drag and drop
64
65#define USE_TOOLBAR 1
66 // Define 1 to use toolbar classes
67#define USE_BUTTONBAR 1
68 // Define 1 to use buttonbar classes (enhanced toolbar
69 // for MS Windows)
70#define USE_GAUGE 1
71 // Define 1 to use Microsoft's gauge (Windows)
72 // or Bull's gauge (Motif) library (both in contrib).
73#define USE_COMBOBOX 1
74 // Define 1 to use COMBOXBOX control (Windows)
75 // or FWW's ComboBox widget (Motif).
76#define USE_RADIOBUTTON 1
77 // Define 1 to use radio button control
78
79#define USE_SCROLLBAR 1
80 // Define 1 to compile contributed wxScrollBar class
81#define USE_XPM_IN_X 1
82#define USE_XPM_IN_MSW 0
83 // Define 1 to support the XPM package in wxBitmap,
84 // separated by platform. If 1, you must link in
85 // the XPM library to your applications.
86#define USE_IMAGE_LOADING_IN_X 1
87 // Use dynamic icon/bitmap loading/saving code in utils/image under X.
88 // If this is 1, you will need to link your applications
89 // with image_X.lib. where X is motif, ol, or hp.
90
91#define USE_IMAGE_LOADING_IN_MSW 1
92 // Use dynamic DIB loading/saving code in utils/dib under MSW.
93#define USE_RESOURCE_LOADING_IN_MSW 0
94 // Use dynamic icon/cursor loading/saving code
95 // under MSW.
96#define USE_WX_RESOURCES 1
97 // Use .wxr resource mechanism (requires PrologIO library)
98
99#define USE_GNU_WXSTRING 0
100 // Define 1 to use modified GNU wxString class
101 // from (stefan.hammes@urz.uni-heidelberg.de) in contrib\string
102 // TODO: why does this give an unresolved 'wxRegex::Search'
103 // symbol if 1?
104
105#define HAVE_SOCKET 1
106 // Use WinSock if 1
107#define USE_DOC_VIEW_ARCHITECTURE 1
108 // Set to 0 to disable document/view architecture
109#define USE_PRINTING_ARCHITECTURE 1
110 // Set to 0 to disable print/preview architecture code
111#define USE_POSTSCRIPT_ARCHITECTURE_IN_MSW 1
112 // Set to 0 to disable PostScript print/preview architecture code
113 // under Windows (just use Windows printing).
114#define USE_DYNAMIC_CLASSES 1
115 // If 1, enables provision of run-time type information.
116 // NOW MANDATORY: don't change.
117#define USE_MEMORY_TRACING 1
118 // If 1, enables debugging versions of wxObject::new and
b2aef89b 119 // wxObject::delete *IF* WXDEBUG is also defined.
2bda0e17
KB
120 // WARNING: this code may not work with all architectures, especially
121 // if alignment is an issue.
3e1a3a40 122#define USE_DEBUG_CONTEXT 1
2bda0e17
KB
123 // If 1, enables wxDebugContext, for
124 // writing error messages to file, etc.
b2aef89b 125 // If WXDEBUG is not defined, will still use
2bda0e17
KB
126 // normal memory operators.
127 // It's recommended to set this to 1,
128 // since you may well need to output
129 // an error log in a production
130 // version (or non-debugging beta)
131#define USE_GLOBAL_MEMORY_OPERATORS 1
132 // In debug mode, cause new and delete to be redefined globally.
133 // If this causes problems (e.g. link errors), set this to 0.
134
135#define REMOVE_UNUSED_ARG 1
136 // Set this to 0 if your compiler can't cope
137 // with omission of prototype parameters.
138
139#define USE_C_MAIN 0
140 // Set to 1 to use main.c instead of main.cpp (UNIX only)
141
142#define USE_ODBC 1
143 // Define 1 to use ODBC classes
144
2bda0e17
KB
145#define USE_IOSTREAMH 1
146 // VC++ 4.2 and above allows <iostream> and <iostream.h>
147 // but you can't mix them. Set to 1 for <iostream.h>,
148 // 0 for <iostream>
149
3bd29723
VZ
150#define USE_WXCONFIG 1
151 // if enabled, compiles built-in OS independent wxConfig
152 // class and it's file (any platform) and registry (Win)
153 // based implementations
2bda0e17
KB
154/*
155 * Finer detail
156 *
157 */
158
cf447356
GL
159#define USE_APPLE_IEEE 1
160 // if enabled, the float codec written by Apple
161 // will be used to write, in a portable way,
162 // float on the disk
163
2bda0e17
KB
164/*
165 * Motif and XView
166 *
167 */
168
169#define WX_STANDARD_GRAPHICS 0
170 // If 1, normalizes X drawing code to behave exactly as
171 // as MSW. If 0, is compatible with existing applications.
172 // Some Xlib drawing primitives have non-intuitive behaviour!
173
174#define USE_GADGETS 0
175 // More efficient to use gadgets for some
176 // widgets in Motif. 0 for no gadgets.
177 // Please note: there is no reason to not
178 // use it except if you intend to modify
179 // color of individuals items OR
180 // you need to move panel items interactively
181#define USE_BUTTON_GADGET 0
182 // On JACS's system, gadget buttons
183 // interfere with default button setting.
184#define PIXEL0_DISABLE 0
185 // Define as 1 to disallow allocation
186 // of pixel #0 (wxXOR problem).
187 // JACS - I found this caused problems.
188
189#define MOTIF_MENUBAR_DELETE_FIX 0
190 // On some systems (Ultrix, OSF), deleting a frame
191 // from within a menu callback causes a crash.
192 // Set to 1 to avoid deleting the menubar handle directly,
193 // which seems to cure it.
194#define DEFAULT_FILE_SELECTOR_SIZE 0
195 // Let Motif defines the size of File
196 // Selector Box (if 1), or fix it to
197 // wxFSB_WIDTH x wxFSB_HEIGHT (if 0)
198#define wxFSB_WIDTH 600
199#define wxFSB_HEIGHT 500
200
201#define MOTIF_MANAGE 1
202 // Control default style of Dialogs
203 // 1: use wxMOTIF_RESIZE as default
204 // 0: do not use wxMOTIF_RESIZE as default
205
206
207/*
208 * MS Windows/Windows NT
209 *
210 */
211
212#if defined(__WIN95__)
213#define CTL3D 0
214#else
215#define CTL3D 1
216 // Define 1 to use Microsoft CTL3D library.
217 // See note above about using FAFA and CTL3D.
218#endif
219
220#define USE_COMMON_DIALOGS 1
221 // On rare occasions (e.g. using DJGPP) may want
222 // to omit common dialogs
223 // (e.g. file selector, printer dialog).
224 // Switching this off also switches off
225 // the printing architecture and interactive
226 // wxPrinterDC.
227#define USE_GREY_BACKGROUND 1
228 // If 1, uses grey (gray!) panels
229 // in FAFA and non-FAFA, non-CTL3D modes.
230 // I (JACS) think the controls look better
231 // this way. CTL3D always uses grey panels.
232#define USE_ITSY_BITSY 1
233 // Define 1 to use Microsoft's ItsyBitsy
234 // small title bar library
235#define USE_BITMAP_MESSAGE 1
236 // Define 1 to use bitmap messages.
237#define USE_PORTABLE_FONTS_IN_MSW 0
238 // Define 1 to use new portable font scheme in Windows
239 // (used by default under X)
240#define FONT_SIZE_COMPATIBILITY 0
241 // Define 1 for font size to be backward compatible
242 // to 1.63 and earlier. 1.64 and later define point
243 // sizes to be compatible with Windows.
244#define USE_GENERIC_DIALOGS_IN_MSW 1
245 // Define 1 to use generic dialogs in Windows, even though
246 // they duplicate native common dialog (e.g. wxColourDialog)
247#define USE_PENWINDOWS 0
248 // Set to 1 to use PenWindows
249
565215b2 250#define USE_OWNER_DRAWN 0
2bda0e17
KB
251 // Owner-drawn menus and listboxes
252
253#define USE_NATIVE_STATUSBAR 1
254 // Set to 0 to use cross-platform wxStatusBar
255
256/*
257 * Any platform
258 *
259 */
260
261#define USE_TYPEDEFS 0
262 // Use typedefs not classes for wxPoint
263 // and others, to reduce overhead and avoid
264 // MS C7 memory bug. Bounds checker
265 // complains about deallocating
266 // arrays of wxPoints if wxPoint is a class.
267
268#if (!defined(WIN32) && !defined(__WIN32__)) || defined(__GNUWIN32__) || defined(__BORLANDC__)
269// Can't use OLE drag and drop in Windows 3.1 because we don't know how
270// to implement UUIDs
271// GnuWin32 doesn't have appropriate headers for e.g. IUnknown.
272#undef USE_DRAG_AND_DROP
273#define USE_DRAG_AND_DROP 0
274#endif
275
276// Only WIN32 supports wxStatusBar95
277#if !defined(__WIN32__) && USE_NATIVE_STATUSBAR
278#undef USE_NATIVE_STATUSBAR
279#define USE_NATIVE_STATUSBAR 0
280#endif
281
282// Minimal setup e.g. for compiling small utilities
283#define MINIMAL_WXWINDOWS_SETUP 0
284
285#if MINIMAL_WXWINDOWS_SETUP
286#undef USE_POSTSCRIPT
287# define USE_POSTSCRIPT 0
288#undef USE_PRINTING_ARCHITECTURE
289# define USE_PRINTING_ARCHITECTURE 0
290#undef USE_POSTSCRIPT_ARCHITECTURE_IN_MSW
291# define USE_POSTSCRIPT_ARCHITECTURE_IN_MSW 0
292#undef USE_METAFILE
293# define USE_METAFILE 0
294#undef USE_FORM
295# define USE_FORM 0
296#undef USE_SPLINES
297# define USE_SPLINES 0
298#undef USE_SCROLLBAR
299# define USE_SCROLLBAR 0
300#undef USE_COMBOBOX
301# define USE_COMBOBOX 0
302#undef USE_RADIOBUTTON
303# define USE_RADIOBUTTON 0
304#undef USE_XPM_IN_MSW
305# define USE_XPM_IN_MSW 0
306#undef USE_WX_RESOURCES
307# define USE_WX_RESOURCES 0
308#undef USE_DOC_VIEW_ARCHITECTURE
309# define USE_DOC_VIEW_ARCHITECTURE 0
310#undef USE_GNU_WXSTRING
311# define USE_GNU_WXSTRING 0
312#undef USE_ODBC
313# define USE_ODBC 0
314#undef USE_TIMEDATE
315# define USE_TIMEDATE 0
316#undef CTL3D
317# define CTL3D 0
318#undef USE_ITSY_BITSY
319# define USE_ITSY_BITSY 0
320#undef USE_IMAGE_LOADING_IN_MSW
321# define USE_IMAGE_LOADING_IN_MSW 0
322#undef USE_GAUGE
323# define USE_GAUGE 0
324#undef USE_RESOURCE_LOADING_IN_MSW
325# define USE_RESOURCE_LOADING_IN_MSW 0
326#undef USE_DRAG_AND_DROP
327# define USE_DRAG_AND_DROP 0
328#endif
329
330#endif
331 // __SETUPH__