// suppress some Visual C++ warnings
#ifdef __VISUALC__
+# pragma warning(disable:4201) // nonstandard extension used: nameless struct/union
# pragma warning(disable:4244) // conversion from double to float
# pragma warning(disable:4100) // unreferenced formal parameter
# pragma warning(disable:4511) // copy ctor couldn't be generated
# pragma warning(disable:4512) // operator=() couldn't be generated
-#ifndef WIN32
+# pragma warning(disable:4699) // Using precompiled header
# pragma warning(disable:4134) // conversion between pointers to members of same class
+#ifndef WIN32
# pragma warning(disable:4135) // conversion between different integral types
# pragma warning(disable:4769) // assignment of near pointer to long integer
+// This one is really annoying, since it occurs for each cast to (HANDLE)...
+# pragma warning(disable:4305) // truncation of long to near ptr
#endif
#endif // __VISUALC__
# pragma suppress 571 // Virtual function hiding
#endif // __SALFORDC__
-#ifdef __VISUALC__
-#ifndef WIN32
-// VC1.5 does not have LPTSTR type
-#define LPTSTR LPSTR
-#define LPCTSTR LPCSTR
-#endif
-#endif
+#if defined(__VISUALC__) && !defined(WIN32)
+ // VC1.5 does not have LPTSTR type
+ #define LPTSTR LPSTR
+ #define LPCTSTR LPCSTR
+#endif // VC++ 1.5
// Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files,
// so define it ourselves
#if defined(__HPUX__) && defined(__GNUG__)
#define va_list __gnuc_va_list
#endif // HP-UX
-
+
// Mingw32 gcc-2.95 uses new windows headers which are more ms-like
// we are setting this define because of the complex check
// using NORLANDER as Cygwin may follow. (header author is Anders Norlander)
// Make sure the environment is set correctly
#if defined(__WXMSW__) && defined(__X__)
#error "Target can't be both X and Windows"
-#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && !defined(__WXPM__) && \
- !defined(__WXMAC__) && !defined(__X__) && !defined(__WXQT__) && !defined(__WXSTUBS__)
+#elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \
+ !defined(__WXPM__) && !defined(__WXMAC__) && !defined(__X__) && \
+ !defined(__WXQT__) && !defined(__WXSTUBS__) && wxUSE_GUI
#error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXPM__|__WXSTUBS__]"
#endif
#include "wx/version.h"
+// ----------------------------------------------------------------------------
+// compatibility defines
+// ----------------------------------------------------------------------------
+
+// possibility to build non GUI apps is new, so don't burden ourselves with
+// compatibility code
+#if !wxUSE_GUI
+ #undef WXWIN_COMPATIBILITY_2
+ #define WXWIN_COMPATIBILITY_2 0
+#endif // !GUI
+
// ============================================================================
// non portable C++ features
// ============================================================================
// check for native bool type and TRUE/FALSE constants
// ----------------------------------------------------------------------------
-#if defined(__WXMOTIF__) || defined(__WXGTK__) || defined(__WXQT__) || defined(__WXPM__) || defined(__WXSTUBS__)
- // Bool is now obsolete, use bool instead
- // typedef int Bool;
+// define boolean constants if not done yet
+#ifndef TRUE
+ #define TRUE 1
+#endif
- #ifndef TRUE
- #define TRUE 1
- #define FALSE 0
- #define Bool_DEFINED
- #endif
-#elif defined(__WXMSW__)
- #ifndef TRUE
- #define TRUE 1
- #define FALSE 0
- #endif
-#endif // TRUE/FALSE
+#ifndef FALSE
+ #define FALSE 0
+#endif
// Add more tests here for Windows compilers that already define bool
// (under Unix, configure tests for this)
#define WXUNUSED(identifier) identifier
#endif
-/*
- * Making or using wxWindows as a Windows DLL
- */
+// ----------------------------------------------------------------------------
+// portable calling conventions macros
+// ----------------------------------------------------------------------------
+
+// wxCALLBACK should be used for the functions which are called back by
+// Windows (such as compare function for wxListCtrl)
+#if defined(__WXMSW__)
+ #if defined(__MINGW32__)
+ #define wxCALLBACK __attribute__((stdcall))
+ #else
+ // both VC++ and Borland understand this
+ #define wxCALLBACK _stdcall
+ #endif
+#else
+ // no stdcall under Unix
+ #define wxCALLBACK
+#endif // platform
+
+// callling convention for the qsort(3) callback
+
+#if defined(__VISUALC__)
+ #define wxCMPFUNC_CONV _cdecl
+#elif defined(__VISAGECPP__)
+ #define wxCMPFUNC_CONV _Optlink
+#else // !Visual C++
+ #define wxCMPFUNC_CONV
+#endif // compiler
+
+// compatibility :-(
+#define CMPFUNC_CONV wxCMPFUNC_CONV
+
+// ----------------------------------------------------------------------------
+// Making or using wxWindows as a Windows DLL
+// ----------------------------------------------------------------------------
#if defined(__WXMSW__)
wxMGL_UNIX, // MGL with direct hardware access
wxMGL_X, // MGL on X
wxMGL_WIN32, // MGL on Win32
- wxMGL_OS2 // MGL on OS/2
+ wxMGL_OS2, // MGL on OS/2
+ wxWINDOWS_OS2 // Native OS/2 PM
};
// ----------------------------------------------------------------------------
{
wxHORIZONTAL = 0x0004,
wxVERTICAL = 0x0008,
-
+
wxBOTH = (wxVERTICAL | wxHORIZONTAL)
};
wxRIGHT = 0x0020,
wxUP = 0x0040,
wxDOWN = 0x0080,
-
+
wxTOP = wxUP,
wxBOTTOM = wxDOWN,
-
+
wxNORTH = wxUP,
wxSOUTH = wxDOWN,
wxWEST = wxLEFT,
wxEAST = wxRIGHT,
-
+
wxALL = (wxUP | wxDOWN | wxRIGHT | wxLEFT)
};
// this style means to use RICHEDIT control and does something only under wxMSW
// and Win32 and is silently ignored under all other platforms
#define wxTE_RICH 0x0080
+#define wxTE_NO_VSCROLL 0x0100
+#define wxTE_AUTO_SCROLL 0x0200
/*
* wxComboBox style flags
#define wxGA_HORIZONTAL wxHORIZONTAL
#define wxGA_VERTICAL wxVERTICAL
// Windows only
-#define wxGA_SMOOTH 0x0008
+#define wxGA_SMOOTH 0x0010
/*
* wxSlider flags
*/
-#define wxSL_HORIZONTAL wxHORIZONTAL
-#define wxSL_VERTICAL wxVERTICAL
+#define wxSL_HORIZONTAL wxHORIZONTAL // 4
+#define wxSL_VERTICAL wxVERTICAL // 8
// The next one is obsolete - use scroll events instead
#define wxSL_NOTIFY_DRAG 0x0000
-#define wxSL_AUTOTICKS 0x0008
+#define wxSL_AUTOTICKS 0x0010
// #define wxSL_MANUALTICKS 0x0010
#define wxSL_LABELS 0x0020
#define wxSL_LEFT 0x0040
* wxNotebook flags
*/
#define wxNB_FIXEDWIDTH 0x0008
+#define wxNB_LEFT 0x0020
+#define wxNB_RIGHT 0x0040
+#define wxNB_BOTTOM 0x0080
/*
* wxStatusBar95 flags
#define wxID_SETUP 5110
#define wxID_RESET 5111
+// IDs used by generic file dialog (11 consecutive starting from this value)
+#define wxID_FILEDLGG 5900
#define wxID_HIGHEST 5999
// ----------------------------------------------------------------------------
typedef unsigned int WXUINT;
typedef unsigned long WXDWORD;
typedef unsigned short WXWORD;
+#ifdef __WXMSW__
typedef unsigned int WXWPARAM;
typedef long WXLPARAM;
+#else
+# define WXWPARAM MPARAM
+# define WXLPARAM MPARAM
+# define RECT RECTL
+# define LOGFONT FATTRS
+#endif
typedef unsigned long WXCOLORREF;
typedef void * WXRGNDATA;
typedef void * WXMSG;