X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/005f5d1878c1d344e79e3c43b2790332dcea68f3..b5a7cdc076ec7a35990b2da37a4b7b81a9cc8f85:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index 7d10857ab5..dbd1be4c13 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -27,7 +27,7 @@ #error "Target can't be both X and Windows" #elif !defined(__WXMOTIF__) && !defined(__WXMSW__) && !defined(__WXGTK__) && \ !defined(__WXPM__) && !defined(__WXMAC__) && !defined(__X__) && \ - !defined(__WXMGL__) && wxUSE_GUI + !defined(__WXMGL__) && !defined(__WXX11__) && wxUSE_GUI #ifdef __UNIX__ #error "No Target! You should use wx-config program for compilation flags!" #else // !Unix @@ -35,6 +35,9 @@ #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 @@ -124,15 +127,6 @@ // 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 @@ -140,6 +134,9 @@ #if (__MWERKS__ >= 0x1000) && __option(bool) #define HAVE_BOOL #endif + #elif defined(__APPLE__) && defined(__APPLE_CC__) + // Apple bundled gcc supports bool + #define HAVE_BOOL #elif defined(__VISUALC__) && (__VISUALC__ == 1020) // in VC++ 4.2 the bool keyword is reserved (hence can't be typedefed) // but not implemented, so we must #define it @@ -174,35 +171,81 @@ // 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 but also redefine TRUE which could have been defined as 1 + // by previous headers: this would be incorrect as our TRUE is supposed to + // be of type bool, just like true, not int + // + // however if the user code absolutely needs TRUE to be defined in its own + // way, it can predefine WX_TRUE_DEFINED to prevent the redefinition here + #ifdef TRUE + #ifndef WX_TRUE_DEFINED + #undef TRUE + #undef FALSE + #endif + #endif + + #ifndef TRUE + #define TRUE ((bool)1) + #define FALSE ((bool)0) + #endif +#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 // window id is unsigned, so we must always do the cast before comparing them // (or else they would be always different!). Usign wxGetWindowId() which does // the cast itself is recommended. Note that this type can't be unsigned -// because -1 is a valid (and largely used) value for window id. +// because wxID_ANY == -1 is a valid (and largely used) value for window id. typedef int wxWindowID; // ---------------------------------------------------------------------------- // 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 +// check for explicit keyword support +#ifndef HAVE_EXPLICIT + // VC++ 6.0 has explicit (what about the earlier versions?) + #if defined(__VISUALC__) && (__VISUALC__ > 1200) + #define HAVE_EXPLICIT + // Metrowerks CW6 or higher has explicit + #elif defined(__MWERKS__) && (__MWERKS__ >= 0x2400) + #define HAVE_EXPLICIT + #endif +#endif // !HAVE_EXPLICIT + +#ifdef HAVE_EXPLICIT + #define wxEXPLICIT explicit +#else // !HAVE_EXPLICIT + #define wxEXPLICIT +#endif // HAVE_EXPLICIT/!HAVE_EXPLICIT + // ---------------------------------------------------------------------------- // portable calling conventions macros // ---------------------------------------------------------------------------- @@ -275,6 +318,11 @@ typedef int wxWindowID; #define WXEXPORT _Export #define WXIMPORT _Export #endif +#elif defined(__WXMAC__) + #ifdef __MWERKS__ + #define WXEXPORT __declspec(export) + #define WXIMPORT __declspec(import) + #endif #endif // for other platforms/compilers we don't anything @@ -396,6 +444,27 @@ class WXDLLEXPORT wxEvent; typedef void (*wxFunction) (wxObject&, wxEvent&); #endif +// Printf-like attribute definitions to obtain warnings with GNU C/C++ +#if defined(__GNUC__) && !wxUSE_UNICODE +# ifndef ATTRIBUTE_PRINTF +# define ATTRIBUTE_PRINTF(m, n) __attribute__ ((__format__ (__printf__, m, n))) +# define ATTRIBUTE_PRINTF_1 ATTRIBUTE_PRINTF(1, 2) +# define ATTRIBUTE_PRINTF_2 ATTRIBUTE_PRINTF(2, 3) +# define ATTRIBUTE_PRINTF_3 ATTRIBUTE_PRINTF(3, 4) +# define ATTRIBUTE_PRINTF_4 ATTRIBUTE_PRINTF(4, 5) +# define ATTRIBUTE_PRINTF_5 ATTRIBUTE_PRINTF(5, 6) +# endif /* ATTRIBUTE_PRINTF */ +#else +# ifndef ATTRIBUTE_PRINTF +# define ATTRIBUTE_PRINTF +# define ATTRIBUTE_PRINTF_1 +# define ATTRIBUTE_PRINTF_2 +# define ATTRIBUTE_PRINTF_3 +# define ATTRIBUTE_PRINTF_4 +# define ATTRIBUTE_PRINTF_5 +# endif /* ATTRIBUTE_PRINTF */ +#endif + // ---------------------------------------------------------------------------- // OS mnemonics -- Identify the running OS (useful for Windows) // ---------------------------------------------------------------------------- @@ -419,6 +488,7 @@ enum 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 @@ -430,7 +500,8 @@ enum wxMGL_OS2, // MGL on OS/2 wxMGL_DOS, // MGL on MS-DOS wxWINDOWS_OS2, // Native OS/2 PM - wxUNIX // wxBase under Unix + wxUNIX, // wxBase under Unix + wxX11 // Plain X11 and Universal widgets }; // ---------------------------------------------------------------------------- @@ -458,17 +529,43 @@ enum #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 @@ -876,7 +973,7 @@ enum wxBorder #define wxICONIZE 0x4000 #define wxMINIMIZE wxICONIZE #define wxMAXIMIZE 0x2000 -// free value: 0x1000 + // free flag value: 0x1000 #define wxSYSTEM_MENU 0x0800 #define wxMINIMIZE_BOX 0x0400 #define wxMAXIMIZE_BOX 0x0200 @@ -887,18 +984,16 @@ enum wxBorder #define wxDIALOG_NO_PARENT 0x0001 // Don't make owned by apps top window #define wxFRAME_NO_TASKBAR 0x0002 // No taskbar button (MSW only) #define wxFRAME_TOOL_WINDOW 0x0004 // No taskbar button, no system menu +#define wxFRAME_FLOAT_ON_PARENT 0x0008 // Always above its parent // deprecated versions defined for compatibility reasons #define wxRESIZE_BOX wxMAXIMIZE_BOX #define wxTHICK_FRAME wxRESIZE_BORDER // obsolete styles, unused any more -#define wxDIALOG_MODAL 0x0020 +#define wxDIALOG_MODAL 0x0020 // free flag value 0x0020 #define wxDIALOG_MODELESS 0x0000 -// deprecated flag, don't use any more, defined for compatibility only -#define wxFRAME_FLOAT_ON_PARENT 0 - /* * MDI parent frame style flags * Can overlap with some of the above. @@ -915,7 +1010,7 @@ enum wxBorder wxMINIMIZE_BOX | wxMAXIMIZE_BOX | \ wxCAPTION | wxCLIP_CHILDREN) -#ifdef __WXMSW__ +#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 @@ -937,17 +1032,6 @@ enum wxBorder # 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 */ @@ -1088,6 +1172,17 @@ enum wxBorder #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 */ @@ -1123,10 +1218,10 @@ enum wxBorder #define wxPD_REMAINING_TIME 0x0040 /* - * wxHtmlWindow flags + * wxDirDialog styles */ -#define wxHW_SCROLLBAR_NEVER 0x0002 -#define wxHW_SCROLLBAR_AUTO 0x0004 + +#define wxDD_NEW_DIR_BUTTON 0x0080 /* * extended dialog specifiers. these values are stored in a different @@ -1166,78 +1261,111 @@ enum wxBorder // standard IDs // ---------------------------------------------------------------------------- +// any id: means that we don't care about the id, whether when installing an +// event handler or when creating a new window +enum +{ + wxID_ANY = -1 +}; + // id for a separator line in the menu (invalid for normal item) -#define wxID_SEPARATOR (-1) +enum +{ + wxID_SEPARATOR = -1 +}; // Standard menu IDs -#define wxID_LOWEST 4999 - -#define wxID_OPEN 5000 -#define wxID_CLOSE 5001 -#define wxID_NEW 5002 -#define wxID_SAVE 5003 -#define wxID_SAVEAS 5004 -#define wxID_REVERT 5005 -#define wxID_EXIT 5006 -#define wxID_UNDO 5007 -#define wxID_REDO 5008 -#define wxID_HELP 5009 -#define wxID_PRINT 5010 -#define wxID_PRINT_SETUP 5011 -#define wxID_PREVIEW 5012 -#define wxID_ABOUT 5013 -#define wxID_HELP_CONTENTS 5014 -#define wxID_HELP_COMMANDS 5015 -#define wxID_HELP_PROCEDURES 5016 -#define wxID_HELP_CONTEXT 5017 -#define wxID_CLOSE_ALL 5018 - -#define wxID_CUT 5030 -#define wxID_COPY 5031 -#define wxID_PASTE 5032 -#define wxID_CLEAR 5033 -#define wxID_FIND 5034 -#define wxID_DUPLICATE 5035 -#define wxID_SELECTALL 5036 - -#define wxID_FILE1 5050 -#define wxID_FILE2 5051 -#define wxID_FILE3 5052 -#define wxID_FILE4 5053 -#define wxID_FILE5 5054 -#define wxID_FILE6 5055 -#define wxID_FILE7 5056 -#define wxID_FILE8 5057 -#define wxID_FILE9 5058 - -// Standard button IDs -#define wxID_OK 5100 -#define wxID_CANCEL 5101 -#define wxID_APPLY 5102 -#define wxID_YES 5103 -#define wxID_NO 5104 -#define wxID_STATIC 5105 -#define wxID_FORWARD 5106 -#define wxID_BACKWARD 5107 -#define wxID_DEFAULT 5108 -#define wxID_MORE 5109 -#define wxID_SETUP 5110 -#define wxID_RESET 5111 -#define wxID_CONTEXT_HELP 5112 -#define wxID_YESTOALL 5113 -#define wxID_NOTOALL 5114 -#define wxID_ABORT 5115 -#define wxID_RETRY 5116 -#define wxID_IGNORE 5117 - -// IDs used by generic file dialog (11 consecutive starting from this value) -#define wxID_FILEDLGG 5900 -#define wxID_HIGHEST 5999 +enum +{ + wxID_LOWEST = 4999, + + wxID_OPEN, + wxID_CLOSE, + wxID_NEW, + wxID_SAVE, + wxID_SAVEAS, + wxID_REVERT, + wxID_EXIT, + wxID_UNDO, + wxID_REDO, + wxID_HELP, + wxID_PRINT, + wxID_PRINT_SETUP, + wxID_PREVIEW, + wxID_ABOUT, + wxID_HELP_CONTENTS, + wxID_HELP_COMMANDS, + wxID_HELP_PROCEDURES, + wxID_HELP_CONTEXT, + wxID_CLOSE_ALL, + + wxID_CUT = 5030, + wxID_COPY, + wxID_PASTE, + wxID_CLEAR, + wxID_FIND, + wxID_DUPLICATE, + wxID_SELECTALL, + + wxID_FILE1 = 5050, + wxID_FILE2, + wxID_FILE3, + wxID_FILE4, + wxID_FILE5, + wxID_FILE6, + wxID_FILE7, + wxID_FILE8, + wxID_FILE9, + + // Standard button IDs + wxID_OK = 5100, + wxID_CANCEL, + wxID_APPLY, + wxID_YES, + wxID_NO, + wxID_STATIC, + wxID_FORWARD, + wxID_BACKWARD, + wxID_DEFAULT, + wxID_MORE, + wxID_SETUP, + wxID_RESET, + wxID_CONTEXT_HELP, + wxID_YESTOALL, + wxID_NOTOALL, + wxID_ABORT, + wxID_RETRY, + wxID_IGNORE, + + // System menu IDs (used by wxUniv): + wxID_SYSTEM_MENU = 5200, + wxID_CLOSE_FRAME, + wxID_MOVE_FRAME, + wxID_RESIZE_FRAME, + wxID_MAXIMIZE_FRAME, + wxID_ICONIZE_FRAME, + wxID_RESTORE_FRAME, + + // IDs used by generic file dialog (13 consecutive starting from this value) + wxID_FILEDLGG = 5900, + + wxID_HIGHEST = 5999 +}; // ---------------------------------------------------------------------------- -// constants +// other constants // ---------------------------------------------------------------------------- +// menu and toolbar item kinds +enum wxItemKind +{ + wxITEM_SEPARATOR = -1, + wxITEM_NORMAL, + wxITEM_CHECK, + wxITEM_RADIO, + wxITEM_MAX +}; + // hit test results enum wxHitTest { @@ -1286,60 +1414,62 @@ enum wxHitTest // GDI descriptions // ---------------------------------------------------------------------------- -enum { -// Text font families - wxDEFAULT = 70, - wxDECORATIVE, - wxROMAN, - wxSCRIPT, - wxSWISS, - wxMODERN, - wxTELETYPE, /* @@@@ */ - -// Proportional or Fixed width fonts (not yet used) - wxVARIABLE = 80, - wxFIXED, - - wxNORMAL = 90, - wxLIGHT, - wxBOLD, -// Also wxNORMAL for normal (non-italic text) - wxITALIC, - wxSLANT, - -// Pen styles - wxSOLID = 100, - wxDOT, - wxLONG_DASH, - wxSHORT_DASH, - wxDOT_DASH, - wxUSER_DASH, - - wxTRANSPARENT, - -// Brush & Pen Stippling. Note that a stippled pen cannot be dashed!! -// Note also that stippling a Pen IS meaningfull, because a Line is - wxSTIPPLE_MASK_OPAQUE, //mask is used for blitting monochrome using text fore and back ground colors - wxSTIPPLE_MASK, //mask is used for masking areas in the stipple bitmap (TO DO) -// drawn with a Pen, and without any Brush -- and it can be stippled. - wxSTIPPLE = 110, - wxBDIAGONAL_HATCH, - wxCROSSDIAG_HATCH, - wxFDIAGONAL_HATCH, - wxCROSS_HATCH, - wxHORIZONTAL_HATCH, - wxVERTICAL_HATCH, -#define IS_HATCH(s) ((s)>=wxBDIAGONAL_HATCH && (s)<=wxVERTICAL_HATCH) - - wxJOIN_BEVEL = 120, - wxJOIN_MITER, - wxJOIN_ROUND, - - wxCAP_ROUND = 130, - wxCAP_PROJECTING, - wxCAP_BUTT +enum +{ + // Text font families + wxDEFAULT = 70, + wxDECORATIVE, + wxROMAN, + wxSCRIPT, + wxSWISS, + wxMODERN, + wxTELETYPE, /* @@@@ */ + + // Proportional or Fixed width fonts (not yet used) + wxVARIABLE = 80, + wxFIXED, + + wxNORMAL = 90, + wxLIGHT, + wxBOLD, + // Also wxNORMAL for normal (non-italic text) + wxITALIC, + wxSLANT, + + // Pen styles + wxSOLID = 100, + wxDOT, + wxLONG_DASH, + wxSHORT_DASH, + wxDOT_DASH, + wxUSER_DASH, + + wxTRANSPARENT, + + // Brush & Pen Stippling. Note that a stippled pen cannot be dashed!! + // Note also that stippling a Pen IS meaningfull, because a Line is + wxSTIPPLE_MASK_OPAQUE, //mask is used for blitting monochrome using text fore and back ground colors + wxSTIPPLE_MASK, //mask is used for masking areas in the stipple bitmap (TO DO) + // drawn with a Pen, and without any Brush -- and it can be stippled. + wxSTIPPLE = 110, + wxBDIAGONAL_HATCH, + wxCROSSDIAG_HATCH, + wxFDIAGONAL_HATCH, + wxCROSS_HATCH, + wxHORIZONTAL_HATCH, + wxVERTICAL_HATCH, + + wxJOIN_BEVEL = 120, + wxJOIN_MITER, + wxJOIN_ROUND, + + wxCAP_ROUND = 130, + wxCAP_PROJECTING, + wxCAP_BUTT }; +// VZ: why doesn't it start with "wx"? FIXME +#define IS_HATCH(s) ((s)>=wxBDIAGONAL_HATCH && (s)<=wxVERTICAL_HATCH) // Logical ops typedef enum @@ -1362,19 +1492,28 @@ typedef enum wxSET, wxROP_WHITE = wxSET, wxBLIT_WHITENESS = wxSET // 1 } form_ops_t; -/* Flood styles */ -#define wxFLOOD_SURFACE 1 -#define wxFLOOD_BORDER 2 +// Flood styles +enum +{ + wxFLOOD_SURFACE = 1, + wxFLOOD_BORDER +}; -/* Polygon filling mode */ -#define wxODDEVEN_RULE 1 -#define wxWINDING_RULE 2 +// Polygon filling mode +enum +{ + wxODDEVEN_RULE = 1, + wxWINDING_RULE +}; -/* ToolPanel in wxFrame */ -#define wxTOOL_TOP 1 -#define wxTOOL_BOTTOM 2 -#define wxTOOL_LEFT 3 -#define wxTOOL_RIGHT 4 +// ToolPanel in wxFrame (VZ: unused?) +enum +{ + wxTOOL_TOP = 1, + wxTOOL_BOTTOM, + wxTOOL_LEFT, + wxTOOL_RIGHT +}; // the values of the format constants should be the same as correspondign // CF_XXX constants in Windows API @@ -1398,138 +1537,141 @@ enum wxDataFormatId wxDF_FILENAME = 15, /* CF_HDROP */ wxDF_LOCALE = 16, wxDF_PRIVATE = 20, + wxDF_HTML = 30, /* Note: does not correspond to CF_ constant */ wxDF_MAX }; -/* Virtual keycodes */ - +// Virtual keycodes enum wxKeyCode { - WXK_BACK = 8, - WXK_TAB = 9, - WXK_RETURN = 13, - WXK_ESCAPE = 27, - WXK_SPACE = 32, - WXK_DELETE = 127, - - WXK_START = 300, - WXK_LBUTTON, - WXK_RBUTTON, - WXK_CANCEL, - WXK_MBUTTON, - WXK_CLEAR, - WXK_SHIFT, - WXK_ALT, - WXK_CONTROL, - WXK_MENU, - WXK_PAUSE, - WXK_CAPITAL, - WXK_PRIOR, /* Page up */ - WXK_NEXT, /* Page down */ - WXK_END, - WXK_HOME, - WXK_LEFT, - WXK_UP, - WXK_RIGHT, - WXK_DOWN, - WXK_SELECT, - WXK_PRINT, - WXK_EXECUTE, - WXK_SNAPSHOT, - WXK_INSERT, - WXK_HELP, - WXK_NUMPAD0, - WXK_NUMPAD1, - WXK_NUMPAD2, - WXK_NUMPAD3, - WXK_NUMPAD4, - WXK_NUMPAD5, - WXK_NUMPAD6, - WXK_NUMPAD7, - WXK_NUMPAD8, - WXK_NUMPAD9, - WXK_MULTIPLY, - WXK_ADD, - WXK_SEPARATOR, - WXK_SUBTRACT, - WXK_DECIMAL, - WXK_DIVIDE, - WXK_F1, - WXK_F2, - WXK_F3, - WXK_F4, - WXK_F5, - WXK_F6, - WXK_F7, - WXK_F8, - WXK_F9, - WXK_F10, - WXK_F11, - WXK_F12, - WXK_F13, - WXK_F14, - WXK_F15, - WXK_F16, - WXK_F17, - WXK_F18, - WXK_F19, - WXK_F20, - WXK_F21, - WXK_F22, - WXK_F23, - WXK_F24, - WXK_NUMLOCK, - WXK_SCROLL, - WXK_PAGEUP, - WXK_PAGEDOWN, - - WXK_NUMPAD_SPACE, - WXK_NUMPAD_TAB, - WXK_NUMPAD_ENTER, - WXK_NUMPAD_F1, - WXK_NUMPAD_F2, - WXK_NUMPAD_F3, - WXK_NUMPAD_F4, - WXK_NUMPAD_HOME, - WXK_NUMPAD_LEFT, - WXK_NUMPAD_UP, - WXK_NUMPAD_RIGHT, - WXK_NUMPAD_DOWN, - WXK_NUMPAD_PRIOR, - WXK_NUMPAD_PAGEUP, - WXK_NUMPAD_NEXT, - WXK_NUMPAD_PAGEDOWN, - WXK_NUMPAD_END, - WXK_NUMPAD_BEGIN, - WXK_NUMPAD_INSERT, - WXK_NUMPAD_DELETE, - WXK_NUMPAD_EQUAL, - WXK_NUMPAD_MULTIPLY, - WXK_NUMPAD_ADD, - WXK_NUMPAD_SEPARATOR, - WXK_NUMPAD_SUBTRACT, - WXK_NUMPAD_DECIMAL, - WXK_NUMPAD_DIVIDE + WXK_BACK = 8, + WXK_TAB = 9, + WXK_RETURN = 13, + WXK_ESCAPE = 27, + WXK_SPACE = 32, + WXK_DELETE = 127, + + WXK_START = 300, + WXK_LBUTTON, + WXK_RBUTTON, + WXK_CANCEL, + WXK_MBUTTON, + WXK_CLEAR, + WXK_SHIFT, + WXK_ALT, + WXK_CONTROL, + WXK_MENU, + WXK_PAUSE, + WXK_CAPITAL, + WXK_PRIOR, // Page up + WXK_NEXT, // Page down + WXK_END, + WXK_HOME, + WXK_LEFT, + WXK_UP, + WXK_RIGHT, + WXK_DOWN, + WXK_SELECT, + WXK_PRINT, + WXK_EXECUTE, + WXK_SNAPSHOT, + WXK_INSERT, + WXK_HELP, + WXK_NUMPAD0, + WXK_NUMPAD1, + WXK_NUMPAD2, + WXK_NUMPAD3, + WXK_NUMPAD4, + WXK_NUMPAD5, + WXK_NUMPAD6, + WXK_NUMPAD7, + WXK_NUMPAD8, + WXK_NUMPAD9, + WXK_MULTIPLY, + WXK_ADD, + WXK_SEPARATOR, + WXK_SUBTRACT, + WXK_DECIMAL, + WXK_DIVIDE, + WXK_F1, + WXK_F2, + WXK_F3, + WXK_F4, + WXK_F5, + WXK_F6, + WXK_F7, + WXK_F8, + WXK_F9, + WXK_F10, + WXK_F11, + WXK_F12, + WXK_F13, + WXK_F14, + WXK_F15, + WXK_F16, + WXK_F17, + WXK_F18, + WXK_F19, + WXK_F20, + WXK_F21, + WXK_F22, + WXK_F23, + WXK_F24, + WXK_NUMLOCK, + WXK_SCROLL, + WXK_PAGEUP, + WXK_PAGEDOWN, + + WXK_NUMPAD_SPACE, + WXK_NUMPAD_TAB, + WXK_NUMPAD_ENTER, + WXK_NUMPAD_F1, + WXK_NUMPAD_F2, + WXK_NUMPAD_F3, + WXK_NUMPAD_F4, + WXK_NUMPAD_HOME, + WXK_NUMPAD_LEFT, + WXK_NUMPAD_UP, + WXK_NUMPAD_RIGHT, + WXK_NUMPAD_DOWN, + WXK_NUMPAD_PRIOR, + WXK_NUMPAD_PAGEUP, + WXK_NUMPAD_NEXT, + WXK_NUMPAD_PAGEDOWN, + WXK_NUMPAD_END, + WXK_NUMPAD_BEGIN, + WXK_NUMPAD_INSERT, + WXK_NUMPAD_DELETE, + WXK_NUMPAD_EQUAL, + WXK_NUMPAD_MULTIPLY, + WXK_NUMPAD_ADD, + WXK_NUMPAD_SEPARATOR, + WXK_NUMPAD_SUBTRACT, + WXK_NUMPAD_DECIMAL, + WXK_NUMPAD_DIVIDE }; -// Mapping modes (as per Windows) -#define wxMM_TEXT 1 -#define wxMM_LOMETRIC 2 -#define wxMM_HIMETRIC 3 -#define wxMM_LOENGLISH 4 -#define wxMM_HIENGLISH 5 -#define wxMM_TWIPS 6 -#define wxMM_ISOTROPIC 7 -#define wxMM_ANISOTROPIC 8 - -#define wxMM_POINTS 9 -#define wxMM_METRIC 10 +// Mapping modes (same values as used by Windows, don't change) +enum +{ + wxMM_TEXT = 1, + wxMM_LOMETRIC, + wxMM_HIMETRIC, + wxMM_LOENGLISH, + wxMM_HIENGLISH, + wxMM_TWIPS, + wxMM_ISOTROPIC, + wxMM_ANISOTROPIC, + wxMM_POINTS, + wxMM_METRIC +}; /* Shortcut for easier dialog-unit-to-pixel conversion */ #define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt) /* Paper types */ -typedef enum { +typedef enum +{ wxPAPER_NONE, // Use specific dimensions wxPAPER_LETTER, // Letter, 8 1/2 by 11 inches wxPAPER_LEGAL, // Legal, 8 1/2 by 14 inches @@ -1599,7 +1741,7 @@ typedef enum { wxPAPER_A3_TRANSVERSE, // A3 Transverse 297 x 420 mm wxPAPER_A3_EXTRA_TRANSVERSE // A3 Extra Transverse 322 x 445 mm -} wxPaperSize ; +} wxPaperSize; /* Printing orientation */ #ifndef wxPORTRAIT @@ -1610,11 +1752,12 @@ typedef enum { /* Duplex printing modes */ -typedef enum { +enum wxDuplexMode +{ wxDUPLEX_SIMPLEX, // Non-duplex wxDUPLEX_HORIZONTAL, wxDUPLEX_VERTICAL -} wxDuplexMode; +}; /* Print quality. */ @@ -1629,12 +1772,13 @@ typedef int wxPrintQuality; /* Print mode (currently PostScript only) */ -typedef enum { +enum wxPrintMode +{ wxPRINT_MODE_NONE = 0, wxPRINT_MODE_PREVIEW = 1, // Preview in external application wxPRINT_MODE_FILE = 2, // Print to file wxPRINT_MODE_PRINTER = 3 // Send to printer -} wxPrintMode; +}; // ---------------------------------------------------------------------------- // miscellaneous @@ -1646,7 +1790,7 @@ typedef enum { #endif // macro to specify "All Files" on different platforms -#if defined(__WXMSW__) +#if defined(__WXMSW__) || defined(__WXPM__) # define wxALL_FILES_PATTERN "*.*" # define wxALL_FILES gettext_noop("All files (*.*)|*.*") #else @@ -1681,6 +1825,7 @@ typedef unsigned short WXWORD; typedef void* WXWidget ; typedef void* WXWindow ; +typedef void* WXDisplay ; /* typedef WindowPtr WXHWND; typedef Handle WXHANDLE; @@ -1778,8 +1923,15 @@ typedef int (__stdcall *WXFARPROC)(); #if defined(__WXPM__) +#ifdef __EMX__ +/* Need a well-known type for WXFARPROC + below. MPARAM is typedef'ed too late. */ +#define WXWPARAM void * +#define WXLPARAM void * +#else #define WXWPARAM MPARAM #define WXLPARAM MPARAM +#endif #define RECT RECTL #define LOGFONT FATTRS #define LOWORD SHORT1FROMMP @@ -1837,18 +1989,22 @@ typedef struct tagLOGPALETTE // VA 3.0 for some reason needs base data types when typedefing a proc proto??? typedef void* (_System *WXFARPROC)(unsigned long, unsigned long, void*, void*); #else +#ifdef __EMX__ +#define _System +#endif typedef WXRESULT (_System *WXFARPROC)(WXHWND, WXMSGID, WXWPARAM, WXLPARAM); #endif #endif //__WXPM__ -#ifdef __WXMOTIF__ +#if defined(__WXMOTIF__) || defined(__WXX11__) /* Stand-ins for X/Xt/Motif types */ typedef void* WXWindow; typedef void* WXWidget; typedef void* WXAppContext; typedef void* WXColormap; +typedef void* WXColor; typedef void WXDisplay; typedef void WXEvent; typedef void* WXCursor; @@ -1865,6 +2021,7 @@ typedef unsigned long Atom; /* this might fail on a few architectures */ #endif // Motif #ifdef __WXGTK__ + /* Stand-ins for GLIB types */ typedef char gchar; typedef signed char gint8; @@ -1875,24 +2032,28 @@ typedef void* gpointer; typedef struct _GSList GSList; /* Stand-ins for GDK types */ -typedef gulong GdkAtom; typedef struct _GdkColor GdkColor; typedef struct _GdkColormap GdkColormap; typedef struct _GdkFont GdkFont; typedef struct _GdkGC GdkGC; typedef struct _GdkVisual GdkVisual; + #ifdef __WXGTK20__ +typedef struct _GdkAtom *GdkAtom; typedef struct _GdkDrawable GdkWindow; typedef struct _GdkDrawable GdkBitmap; typedef struct _GdkDrawable GdkPixmap; -#else +#else // GTK+ 1.2 +typedef gulong GdkAtom; typedef struct _GdkWindow GdkWindow; typedef struct _GdkWindow GdkBitmap; typedef struct _GdkWindow GdkPixmap; -#endif +#endif // GTK+ 1.2/2.0 + typedef struct _GdkCursor GdkCursor; typedef struct _GdkRegion GdkRegion; typedef struct _GdkDragContext GdkDragContext; + #ifdef HAVE_XIM typedef struct _GdkIC GdkIC; typedef struct _GdkICAttr GdkICAttr; @@ -1923,7 +2084,8 @@ typedef GtkWidget *WXWidget; typedef struct _PangoContext PangoContext; typedef struct _PangoLayout PangoLayout; typedef struct _PangoFontDescription PangoFontDescription; -#endif +#endif // GTK+ 2.0 + #endif // GTK #ifdef __WXMGL__