// "old" GNUWIN32 is the one without Norlander's headers: it lacks the standard
// Win32 headers and we define the used stuff ourselves for it in
// wx/msw/gnuwin32/extra.h
-#if defined(__MINGW32__) && !wxUSE_NORLANDER_HEADERS
+#if defined(__GNUWIN32__) && !wxUSE_NORLANDER_HEADERS
#define __GNUWIN32_OLD__
#endif
#define WXUNUSED(identifier) identifier
#endif
+// some arguments are only used in debug mode, but unused in release one
+#ifdef __WXDEBUG__
+ #define WXUNUSED_UNLESS_DEBUG(param) param
+#else
+ #define WXUNUSED_UNLESS_DEBUG(param) WXUNUSED(param)
+#endif
+
// ----------------------------------------------------------------------------
// portable calling conventions macros
// ----------------------------------------------------------------------------
-// wxCALLBACK should be used for the functions which are called back by
-// Windows (such as compare function for wxListCtrl)
-#if defined(__WIN32__)
- #if defined(__MINGW32__) || defined(__GNUWIN32__)
- #define wxCALLBACK __attribute__((stdcall))
+// stdcall is used for all functions called by Windows under Windows
+#ifdef __WINDOWS__
+ #if defined(__GNUWIN32__)
+ #define wxSTDCALL __attribute__((stdcall))
#else
// both VC++ and Borland understand this
- #define wxCALLBACK _stdcall
+ #define wxSTDCALL _stdcall
#endif
+
+#else // Win
+ // no such stupidness under Unix
+ #define wxSTDCALL
+#endif // platform
+
+// wxCALLBACK should be used for the functions which are called back by
+// Windows (such as compare function for wxListCtrl)
+#if defined(__WIN32__)
+ #define wxCALLBACK wxSTDCALL
#else
// no stdcall under Unix nor Win16
#define wxCALLBACK
+
#endif // platform
// callling convention for the qsort(3) callback
# define WXDLLEXPORT_CTORFN
# endif
+#elif defined(__GNUC__)
+
+# ifdef WXMAKINGDLL
+# define WXDLLEXPORT __declspec( dllexport )
+# define WXDLLEXPORT_DATA(type) __declspec( dllexport ) type
+# define WXDLLEXPORT_CTORFN
+# elif defined(WXUSINGDLL)
+# define WXDLLEXPORT __declspec( dllimport )
+# define WXDLLEXPORT_DATA(type) __declspec( dllimport ) type
+# define WXDLLEXPORT_CTORFN
+# else
+# define WXDLLEXPORT
+# define WXDLLEXPORT_DATA(type) type
+# define WXDLLEXPORT_CTORFN
+# endif
+
#elif defined(__WXPM__)
# ifdef WXMAKINGDLL
/*
* wxToolBar style flags
*/
-#define wxTB_3DBUTTONS 0x8000
-#define wxTB_HORIZONTAL 0x0002
-#define wxTB_VERTICAL 0x0004
+#define wxTB_HORIZONTAL wxHORIZONTAL
+#define wxTB_VERTICAL wxVERTICAL
+#define wxTB_3DBUTTONS 0x0010
// Flatbar/Coolbar under Win98/ GTK 1.2
-#define wxTB_FLAT 0x0008
+#define wxTB_FLAT 0x0020
// use native docking under GTK
-#define wxTB_DOCKABLE 0x0010
+#define wxTB_DOCKABLE 0x0040
/*
* wxMenuBar style flags
#define wxHW_SCROLLBAR_NEVER 0x0002
#define wxHW_SCROLLBAR_AUTO 0x0004
+/*
+ * wxCalendarCtrl flags
+ */
+#define wxCAL_SUNDAY_FIRST 0x0000
+#define wxCAL_MONDAY_FIRST 0x0001
+#define wxCAL_SHOW_HOLIDAYS 0x0002
+#define wxCAL_NO_YEAR_CHANGE 0x0004
+#define wxCAL_NO_MONTH_CHANGE 0x000c // no month change => no year change
+
/*
* extended dialog specifiers. these values are stored in a different
* flag and thus do not overlap with other style flags. note that these
#endif
#endif
+// the keywords needed for WinMain() declaration
+#ifdef __WIN16__
+ #ifndef FAR
+ #ifdef __VISUALC__
+ #define FAR __far
+ #else // !VC++
+ #define FAR _far
+ #endif
+ #endif // no FAR
+#endif // Win16/32
+
#endif // MSW
#ifdef __WXMOTIF__
typedef struct _GdkColormap GdkColormap;
typedef struct _GdkFont GdkFont;
typedef struct _GdkGC GdkGC;
-typedef struct _GdkWindow GdkWindow;
-typedef struct _GdkWindow GdkBitmap;
-typedef struct _GdkWindow GdkPixmap;
+#ifdef __WXGTK13__
+ typedef struct _GdkDrawable GdkWindow;
+ typedef struct _GdkDrawable GdkBitmap;
+ typedef struct _GdkDrawable GdkPixmap;
+#else
+ typedef struct _GdkWindow GdkWindow;
+ typedef struct _GdkWindow GdkBitmap;
+ typedef struct _GdkWindow GdkPixmap;
+#endif
typedef struct _GdkCursor GdkCursor;
typedef struct _GdkRegion GdkRegion;
typedef struct _GdkDragContext GdkDragContext;