#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
# 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
// constants
// ----------------------------------------------------------------------------
+// menu and toolbar item kinds
+enum wxItemKind
+{
+ wxITEM_SEPARATOR = -1,
+ wxITEM_NORMAL,
+ wxITEM_CHECK,
+ wxITEM_RADIO,
+ wxITEM_MAX
+};
+
// hit test results
enum wxHitTest
{
wxDF_FILENAME = 15, /* CF_HDROP */
wxDF_LOCALE = 16,
wxDF_PRIVATE = 20,
+ wxDF_HTML = 30, /* Note: does not correspond to CF_ constant */
wxDF_MAX
};
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,