]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/defs.h
file which undefs symbols ocnflicting with windows.h
[wxWidgets.git] / include / wx / defs.h
index f5777c1ee9decded609c35cedf1fe5196a420feb..55deb62757b3e9f2d90fe5100bff67d6fc6d9978 100644 (file)
@@ -81,6 +81,8 @@
 #ifdef __VISUALC__
 #   pragma warning(disable:4244)    // conversion from double to float
 #   pragma warning(disable:4100)    // unreferenced formal parameter
 #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
 #endif // __VISUALC__
 
 // suppress some Salford C++ warnings
     #elif defined(__WATCOMC__) && (__WATCOMC__ >= 1100)
         // Watcom 11+ supports bool
         #define HAVE_BOOL
     #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
 
     #endif // compilers
 #endif // HAVE_BOOL
 
 
 typedef unsigned char wxByte;
 typedef short int WXTYPE;
 
 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.
 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 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
 #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
 #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
 
 
 #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
 
 /*
  * Subwindow style flags
@@ -420,9 +441,9 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #define wxTB_3DBUTTONS      0x8000
 #define wxTB_HORIZONTAL     0x0002
 #define wxTB_VERTICAL       0x0004
 #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
 #define wxTB_FLAT           0x0008
-// use native docking
+// use native docking under GTK
 #define wxTB_DOCKABLE       0x0010
 
 /*
 #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
 #define wxGA_PROGRESSBAR     0x0004
 #define wxGA_HORIZONTAL      wxHORIZONTAL
 #define wxGA_VERTICAL        wxVERTICAL
+/* Windows only */
+#define wxGA_SMOOTH          0x0008
 
 /*
  * wxSlider flags
 
 /*
  * wxSlider flags
@@ -523,7 +546,7 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 #define wxSB_VERTICAL        wxVERTICAL
 
 /*
 #define wxSB_VERTICAL        wxVERTICAL
 
 /*
- * wxButton flags
+ * wxButton flags (Win32 only)
  */
 #define wxBU_AUTODRAW        0x0004
 #define wxBU_NOAUTODRAW      0x0000
  */
 #define wxBU_AUTODRAW        0x0004
 #define wxBU_NOAUTODRAW      0x0000
@@ -607,6 +630,14 @@ typedef void (*wxFunction) (wxObject&, wxEvent&);
 
 #define wxST_SIZEGRIP       0x0002
 
 
 #define wxST_SIZEGRIP       0x0002
 
+/*
+ * wxStaticLine flags
+ */
+#define wxLI_HORIZONTAL      wxHORIZONTAL
+#define wxLI_VERTICAL        wxVERTICAL
+
+
+
 /*
  * GDI descriptions
  */
 /*
  * GDI descriptions
  */
@@ -767,82 +798,109 @@ enum wxDataFormat
 
 enum wxKeyCode
 {
 
 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)
 };
 
 /* OS mnemonics -- Identify the running OS (useful for Windows)
@@ -868,12 +926,6 @@ enum
   wxWIN386                  // Watcom 32-bit supervisor modus
 };
 
   wxWIN386                  // Watcom 32-bit supervisor modus
 };
 
-/* Printing */
-#ifndef wxPORTRAIT
-#define wxPORTRAIT      1
-#define wxLANDSCAPE     2
-#endif
-
 /* Standard menu identifiers */
 #define wxID_LOWEST             4999
 
 /* Standard menu identifiers */
 #define wxID_LOWEST             4999
 
@@ -939,9 +991,117 @@ enum
 /* Shortcut for easier dialog-unit-to-pixel conversion */
 #define wxDLG_UNIT(parent, pt) parent->ConvertDialogToPixels(pt)
 
 /* 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__
 #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;
 typedef unsigned long   WXHWND;
 typedef unsigned long   WXHANDLE;
 typedef unsigned long   WXHICON;
@@ -969,18 +1129,21 @@ typedef void *          WXMSG;
 typedef unsigned long   WXHCONV;
 typedef unsigned long   WXHKEY;
 typedef unsigned long   WXHTREEITEM;
 typedef unsigned long   WXHCONV;
 typedef unsigned long   WXHKEY;
 typedef unsigned long   WXHTREEITEM;
+
 typedef void *          WXDRAWITEMSTRUCT;
 typedef void *          WXMEASUREITEMSTRUCT;
 typedef void *          WXLPCREATESTRUCT;
 typedef void *          WXDRAWITEMSTRUCT;
 typedef void *          WXMEASUREITEMSTRUCT;
 typedef void *          WXLPCREATESTRUCT;
+
 #ifdef __GNUWIN32__
 #ifdef __GNUWIN32__
-typedef int (*WXFARPROC)();
+    typedef int (*WXFARPROC)();
 #elif defined(__WIN32__)
 #elif defined(__WIN32__)
-typedef int (__stdcall *WXFARPROC)();
+    typedef int (__stdcall *WXFARPROC)();
 #else
 #else
-typedef int (*WXFARPROC)();
+    typedef int (*WXFARPROC)();
 #endif
 
 #endif
 
-#endif
+typedef WXHWND WXWidget;
+#endif // MSW
 
 #ifdef __WXMOTIF__
 /* Stand-ins for X/Xt/Motif types */
 
 #ifdef __WXMOTIF__
 /* Stand-ins for X/Xt/Motif types */
@@ -999,7 +1162,7 @@ typedef void*           WXFont;
 typedef void*           WXImage;
 typedef void*           WXCursor;
 typedef void*           WXFontList;
 typedef void*           WXImage;
 typedef void*           WXCursor;
 typedef void*           WXFontList;
-#endif
+#endif // Motif
 
 #ifdef __WXGTK__
 /* Stand-ins for GLIB types */
 
 #ifdef __WXGTK__
 /* Stand-ins for GLIB types */
@@ -1019,18 +1182,23 @@ typedef struct _GdkWindow       GdkBitmap;
 typedef struct _GdkWindow       GdkPixmap;
 typedef struct _GdkCursor       GdkCursor;
 typedef struct _GdkRegion       GdkRegion;
 typedef struct _GdkWindow       GdkPixmap;
 typedef struct _GdkCursor       GdkCursor;
 typedef struct _GdkRegion       GdkRegion;
+typedef struct _GdkDragContext  GdkDragContext;
 
 /* Stand-ins for GTK types */
 
 /* 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
 
 // This is required because of clashing macros in windows.h, which may be
 // included before or after wxWindows classes, and therefore must be
@@ -1066,5 +1234,14 @@ typedef struct _GtkNotebookPage GtkNotebookPage;
 #endif
   // __WXMSW__
 
 #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_
 #endif
     // _WX_DEFS_H_