X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/57493f9f852d91a5750b4a68053a465f421e12be..98216d409fb8f0b95f5bf01e59ae36c2b0a90210:/include/wx/defs.h diff --git a/include/wx/defs.h b/include/wx/defs.h index 086127f369..55deb62757 100644 --- a/include/wx/defs.h +++ b/include/wx/defs.h @@ -28,7 +28,7 @@ // OS #if defined(__unix) || defined(__unix__) || defined(____SVR4____) || \ defined(__LINUX__) || defined(__sgi ) || \ - defined(__hpux) || defined(sun) || defined(__SUN__) + defined(__hpux) || defined(sun) || defined(__SUN__) || defined(_AIX) #ifndef __UNIX__ #define __UNIX__ @@ -81,6 +81,8 @@ #ifdef __VISUALC__ # pragma warning(disable:4244) // conversion from double to float # pragma warning(disable:4100) // unreferenced formal parameter +# pragma warning(disable:4511) // copy ctor couldn't be generated +# pragma warning(disable:4512) // operator=() couldn't be generated #endif // __VISUALC__ // suppress some Salford C++ warnings @@ -185,6 +187,9 @@ #elif defined(__WATCOMC__) && (__WATCOMC__ >= 1100) // Watcom 11+ supports bool #define HAVE_BOOL + #elif defined(__GNUWIN32__) + // Cygwin supports bool + #define HAVE_BOOL #endif // compilers #endif // HAVE_BOOL @@ -197,6 +202,12 @@ typedef unsigned char wxByte; 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. typedef int wxWindowID; // Macro to cut down on compiler warnings. @@ -388,7 +399,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxMINIMIZE wxICONIZE #define wxMAXIMIZE 0x2000 #define wxTHICK_FRAME 0x1000 -#define wxSYSTEM_MENU 0x0800 +#define wxSYSTEM_MENU 0x0800 #define wxMINIMIZE_BOX 0x0400 #define wxMAXIMIZE_BOX 0x0200 #define wxTINY_CAPTION_HORIZ 0x0100 @@ -397,14 +408,24 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxRESIZE_BORDER 0x0040 #define wxDIALOG_MODAL 0x0020 #define wxDIALOG_MODELESS 0x0000 +/* Add for normal Windows frame behaviour */ +#define wxFRAME_FLOAT_ON_PARENT 0x0020 -#define wxDEFAULT_FRAME_STYLE (wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN) #if WXWIN_COMPATIBILITY #define wxDEFAULT_FRAME wxDEFAULT_FRAME_STYLE #endif -#define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME) +#define wxDEFAULT_FRAME_STYLE (wxSYSTEM_MENU|wxRESIZE_BORDER | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxTHICK_FRAME | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN) + +#ifdef __WXMSW__ +# define wxDEFAULT_DIALOG_STYLE (wxSYSTEM_MENU|wxCAPTION|wxTHICK_FRAME) +#else +// Under Unix, the dialogs don't have a system menu. Specifying +// wxSYSTEM_MENU here, will make a close button appear. +# define wxDEFAULT_DIALOG_STYLE (wxCAPTION) +#endif + /* * Subwindow style flags @@ -420,9 +441,9 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxTB_3DBUTTONS 0x8000 #define wxTB_HORIZONTAL 0x0002 #define wxTB_VERTICAL 0x0004 -// Flatbar/Coolbar under Win98 +// Flatbar/Coolbar under Win98/ GTK 1.2 #define wxTB_FLAT 0x0008 -// use native docking +// use native docking under GTK #define wxTB_DOCKABLE 0x0010 /* @@ -498,6 +519,8 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxGA_PROGRESSBAR 0x0004 #define wxGA_HORIZONTAL wxHORIZONTAL #define wxGA_VERTICAL wxVERTICAL +/* Windows only */ +#define wxGA_SMOOTH 0x0008 /* * wxSlider flags @@ -523,7 +546,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); #define wxSB_VERTICAL wxVERTICAL /* - * wxButton flags + * wxButton flags (Win32 only) */ #define wxBU_AUTODRAW 0x0004 #define wxBU_NOAUTODRAW 0x0000 @@ -591,23 +614,30 @@ typedef void (*wxFunction) (wxObject&, wxEvent&); * wxTabCtrl flags */ -#define wxTAB_MULTILINE 0x0000 -#define wxTAB_RIGHTJUSTIFY 0x0004 -#define wxTAB_FIXEDWIDTH 0x0008 -#define wxTAB_OWNERDRAW 0x0010 - -// Sorry, I changed my mind about these names... #define wxTC_MULTILINE 0x0000 #define wxTC_RIGHTJUSTIFY 0x0004 #define wxTC_FIXEDWIDTH 0x0008 #define wxTC_OWNERDRAW 0x0010 +/* + * wxNotebook flags + */ +#define wxNB_FIXEDWIDTH 0x0008 + /* * wxStatusBar95 flags */ #define wxST_SIZEGRIP 0x0002 +/* + * wxStaticLine flags + */ +#define wxLI_HORIZONTAL wxHORIZONTAL +#define wxLI_VERTICAL wxVERTICAL + + + /* * GDI descriptions */ @@ -768,82 +798,109 @@ enum wxDataFormat 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_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_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_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_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 }; /* OS mnemonics -- Identify the running OS (useful for Windows) @@ -869,12 +926,6 @@ enum wxWIN386 // Watcom 32-bit supervisor modus }; -/* Printing */ -#ifndef wxPORTRAIT -#define wxPORTRAIT 1 -#define wxLANDSCAPE 2 -#endif - /* Standard menu identifiers */ #define wxID_LOWEST 4999 @@ -940,9 +991,117 @@ enum /* Shortcut for easier dialog-unit-to-pixel conversion */ #define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt) +/* Paper types */ +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 + wxPAPER_A4, // A4 Sheet, 210 by 297 millimeters + wxPAPER_CSHEET, // C Sheet, 17 by 22 inches + wxPAPER_DSHEET, // D Sheet, 22 by 34 inches + wxPAPER_ESHEET, // E Sheet, 34 by 44 inches + wxPAPER_LETTERSMALL, // Letter Small, 8 1/2 by 11 inches + wxPAPER_TABLOID, // Tabloid, 11 by 17 inches + wxPAPER_LEDGER, // Ledger, 17 by 11 inches + wxPAPER_STATEMENT, // Statement, 5 1/2 by 8 1/2 inches + wxPAPER_EXECUTIVE, // Executive, 7 1/4 by 10 1/2 inches + wxPAPER_A3, // A3 sheet, 297 by 420 millimeters + wxPAPER_A4SMALL, // A4 small sheet, 210 by 297 millimeters + wxPAPER_A5, // A5 sheet, 148 by 210 millimeters + wxPAPER_B4, // B4 sheet, 250 by 354 millimeters + wxPAPER_B5, // B5 sheet, 182-by-257-millimeter paper + wxPAPER_FOLIO, // Folio, 8-1/2-by-13-inch paper + wxPAPER_QUARTO, // Quarto, 215-by-275-millimeter paper + wxPAPER_10X14, // 10-by-14-inch sheet + wxPAPER_11X17, // 11-by-17-inch sheet + wxPAPER_NOTE, // Note, 8 1/2 by 11 inches + wxPAPER_ENV_9, // #9 Envelope, 3 7/8 by 8 7/8 inches + wxPAPER_ENV_10, // #10 Envelope, 4 1/8 by 9 1/2 inches + wxPAPER_ENV_11, // #11 Envelope, 4 1/2 by 10 3/8 inches + wxPAPER_ENV_12, // #12 Envelope, 4 3/4 by 11 inches + wxPAPER_ENV_14, // #14 Envelope, 5 by 11 1/2 inches + wxPAPER_ENV_DL, // DL Envelope, 110 by 220 millimeters + wxPAPER_ENV_C5, // C5 Envelope, 162 by 229 millimeters + wxPAPER_ENV_C3, // C3 Envelope, 324 by 458 millimeters + wxPAPER_ENV_C4, // C4 Envelope, 229 by 324 millimeters + wxPAPER_ENV_C6, // C6 Envelope, 114 by 162 millimeters + wxPAPER_ENV_C65, // C65 Envelope, 114 by 229 millimeters + wxPAPER_ENV_B4, // B4 Envelope, 250 by 353 millimeters + wxPAPER_ENV_B5, // B5 Envelope, 176 by 250 millimeters + wxPAPER_ENV_B6, // B6 Envelope, 176 by 125 millimeters + wxPAPER_ENV_ITALY, // Italy Envelope, 110 by 230 millimeters + wxPAPER_ENV_MONARCH, // Monarch Envelope, 3 7/8 by 7 1/2 inches + wxPAPER_ENV_PERSONAL, // 6 3/4 Envelope, 3 5/8 by 6 1/2 inches + wxPAPER_FANFOLD_US, // US Std Fanfold, 14 7/8 by 11 inches + wxPAPER_FANFOLD_STD_GERMAN, // German Std Fanfold, 8 1/2 by 12 inches + wxPAPER_FANFOLD_LGL_GERMAN, // German Legal Fanfold, 8 1/2 by 13 inches + + wxPAPER_ISO_B4, // B4 (ISO) 250 x 353 mm + wxPAPER_JAPANESE_POSTCARD, // Japanese Postcard 100 x 148 mm + wxPAPER_9X11, // 9 x 11 in + wxPAPER_10X11, // 10 x 11 in + wxPAPER_15X11, // 15 x 11 in + wxPAPER_ENV_INVITE, // Envelope Invite 220 x 220 mm + wxPAPER_LETTER_EXTRA, // Letter Extra 9 \275 x 12 in + wxPAPER_LEGAL_EXTRA, // Legal Extra 9 \275 x 15 in + wxPAPER_TABLOID_EXTRA, // Tabloid Extra 11.69 x 18 in + wxPAPER_A4_EXTRA, // A4 Extra 9.27 x 12.69 in + wxPAPER_LETTER_TRANSVERSE, // Letter Transverse 8 \275 x 11 in + wxPAPER_A4_TRANSVERSE, // A4 Transverse 210 x 297 mm + wxPAPER_LETTER_EXTRA_TRANSVERSE, // Letter Extra Transverse 9\275 x 12 in + wxPAPER_A_PLUS, // SuperA/SuperA/A4 227 x 356 mm + wxPAPER_B_PLUS, // SuperB/SuperB/A3 305 x 487 mm + wxPAPER_LETTER_PLUS, // Letter Plus 8.5 x 12.69 in + wxPAPER_A4_PLUS, // A4 Plus 210 x 330 mm + wxPAPER_A5_TRANSVERSE, // A5 Transverse 148 x 210 mm + wxPAPER_B5_TRANSVERSE, // B5 (JIS) Transverse 182 x 257 mm + wxPAPER_A3_EXTRA, // A3 Extra 322 x 445 mm + wxPAPER_A5_EXTRA, // A5 Extra 174 x 235 mm + wxPAPER_B5_EXTRA, // B5 (ISO) Extra 201 x 276 mm + wxPAPER_A2, // A2 420 x 594 mm + wxPAPER_A3_TRANSVERSE, // A3 Transverse 297 x 420 mm + wxPAPER_A3_EXTRA_TRANSVERSE // A3 Extra Transverse 322 x 445 mm + +} wxPaperSize ; + +/* Printing orientation */ +#ifndef wxPORTRAIT +#define wxPORTRAIT 1 +#define wxLANDSCAPE 2 +#endif + +/* Duplex printing modes + */ + +typedef enum { + wxDUPLEX_SIMPLEX, // Non-duplex + wxDUPLEX_HORIZONTAL, + wxDUPLEX_VERTICAL +} wxDuplexMode; + +/* Print quality. + */ + +#define wxPRINT_QUALITY_HIGH -1 +#define wxPRINT_QUALITY_MEDIUM -2 +#define wxPRINT_QUALITY_LOW -3 +#define wxPRINT_QUALITY_DRAFT -4 + +typedef int wxPrintQuality; + +/* Print mode (currently PostScript only) + */ + +typedef enum { + 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; + + #ifdef __WXMSW__ -/* Stand-ins for Windows types, to avoid - * #including all of windows.h */ +// Stand-ins for Windows types, to avoid #including all of windows.h typedef unsigned long WXHWND; typedef unsigned long WXHANDLE; typedef unsigned long WXHICON; @@ -970,18 +1129,21 @@ typedef void * WXMSG; typedef unsigned long WXHCONV; typedef unsigned long WXHKEY; typedef unsigned long WXHTREEITEM; + typedef void * WXDRAWITEMSTRUCT; typedef void * WXMEASUREITEMSTRUCT; typedef void * WXLPCREATESTRUCT; + #ifdef __GNUWIN32__ -typedef int (*WXFARPROC)(); + typedef int (*WXFARPROC)(); #elif defined(__WIN32__) -typedef int (__stdcall *WXFARPROC)(); + typedef int (__stdcall *WXFARPROC)(); #else -typedef int (*WXFARPROC)(); + typedef int (*WXFARPROC)(); #endif -#endif +typedef WXHWND WXWidget; +#endif // MSW #ifdef __WXMOTIF__ /* Stand-ins for X/Xt/Motif types */ @@ -1000,7 +1162,7 @@ typedef void* WXFont; typedef void* WXImage; typedef void* WXCursor; typedef void* WXFontList; -#endif +#endif // Motif #ifdef __WXGTK__ /* Stand-ins for GLIB types */ @@ -1020,18 +1182,23 @@ typedef struct _GdkWindow GdkBitmap; typedef struct _GdkWindow GdkPixmap; typedef struct _GdkCursor GdkCursor; typedef struct _GdkRegion GdkRegion; +typedef struct _GdkDragContext GdkDragContext; /* Stand-ins for GTK types */ -typedef struct _GtkWidget GtkWidget; -typedef struct _GtkStyle GtkStyle; -typedef struct _GtkAdjustment GtkAdjustment; -typedef struct _GtkList GtkList; -typedef struct _GtkToolbar GtkToolbar; -typedef struct _GtkTooltips GtkTooltips; -typedef struct _GtkNotebook GtkNotebook; -typedef struct _GtkNotebookPage GtkNotebookPage; - -#endif +typedef struct _GtkWidget GtkWidget; +typedef struct _GtkStyle GtkStyle; +typedef struct _GtkAdjustment GtkAdjustment; +typedef struct _GtkList GtkList; +typedef struct _GtkToolbar GtkToolbar; +typedef struct _GtkTooltips GtkTooltips; +typedef struct _GtkNotebook GtkNotebook; +typedef struct _GtkNotebookPage GtkNotebookPage; +typedef struct _GtkAccelGroup GtkAccelGroup; +typedef struct _GtkItemFactory GtkItemFactory; +typedef struct _GtkSelectionData GtkSelectionData; + +typedef GtkWidget *WXWidget; +#endif // GTK // This is required because of clashing macros in windows.h, which may be // included before or after wxWindows classes, and therefore must be @@ -1067,5 +1234,14 @@ typedef struct _GtkNotebookPage GtkNotebookPage; #endif // __WXMSW__ +// --------------------------------------------------------------------------- +// macro to define a class without copy ctor nor assignment operator +// --------------------------------------------------------------------------- + +#define DECLARE_NO_COPY_CLASS(classname) \ + private: \ + classname(const classname&); \ + classname& operator=(const classname&) + #endif // _WX_DEFS_H_