/**
-* 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
/* general, but there are places where you can use them to advantage */
/* without totally breaking ports that cannot use them. If you do, then */
/* wrap it in this guard, but such cases should still be relatively rare. */
-#ifndef __WIN16__
- #define wxUSE_NESTED_CLASSES 1
-#else
- #define wxUSE_NESTED_CLASSES 0
-#endif
+#define wxUSE_NESTED_CLASSES 1
/* check for explicit keyword support */
#ifndef HAVE_EXPLICIT
#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?) */
/* to ensure compatibility with 2.0, we must use long */
#define wxCoord long
#else /* !wxUSE_COMPATIBLE_COORD_TYPES */
- #ifdef __WIN16__
- /* under Win16, int is too small, so use long to allow for bigger */
- /* virtual canvases */
- typedef long wxCoord;
- #else /* !Win16 */
/* other platforms we support have at least 32bit int - quite enough */
typedef int wxCoord;
- #endif /* Win16/!Win16 */
#endif /* wxUSE_COMPATIBLE_COORD_TYPES/!wxUSE_COMPATIBLE_COORD_TYPES */
#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")
wxGROW = 0x2000,
wxEXPAND = wxGROW,
wxSHAPED = 0x4000,
- wxADJUST_MINSIZE = 0x8000,
- wxTILE = 0xc000
+ wxFIXED_MINSIZE = 0x8000,
+ wxTILE = 0xc000,
+
+ // for compatibility only, default now, don't use explicitly any more
+ wxADJUST_MINSIZE = 0x0000
};
/* border flags: the values are chosen for backwards compatibility */
#define wxFRAME_EX_CONTEXTHELP 0x00000004
#define wxDIALOG_EX_CONTEXTHELP 0x00000004
-/*
- * wxFrame/wxDialog style flags
- */
-#define wxSTAY_ON_TOP 0x8000
-#define wxICONIZE 0x4000
-#define wxMINIMIZE wxICONIZE
-#define wxMAXIMIZE 0x2000
-#define wxCLOSE_BOX 0x1000
-
-#define wxSYSTEM_MENU 0x0800
-#define wxMINIMIZE_BOX 0x0400
-#define wxMAXIMIZE_BOX 0x0200
-#define wxTINY_CAPTION_HORIZ 0x0100
-#define wxTINY_CAPTION_VERT 0x0080
-#define wxRESIZE_BORDER 0x0040
-
-#define wxDIALOG_NO_PARENT 0x0001 /* Don't make owned by apps top window */
-#define wxFRAME_NO_TASKBAR 0x0002 /* No taskbar button (MSW only) */
-#define wxFRAME_TOOL_WINDOW 0x0004 /* No taskbar button, no system menu */
-#define wxFRAME_FLOAT_ON_PARENT 0x0008 /* Always above its parent */
-#define wxFRAME_SHAPED 0x0010 /* Create a window that is able to be shaped */
-
-/* deprecated versions defined for compatibility reasons */
-#define wxRESIZE_BOX wxMAXIMIZE_BOX
-#define wxTHICK_FRAME wxRESIZE_BORDER
-
-/* obsolete styles, unused any more */
-#define wxDIALOG_MODAL 0x0020 /* free flag value 0x0020 */
-#define wxDIALOG_MODELESS 0
-#define wxNO_3D 0
-#define wxUSER_COLOURS 0
-
-
/*
* MDI parent frame style flags
* Can overlap with some of the above.
#define wxFRAME_NO_WINDOW_MENU 0x0100
-#define wxDEFAULT_FRAME_STYLE \
- (wxSYSTEM_MENU | wxRESIZE_BORDER | \
- wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxCLOSE_BOX | \
- wxCAPTION | wxCLIP_CHILDREN)
-
-#define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX)
-
/*
* wxExtDialog style flags
*/
#ifdef __WXMAC__
+#define WX_OPAQUE_TYPE( name ) struct wxOpaque##name
+
typedef unsigned char WXCOLORREF[6];
typedef void* WXHBITMAP;
typedef void* WXHMETAFILE;
typedef unsigned long WXDWORD;
typedef unsigned short WXWORD;
-typedef void* WXWidget;
-typedef void* WXWindow;
+
+//typedef void* WXWidget;
+//typedef void* WXWindow;
+typedef WX_OPAQUE_TYPE(ControlRef ) * WXWidget ;
+typedef WX_OPAQUE_TYPE(WindowRef) * WXWindow ;
typedef void* WXDisplay;
/* typedef WindowPtr WXHWND; */
typedef WX_NSView WXWidget; /* wxWindows BASE definition */
#endif /* __WXCOCOA__ */
-#if defined(__WXMSW__) || defined(__WXPM__)
+#ifdef __WXMSW__
/* the keywords needed for WinMain() declaration */
-#ifdef __WIN16__
-# ifdef __VISUALC__
-# define WXFAR __far
-# else
-# define WXFAR _far
-# endif
-#else /* Win32 */
-# ifndef WXFAR
+#ifndef WXFAR
# define WXFAR
-# endif
-#endif /* Win16/32 */
+#endif
-/* Stand-ins for Windows types or OS/2, to avoid #including all of windows.h or os2.h */
+/* Stand-ins for Windows types to avoid #including all of windows.h */
typedef void * WXHWND;
typedef void * WXHANDLE;
typedef void * WXHICON;
typedef WXHWND WXWidget;
-#endif /* MSW or OS2 */
-
-
-#ifdef __WXMSW__
-
#ifdef __WIN64__
typedef unsigned __int64 WXWPARAM;
typedef __int64 WXLPARAM;
#if defined(__WXPM__) || defined(__EMX__)
+#ifdef __WXPM__
+/* Stand-ins for OS/2 types, to avoid #including all of os2.h */
+typedef unsigned long WXHWND;
+typedef unsigned long WXHANDLE;
+typedef unsigned long WXHICON;
+typedef unsigned long WXHFONT;
+typedef unsigned long WXHMENU;
+typedef unsigned long WXHPEN;
+typedef unsigned long WXHBRUSH;
+typedef unsigned long WXHPALETTE;
+typedef unsigned long WXHCURSOR;
+typedef unsigned long WXHRGN;
+typedef unsigned long WXHACCEL;
+typedef unsigned long WXHBITMAP;
+typedef unsigned long WXHDC;
+typedef unsigned int WXUINT;
+typedef unsigned long WXDWORD;
+typedef unsigned short WXWORD;
+
+typedef unsigned long WXCOLORREF;
+typedef void * WXMSG;
+typedef unsigned long WXHTREEITEM;
+
+typedef void * WXDRAWITEMSTRUCT;
+typedef void * WXMEASUREITEMSTRUCT;
+typedef void * WXLPCREATESTRUCT;
+
+typedef WXHWND WXWidget;
+#endif
#ifdef __EMX__
/* Need a well-known type for WXFARPROC
below. MPARAM is typedef'ed too late. */
/* VA 3.0 for some reason needs base data types when typedefing a proc proto??? */
typedef void* (_System *WXFARPROC)(unsigned long, unsigned long, void*, void*);
#else
-#ifdef __EMX__
+#if defined(__EMX__) && !defined(_System)
#define _System
#endif
typedef WXRESULT (_System *WXFARPROC)(WXHWND, WXMSGID, WXWPARAM, WXLPARAM);