#define _WX_DEFS_H_
#ifdef __GNUG__
-#pragma interface "defs.h"
+ #pragma interface "defs.h"
#endif
-#include <stddef.h>
-
-#include "wx/setup.h"
-
-#ifdef PACKAGE
- #undef PACKAGE
-#endif
-#ifdef VERSION
- #undef VERSION
-#endif
-
-#include "wx/version.h"
-
// ----------------------------------------------------------------------------
// compiler and OS identification
// ----------------------------------------------------------------------------
defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) || \
defined(__EMX__)
- #ifndef __UNIX__
- #define __UNIX__
- #endif // Unix
+ #define __UNIX_LIKE__
// Helps SGI compilation, apparently
#ifdef __SGI__
#ifndef __WXPM__
#define __WXPM__
#endif
+
// Place other OS/2 compiler environment defines here
+ #define LINKAGEMODE _Optlink
#else // Windows
#ifndef __WINDOWS__
#define __WINDOWS__
#endif // compiler
#endif // OS
+// LINKAGEMODE mode is empty for everyting except OS/2
+#ifndef LINKAGEMODE
+ #define LINKAGEMODE
+#endif // LINKAGEMODE
+
// 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__
#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)
+#if defined(__MINGW32__) && ((__GNUC__>2) ||((__GNUC__==2) && (__GNUC_MINOR__>=95)))
+# define wxUSE_NORLANDER_HEADERS 1
+#endif
+
+
//////////////////////////////////////////////////////////////////////////////////
// Currently Only MS-Windows/NT, XView and Motif are supported
//
#error "No Target! Use -D[__WXMOTIF__|__WXGTK__|__WXMSW__|__WXMAC__|__WXQT__|__WXPM__|__WXSTUBS__]"
#endif
+// ----------------------------------------------------------------------------
+// wxWindows options
+// ----------------------------------------------------------------------------
+
+#include <stddef.h>
+
+#include "wx/setup.h"
+
+// just in case they were defined in setup.h
+#undef PACKAGE
+#undef VERSION
+
+// if we're on a Unixsystem but didn't use configure (so that setup.h didn't
+// define __UNIX__), do define __UNIX__ now
+#if !defined(__UNIX__) && defined(__UNIX_LIKE__)
+ #define __UNIX__
+#endif // Unix
+
+#include "wx/version.h"
+
// ============================================================================
// non portable C++ features
// ============================================================================
// (under Unix, configure tests for this)
#ifndef HAVE_BOOL
#if defined( __MWERKS__ )
- #if (__MWERKS__ >= 0x1000) && !__option(bool)
+ #if (__MWERKS__ >= 0x1000) && __option(bool)
#define HAVE_BOOL
#endif
#elif defined(__VISUALC__) && (__VISUALC__ == 1020)
wxMOTIF_X, // OSF Motif 1.x.x
wxCOSE_X, // OSF Common Desktop Environment
wxNEXTSTEP, // NeXTStep
- wxMACINTOSH, // Apple System 7
+ wxMACINTOSH, // Apple System 7 and 8
+ wxBEOS, // BeOS
wxGTK, // GTK on X
wxGTK_WIN32, // GTK on Win32
wxGTK_OS2, // GTK on OS/2
#define wxINT32_SWAP_ON_BE(val) (val)
#endif
+// ----------------------------------------------------------------------------
+// Geometric flags
+// ----------------------------------------------------------------------------
+
+enum wxGeometryCentre
+{
+ wxCENTRE = 0x0001,
+ wxCENTER = wxCENTRE
+};
+
+// centering into frame rather than screen (obsolete)
+#define wxCENTER_FRAME 0x0000
+// centre on screen rather than parent
+#define wxCENTRE_ON_SCREEN 0x0002
+#define wxCENTER_ON_SCREEN wxCENTRE_ON_SCREEN
+
+enum wxOrientation
+{
+ wxHORIZONTAL = 0x0004,
+ wxVERTICAL = 0x0008,
+
+ wxBOTH = (wxVERTICAL | wxHORIZONTAL)
+};
+
+enum wxDirection
+{
+ wxLEFT = 0x0010,
+ wxRIGHT = 0x0020,
+ wxUP = 0x0040,
+ wxDOWN = 0x0080,
+
+ wxTOP = wxUP,
+ wxBOTTOM = wxDOWN,
+
+ wxNORTH = wxUP,
+ wxSOUTH = wxDOWN,
+ wxWEST = wxLEFT,
+ wxEAST = wxRIGHT,
+
+ wxALL = (wxUP | wxDOWN | wxRIGHT | wxLEFT)
+};
+
+enum wxAlignment
+{
+ wxALIGN_NOT = 0x0000,
+ wxALIGN_CENTER = 0x0100,
+ wxALIGN_CENTRE = wxALIGN_CENTER,
+ wxALIGN_LEFT = wxALIGN_NOT,
+ wxALIGN_TOP = wxALIGN_NOT,
+ wxALIGN_RIGHT = 0x0200,
+ wxALIGN_BOTTOM = 0x0400
+};
+
+enum wxStretch
+{
+ wxSTRETCH_NOT = 0x0000,
+ wxSHRINK = 0x1000,
+ wxGROW = 0x2000,
+ wxEXPAND = wxGROW
+};
+
// ----------------------------------------------------------------------------
// Window style flags
// ----------------------------------------------------------------------------
* Apply to all panel items
*/
#define wxCOLOURED 0x0800
-// Alignment for panel item labels: replaces characters with zeros
-// when creating label, so spaces can be included in string for alignment.
#define wxFIXED_LENGTH 0x0400
-#define wxALIGN_LEFT 0x0000
-#define wxALIGN_CENTER 0x0100
-#define wxALIGN_CENTRE 0x0100
-#define wxALIGN_RIGHT 0x0200
/*
* Styles for wxListBox
// 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
#define wxPD_ESTIMATED_TIME 0x0010
#define wxPD_REMAINING_TIME 0x0020
+/*
+ * wxHtmlWindow flags
+ */
+#define wxHW_SCROLLBAR_NEVER 0x0002
+#define wxHW_SCROLLBAR_AUTO 0x0004
+
/*
* extended dialog specifiers. these values are stored in a different
* flag and thus do not overlap with other style flags. note that these
* values do not correspond to the return values of the dialogs (for
* those values, look at the wxID_XXX defines).
*/
-#define wxOK 0x00000001
-#define wxYES_NO 0x00000002
-#define wxCANCEL 0x00000004
-#define wxYES 0x00000008
-#define wxNO 0x00000010
-#define wxNO_DEFAULT 0x00000020
+
+// wxCENTRE already defined as 0x00000001
+#define wxOK 0x00000004
+#define wxYES_NO 0x00000008
+#define wxCANCEL 0x00000010
+#define wxYES 0x00000020
+#define wxNO 0x00000040
+#define wxNO_DEFAULT 0x00000080
#define wxYES_DEFAULT 0x00000000 // has no effect
-#define wxICON_EXCLAMATION 0x00000040
-#define wxICON_HAND 0x00000080
+#define wxICON_EXCLAMATION 0x00000100
+#define wxICON_HAND 0x00000200
#define wxICON_WARNING wxICON_EXCLAMATION
#define wxICON_ERROR wxICON_HAND
-#define wxICON_QUESTION 0x00000100
-#define wxICON_INFORMATION 0x00000200
+#define wxICON_QUESTION 0x00000400
+#define wxICON_INFORMATION 0x00000800
#define wxICON_STOP wxICON_HAND
#define wxICON_ASTERISK wxICON_INFORMATION
-#define wxICON_MASK (0x00000040|0x00000080|0x00000100|0x00000200)
+#define wxICON_MASK (0x00000100|0x00000200|0x00000400|0x00000800)
-#define wxCENTRE 0x00000400
-#define wxCENTER wxCENTRE
-
-#define wxFORWARD 0x00000800
-#define wxBACKWARD 0x00001000
-#define wxRESET 0x00002000
-#define wxHELP 0x00004000
-#define wxMORE 0x00008000
-#define wxSETUP 0x00010000
+#define wxFORWARD 0x00001000
+#define wxBACKWARD 0x00002000
+#define wxRESET 0x00004000
+#define wxHELP 0x00008000
+#define wxMORE 0x00010000
+#define wxSETUP 0x00020000
// ----------------------------------------------------------------------------
// standard IDs
#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
-// ----------------------------------------------------------------------------
-// Orientations and directions
-// ----------------------------------------------------------------------------
-
-enum wxOrientation
-{
- wxHORIZONTAL = 0x0001,
- wxVERTICAL = 0x0002,
- wxBOTH = (wxVERTICAL | wxHORIZONTAL)
-};
-
-enum wxDirection
-{
- wxLEFT = 0x0010,
- wxRIGHT = 0x0020,
- wxUP = 0x0040,
- wxDOWN = 0x0080
-};
-
-// wxCENTRE = 0x0400 (defined above)
-
-// centering into frame rather than screen (obsolete)
-#define wxCENTER_FRAME 0x0000
-// centre on screen rather than parent
-#define wxCENTRE_ON_SCREEN 0x0004
-#define wxCENTER_ON_SCREEN wxCENTRE_ON_SCREEN
-
// ----------------------------------------------------------------------------
// Possible SetSize flags
// ----------------------------------------------------------------------------
typedef void * WXMEASUREITEMSTRUCT;
typedef void * WXLPCREATESTRUCT;
+#if defined(__WXPM__)
+typedef unsigned long WXMPARAM;
+typedef unsigned long WXMSGID;
+typedef void* WXRESULT;
+typedef int (*WXFARPROC)();
+// some windows handles not defined by PM
+typedef unsigned long HANDLE;
+typedef unsigned long HICON;
+typedef unsigned long HFONT;
+typedef unsigned long HMENU;
+typedef unsigned long HPEN;
+typedef unsigned long HBRUSH;
+typedef unsigned long HPALETTE;
+typedef unsigned long HCURSOR;
+typedef unsigned long HINSTANCE;
+typedef unsigned long HIMAGELIST;
+typedef unsigned long HGLOBAL;
+typedef unsigned long DWORD;
+typedef unsigned short WORD;
+#endif
+
#if defined(__GNUWIN32__) || defined(__WXWINE__)
typedef int (*WXFARPROC)();
#elif defined(__WIN32__)