-/**
-* Name: wx/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) Julian Smart
-* Licence: wxWindows licence
-*/
+/*
+ * Name: wx/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) Julian Smart
+ * Licence: wxWindows licence
+ */
/* THIS IS A C FILE, DON'T USE C++ FEATURES (IN PARTICULAR COMMENTS) IN IT */
!defined(__WXCOCOA__) && \
!defined(__X__) && \
!defined(__WXMGL__) && \
+ !defined(__WXDFB__) && \
!defined(__WXX11__) && \
wxUSE_GUI
# ifdef __UNIX__
/* is buggy, and occurs for code that does actually get executed */
# if !defined __WXDEBUG__ && __VISUALC__ <= 1100
# pragma warning(disable:4702) /* unreachable code */
+# endif
+ /* The VC++ 5.0 warning 'C4003: not enough actual parameters for macro'
+ * is incompatible with the wxWidgets headers since it is given when
+ * parameters are empty but not missing. */
+# if __VISUALC__ <= 1100
+# pragma warning(disable:4003) /* not enough actual parameters for macro */
# endif
/*
/* size of statically declared array */
#define WXSIZEOF(array) (sizeof(array)/sizeof(array[0]))
-/* helper macros to concatenate two tokens together */
-#define wxCONCAT_HELPER(text, line) text ## line
-#define wxCONCAT(text, line) wxCONCAT_HELPER(text, line)
-
-/* helper macros to be able to define unique/anonymous objects: this works by */
-/* appending the current line number to the given identifier to reduce the */
-/* probability of the conflict (it may still happen if this is used in the */
-/* headers, hence you should avoid doing it or provide unique prefixes then) */
-#if defined(__VISUALC__) && (__VISUALC__ >= 1300)
- /*
- __LINE__ handling is completely broken in VC++ when using "Edit and
- Continue" (/ZI option) and results in preprocessor errors if we use it
- inside the macros. Luckily VC7 has another standard macro which can be
- used like this and is even better than __LINE__ because it is globally
- unique.
- */
-# define wxCONCAT_LINE(text) wxCONCAT(text, __COUNTER__)
-#else /* normal compilers */
-# define wxCONCAT_LINE(text) wxCONCAT(text, __LINE__)
-#endif
-#define wxMAKE_UNIQUE_NAME(text) wxCONCAT_LINE(text)
-
/* symbolic constant used by all Find()-like functions returning positive */
/* integer on success as failure indicator */
#define wxNOT_FOUND (-1)
#define WXUNUSED_IN_WINCE(param) param
#endif
+/* unused parameters in non stream builds */
+#if wxUSE_STREAMS
+ #define WXUNUSED_UNLESS_STREAMS(param) param
+#else
+ #define WXUNUSED_UNLESS_STREAMS(param) WXUNUSED(param)
+#endif
+
/* some compilers give warning about a possibly unused variable if it is */
/* initialized in both branches of if/else and shut up if it is initialized */
/* when declared, but other compilers then give warnings about unused variable */
# endif
#endif
-/* ---------------------------------------------------------------------------- */
-/* OS mnemonics -- Identify the running OS (useful for Windows) */
-/* ---------------------------------------------------------------------------- */
-
-/* Not all platforms are currently available or supported */
-enum
-{
- wxUNKNOWN_PLATFORM,
- wxCURSES, /* Text-only CURSES */
- wxXVIEW_X, /* Sun's XView OpenLOOK toolkit */
- wxMOTIF_X, /* OSF Motif 1.x.x */
- wxCOSE_X, /* OSF Common Desktop Environment */
- wxNEXTSTEP, /* NeXTStep */
- wxMAC, /* Apple Mac OS 8/9/X with Mac paths */
- wxMAC_DARWIN, /* Apple Mac OS X with Unix paths */
- wxBEOS, /* BeOS */
- wxGTK, /* GTK on X */
- wxGTK_WIN32, /* GTK on Win32 */
- wxGTK_OS2, /* GTK on OS/2 */
- wxGTK_BEOS, /* GTK on BeOS */
- wxGEOS, /* GEOS */
- wxOS2_PM, /* OS/2 Workplace */
- wxWINDOWS, /* Windows or WfW */
- wxMICROWINDOWS, /* MicroWindows */
- wxPENWINDOWS, /* Windows for Pen Computing */
- wxWINDOWS_NT, /* Windows NT */
- wxWIN32S, /* Windows 32S API */
- wxWIN95, /* Windows 95 */
- wxWIN386, /* Watcom 32-bit supervisor modus */
- wxWINDOWS_CE, /* Windows CE (generic) */
- wxWINDOWS_POCKETPC, /* Windows CE PocketPC */
- wxWINDOWS_SMARTPHONE, /* Windows CE Smartphone */
- wxMGL_UNIX, /* MGL with direct hardware access */
- wxMGL_X, /* MGL on X */
- wxMGL_WIN32, /* MGL on Win32 */
- wxMGL_OS2, /* MGL on OS/2 */
- wxMGL_DOS, /* MGL on MS-DOS */
- wxWINDOWS_OS2, /* Native OS/2 PM */
- wxUNIX, /* wxBase under Unix */
- wxX11, /* Plain X11 and Universal widgets */
- wxPALMOS, /* PalmOS */
- wxDOS /* wxBase under MS-DOS */
-};
-
-/* Friendlier platform names */
-enum
-{
- wxMotif = wxMOTIF_X,
- wxMac = wxMAC,
- wxMSW = wxWINDOWS,
- wxWinCE = wxWINDOWS_CE,
- wxWinPocketPC = wxWINDOWS_POCKETPC,
- wxWinSmartPhone = wxWINDOWS_SMARTPHONE,
- wxWin95= wxWIN95,
- wxUnix = wxUNIX, /* wxBase under Unix */
- wxPalmOS = wxPALMOS, /* PalmOS */
- wxOS2 = wxOS2_PM,
-
- wxMGL = 100,
- wxCocoa
-};
-
/* ---------------------------------------------------------------------------- */
/* standard wxWidgets types */
/* ---------------------------------------------------------------------------- */
/* window is resized (currently, makes sense for wxMSW only) */
#define wxNO_FULL_REPAINT_ON_RESIZE 0
+/* A mask which can be used to filter (out) all wxWindow-specific styles.
+ */
+#define wxWINDOW_STYLE_MASK \
+ (wxVSCROLL|wxHSCROLL|wxBORDER_MASK|wxALWAYS_SHOW_SB|wxCLIP_CHILDREN| \
+ wxCLIP_SIBLINGS|wxTRANSPARENT_WINDOW|wxTAB_TRAVERSAL|wxWANTS_CHARS| \
+ wxRETAINED|wxPOPUP_WINDOW|wxFULL_REPAINT_ON_RESIZE)
+
/*
* Extra window style flags (use wxWS_EX prefix to make it clear that they
* should be passed to wxWindow::SetExtraStyle(), not SetWindowStyle())
/* this window should always process UI update events */
#define wxWS_EX_PROCESS_UI_UPDATES 0x00000020
-/* Use this style to add a context-sensitive help to the window (currently for */
-/* Win32 only and it doesn't work if wxMINIMIZE_BOX or wxMAXIMIZE_BOX are used) */
-#define wxFRAME_EX_CONTEXTHELP 0x00000004
-#define wxDIALOG_EX_CONTEXTHELP 0x00000004
-
/* Draw the window in a metal theme on Mac */
#define wxFRAME_EX_METAL 0x00000040
#define wxDIALOG_EX_METAL 0x00000040
+/* Use this style to add a context-sensitive help to the window (currently for */
+/* Win32 only and it doesn't work if wxMINIMIZE_BOX or wxMAXIMIZE_BOX are used) */
+#define wxWS_EX_CONTEXTHELP 0x00000080
+
+/* synonyms for wxWS_EX_CONTEXTHELP for compatibility */
+#define wxFRAME_EX_CONTEXTHELP wxWS_EX_CONTEXTHELP
+#define wxDIALOG_EX_CONTEXTHELP wxWS_EX_CONTEXTHELP
+
/* Create a window which is attachable to another top level window */
#define wxFRAME_DRAWER 0x0020
#define wxLI_HORIZONTAL wxHORIZONTAL
#define wxLI_VERTICAL wxVERTICAL
-/*
- * wxProgressDialog flags
- */
-#define wxPD_CAN_ABORT 0x0001
-#define wxPD_APP_MODAL 0x0002
-#define wxPD_AUTO_HIDE 0x0004
-#define wxPD_ELAPSED_TIME 0x0008
-#define wxPD_ESTIMATED_TIME 0x0010
-#define wxPD_SMOOTH 0x0020
-#define wxPD_REMAINING_TIME 0x0040
-#define wxPD_CAN_SKIP 0x0080
-
-/*
- * wxDirDialog styles
- */
-
-#define wxDD_NEW_DIR_BUTTON 0x0080
-#define wxDD_CHANGE_DIR 0x0100
-
/*
* extended dialog specifiers. these values are stored in a different
wxID_HELP,
wxID_PRINT,
wxID_PRINT_SETUP,
+ wxID_PAGE_SETUP,
wxID_PREVIEW,
wxID_ABOUT,
wxID_HELP_CONTENTS,
+ wxID_HELP_INDEX,
+ wxID_HELP_SEARCH,
wxID_HELP_COMMANDS,
wxID_HELP_PROCEDURES,
wxID_HELP_CONTEXT,
wxID_CLOSE_ALL,
- wxID_PREFERENCES ,
+ wxID_PREFERENCES,
- wxID_CUT = 5030,
+ wxID_EDIT = 5030,
+ wxID_CUT,
wxID_COPY,
wxID_PASTE,
wxID_CLEAR,
wxID_VIEW_SORTSIZE,
wxID_VIEW_SORTTYPE,
- wxID_FILE1 = 5050,
+ wxID_FILE = 5050,
+ wxID_FILE1,
wxID_FILE2,
wxID_FILE3,
wxID_FILE4,
/* WIN32 graphics types for OS/2 GPI */
/* RGB under OS2 is more like a PALETTEENTRY struct under Windows so we need a real RGB def */
-/* WARNING: The OS/2 headers typedef BYTE simply as 'char'; if the default is signed, all */
-/* hell will break loose! */
-/* #define OS2RGB(r,g,b) ((DWORD ((BYTE) (b) | ((WORD) (g) << 8)) | (((DWORD)(BYTE)(r)) << 16))) */
#define OS2RGB(r,g,b) ((DWORD)((unsigned char)(b) | ((unsigned char)(g) << 8)) | ((unsigned char)(r) << 16))
typedef unsigned long COLORREF;
-#define GetBValue(rgb) ((BYTE)((rgb) >> 16))
-#define GetGValue(rgb) ((BYTE)(((WORD)(rgb)) >> 8))
-#define GetRValue(rgb) ((BYTE)(rgb))
+#define GetRValue(rgb) ((unsigned char)((rgb) >> 16))
+#define GetGValue(rgb) ((unsigned char)(((unsigned short)(rgb)) >> 8))
+#define GetBValue(rgb) ((unsigned char)(rgb))
#define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (DWORD)(WORD)(i)))
#define PALETTERGB(r,g,b) (0x02000000 | OS2RGB(r,g,b))
/* OS2's RGB/RGB2 is backwards from this */
typedef void* WXString;
typedef unsigned long Atom; /* this might fail on a few architectures */
+typedef long WXPixel; /* safety catch in src/motif/colour.cpp */
#endif /* Motif */
typedef struct _GtkItemFactory GtkItemFactory;
typedef struct _GtkSelectionData GtkSelectionData;
typedef struct _GtkTextBuffer GtkTextBuffer;
+typedef struct _GtkRange GtkRange;
typedef GtkWidget *WXWidget;
typedef struct window_t *WXWidget;
#endif /* MGL */
+#ifdef __WXDFB__
+/* DirectFB doesn't have the concept of non-TLW window, so use
+ something arbitrary */
+typedef const void* WXWidget;
+#endif /* DFB */
+
/* This is required because of clashing macros in windows.h, which may be */
/* included before or after wxWidgets classes, and therefore must be */
/* disabled here before any significant wxWidgets headers are included. */