/**
-* Name: defs.h
-* Purpose: Declarations/definitions common to all wx source files
-* Author: Julian Smart and others
+* Name: defs.h
+* Purpose: Declarations/definitions common to all wx source files
+* Author: Julian Smart and others
* Modified by: Ryan Norton (Converted to C)
-* Created: 01/02/97
-* RCS-ID: $Id$
-* Copyright: (c)
-* Licence: wxWindows licence
+* Created: 01/02/97
+* RCS-ID: $Id$
+* Copyright: (c)
+* Licence: wxWindows licence
*/
/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
#include "wx/platform.h"
-/* RN - only double-check the environment when building in C++
+/* RN - only double-check the environment when building in C++
Shouldn't configure pass the environment to all sub-libs too? */
#ifdef __cplusplus
/* Make sure the environment is set correctly */
/* compiler defects workarounds */
/* ---------------------------------------------------------------------------- */
-#if defined(__VISUALC__) && !defined(WIN32) && !defined(__WXWINCE__)
- /* VC1.5 does not have LPTSTR type */
-#define LPTSTR LPSTR
-#define LPCTSTR LPCSTR
-#elif defined(__BORLANDC__) && !defined(__WIN32__)
-#ifndef LPTSTR
-#define LPTSTR LPSTR
-#endif
-#ifndef LPCTSTR
-#define LPCTSTR LPSTR
-#endif
-#endif
-
-
/*
Digital Unix C++ compiler only defines this symbol for .cxx and .hxx files,
so define it ourselves (newer versions do it for all files, though, and
#endif
#endif /* HAVE_CXX_CASTS */
+#ifdef HAVE_STATIC_CAST
+ #define wx_static_cast(t, x) static_cast<t>(x)
+#else
+ #define wx_static_cast(t, x) ((t)(x))
+#endif
+
#ifdef HAVE_CONST_CAST
- #define wxConstCast(obj, className) const_cast<className *>(obj)
+ #define wx_const_cast(t, x) const_cast<t>(x)
#else
- #define wxConstCast(obj, className) ((className *)(obj))
+ #define wx_const_cast(t, x) ((t)(x))
#endif
+/* for consistency with wxStatic/DynamicCast defined in wx/object.h */
+#define wxConstCast(obj, className) wx_const_cast(className *, obj)
+
#ifndef HAVE_STD_WSTRING
#if defined(__VISUALC__) && (__VISUALC__ >= 1100)
/* VC++ 6.0 and 5.0 have std::wstring (what about earlier versions?) */
#define wxLongLongSuffix l
#define wxLongLongFmtSpec _T("l")
#define wxLongLongIsLong
-#elif (defined(__VISUALC__) && defined(__WIN32__))
+#elif (defined(__VISUALC__) && defined(__WIN32__))
#define wxLongLong_t __int64
#define wxLongLongSuffix i64
#define wxLongLongFmtSpec _T("I64")
#define wxLongLong_t __int64
#define wxLongLongSuffix i64
#define wxLongLongFmtSpec _T("Ld")
-#elif defined(__DIGITALMARS__)
+#elif defined(__DIGITALMARS__)
#define wxLongLong_t __int64
#define wxLongLongSuffix LL
#define wxLongLongFmtSpec _T("ll")