#endif // Unix/!Unix
#endif
+// include the feature test macros
+#include "wx/features.h"
+
// suppress some Visual C++ warnings
#ifdef __VISUALC__
# pragma warning(disable:4201) // nonstandard extension used: nameless struct/union
// check for native bool type and TRUE/FALSE constants
// ----------------------------------------------------------------------------
-// define boolean constants if not done yet
-#ifndef TRUE
- #define TRUE 1
-#endif
-
-#ifndef FALSE
- #define FALSE 0
-#endif
-
// Add more tests here for Windows compilers that already define bool
// (under Unix, configure tests for this)
#ifndef HAVE_BOOL
// NB: of course, this doesn't replace the standard type, because, for
// example, overloading based on bool/int parameter doesn't work and
// so should be avoided in portable programs
-typedef unsigned int bool;
+ typedef unsigned int bool;
#endif // bool
+#ifdef __cplusplus
+ // define boolean constants: don't use true/false here as not all compilers
+ // support them
+ #undef TRUE
+ #undef FALSE
+ #define TRUE ((bool)1)
+ #define FALSE ((bool)0)
+#else // !__cplusplus
+ // the definitions above don't work for C sources
+ #ifndef TRUE
+ #define TRUE 1
+ #endif
+
+ #ifndef FALSE
+ #define FALSE 0
+ #endif
+#endif // C++/!C++
+
typedef short int WXTYPE;
// special care should be taken with this type under Windows where the real
// other feature tests
// ----------------------------------------------------------------------------
- // Every ride down a slippery slope begins with a single step..
- //
- // Yes, using nested classes is indeed against our coding standards in
- // 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.
-
+// Every ride down a slippery slope begins with a single step..
+//
+// Yes, using nested classes is indeed against our coding standards in
+// 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
+ #define wxUSE_NESTED_CLASSES 1
#else
-#define wxUSE_NESTED_CLASSES 0
+ #define wxUSE_NESTED_CLASSES 0
#endif
// ----------------------------------------------------------------------------
#define wxInt8 char signed
#define wxUint8 char unsigned
-#if defined(__WIN16__) || (defined(SIZEOF_INT) && (SIZEOF_INT == 2))
-#define wxInt16 int signed
-#define wxUint16 int unsigned
-#define wxInt32 long signed
-#define wxUint32 long unsigned
-#else
-#define wxInt16 short signed
-#define wxUint16 short unsigned
-#define wxInt32 int signed
-#define wxUint32 int unsigned
-#endif
+#ifdef __WINDOWS__
+ #if defined(__WIN16__)
+ #define wxInt16 int signed
+ #define wxUint16 int unsigned
+ #define wxInt32 long signed
+ #define wxUint32 long unsigned
+ #elif defined(__WIN32__)
+ #define wxInt16 short signed
+ #define wxUint16 short unsigned
+ #define wxInt32 int signed
+ #define wxUint32 int unsigned
+ #else
+ // Win64 will have different type sizes
+ #error "Please define a 32 bit type"
+ #endif
+#else // !Windows
+ // SIZEOF_XXX are defined by configure
+ #if defined(SIZEOF_INT) && (SIZEOF_INT == 4)
+ #define wxInt16 short signed
+ #define wxUint16 short unsigned
+ #define wxInt32 int signed
+ #define wxUint32 int unsigned
+ #elif defined(SIZEOF_INT) && (SIZEOF_INT == 2)
+ #define wxInt16 int signed
+ #define wxUint16 int unsigned
+ #define wxInt32 long signed
+ #define wxUint32 long unsigned
+ #else
+ // assume sizeof(int) == 4 - what else can we do
+ wxCOMPILE_TIME_ASSERT( sizeof(int) == 4, IntMustBeExactly4Bytes);
+
+ #define wxInt16 short signed
+ #define wxUint16 short unsigned
+ #define wxInt32 int signed
+ #define wxUint32 int unsigned
+ #endif
+#endif // Win/!Win
#if defined(SIZEOF_LONG) && (SIZEOF_LONG == 8)
#define wxInt64 long signed
wxMINIMIZE_BOX | wxMAXIMIZE_BOX | \
wxCAPTION | wxCLIP_CHILDREN)
-#if defined(__WXMSW__) || defined(__WXPM__)
+#if defined(__WXMSW__) || defined(__WXPM__) || defined(__WXMGL__)
# define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU | wxCAPTION)
#else
// Under Unix, the dialogs don't have a system menu. Specifying wxSYSTEM_MENU
# define wxEXT_DIALOG_STYLE (wxDEFAULT_DIALOG_STYLE|wxED_CLIENT_MARGIN|wxED_STATIC_LINE)
#endif
-/*
- * wxToolBar style flags
- */
-#define wxTB_HORIZONTAL wxHORIZONTAL
-#define wxTB_VERTICAL wxVERTICAL
-#define wxTB_3DBUTTONS 0x0010
-// Flatbar/Coolbar under Win98/ GTK 1.2
-#define wxTB_FLAT 0x0020
-// use native docking under GTK
-#define wxTB_DOCKABLE 0x0040
-
/*
* wxMenuBar style flags
*/
#define wxTC_OWNERDRAW 0x0040
#define wxTC_MULTILINE wxNB_MULTILINE
+// wxToolBar style flags
+#define wxTB_HORIZONTAL wxHORIZONTAL // == 0x0004
+#define wxTB_VERTICAL wxVERTICAL // == 0x0008
+#define wxTB_3DBUTTONS 0x0010
+#define wxTB_FLAT 0x0020 // supported only under Win98+/GTK
+#define wxTB_DOCKABLE 0x0040 // use native docking under GTK
+#define wxTB_NOICONS 0x0080 // don't show the icons
+#define wxTB_TEXT 0x0100 // show the text
+#define wxTB_NODIVIDER 0x0200 // don't show the divider (Windows)
+#define wxTB_NOALIGN 0x0400 // no automatic alignment (Windows)
+
/*
* wxStatusBar95 flags
*/
// be modal. No progress will then be made at all.
#define wxPD_REMAINING_TIME 0x0040
+/*
+ * wxDirDialog styles
+ */
+
+#define wxDD_NEW_DIR_BUTTON 0x0080
+
/*
* extended dialog specifiers. these values are stored in a different
* flag and thus do not overlap with other style flags. note that these
#define wxID_RETRY 5116
#define wxID_IGNORE 5117
-// IDs used by generic file dialog (11 consecutive starting from this value)
+// System menu IDs (used by wxUniv):
+#define wxID_SYSTEM_MENU 5200
+#define wxID_CLOSE_FRAME 5201
+#define wxID_MOVE_FRAME 5202
+#define wxID_RESIZE_FRAME 5203
+#define wxID_MAXIMIZE_FRAME 5204
+#define wxID_ICONIZE_FRAME 5205
+#define wxID_RESTORE_FRAME 5206
+
+// IDs used by generic file dialog (13 consecutive starting from this value)
#define wxID_FILEDLGG 5900
+
#define wxID_HIGHEST 5999
// ----------------------------------------------------------------------------
// constants
// ----------------------------------------------------------------------------
+// menu and toolbar item kinds
+enum wxItemKind
+{
+ wxITEM_SEPARATOR = -1,
+ wxITEM_NORMAL,
+ wxITEM_CHECK,
+ wxITEM_RADIO,
+ wxITEM_MAX
+};
+
// hit test results
enum wxHitTest
{
WXK_MENU,
WXK_PAUSE,
WXK_CAPITAL,
- WXK_PRIOR, /* Page up */
- WXK_NEXT, /* Page down */
+ WXK_PRIOR, // Page up
+ WXK_NEXT, // Page down
WXK_END,
WXK_HOME,
WXK_LEFT,