diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -11,11 +11,15 @@
 import Distribution.Simple.LocalBuildInfo (LocalBuildInfo, localPkgDescr, installedPkgs, withPrograms, buildDir, absoluteInstallDirs)
 import Distribution.Simple.PackageIndex(SearchResult (..), searchByName )
 import Distribution.Simple.Program (ConfiguredProgram (..), lookupProgram, runProgram, simpleProgram, locationPath)
-import Distribution.Simple.Setup (ConfigFlags, BuildFlags, InstallFlags, CopyDest(..), fromFlag, installVerbosity)
+import Distribution.Simple.Setup ( BuildFlags, ConfigFlags
+                                 , CopyDest(..), CopyFlags, copyVerbosity
+                                 , InstallFlags, installVerbosity
+                                 , fromFlag
+                                 )
 import Distribution.Simple.Utils (installOrdinaryFile)
 import Distribution.System (OS (..), Arch (..), buildOS, buildArch)
-import Distribution.Verbosity (normal, verbose)
-import System.Cmd (system)
+import Distribution.Verbosity (Verbosity, normal, verbose)
+import System.Process (system)
 import System.Directory ( createDirectoryIfMissing, doesFileExist
                         , findExecutable,           getCurrentDirectory
                         , getDirectoryContents,     getModificationTime
@@ -43,7 +47,12 @@
 
 
 main :: IO ()
-main = defaultMainWithHooks simpleUserHooks { confHook = myConfHook, buildHook = myBuildHook, instHook = myInstHook }
+main = defaultMainWithHooks simpleUserHooks
+     { confHook = myConfHook
+     , buildHook = myBuildHook
+     , copyHook = myCopyHook
+     , instHook = myInstHook
+     }
 
 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 
@@ -229,29 +238,42 @@
 
 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
 
--- Make sure the right version of wx widgets is installed and return the 
+-- Find the most recent version of wxWidgets;
+-- abort the setup procedure when no proper version of wxWidgets is found
 readWxConfig :: IO String
 readWxConfig = do
-    -- Try to force version and see if we have it
-    let wxRequiredVersion = "2.9"
+    -- Try to find an acceptable version of wxWidgets
+    -- (a version that can be handled by this version of wxHaskell)
+    let wxAcceptableVersions = ["3.0", "2.9"] -- Preferred version first
 
     -- The Windows port of wx-config doesn't let you specify a version, nor query the full version,
     -- accordingly we just check what version is installed (which is returned with --release)
-    wxVersion <- case buildOS of
-      Windows -> readProcess "wx-config" ["--release"] ""
-      _       -> readProcess "wx-config" ["--version=" ++ wxRequiredVersion, "--version-full"] ""
+    wxVersions <- case buildOS of
+      Windows -> sequence [readProcess "wx-config" ["--release"] ""]
+      _       -> mapM readVersion wxAcceptableVersions
+                 where readVersion x = E.catch (readProcess "wx-config" ["--version=" ++ x, "--version-full"] "") handleError
+                       handleError :: IOError -> IO String
+                       handleError _ = return ""
 
-    if wxRequiredVersion `isPrefixOf` wxVersion 
-      then putStrLn ("Configuring wxc to build against wxWidgets " ++ wxVersion)
-      else error ("This version of wxc requires wxWidgets " ++ wxRequiredVersion ++ " to be available")
+    case [(x, y) | x <- wxAcceptableVersions, 
+                   y <- wxVersions, 
+                   x `isPrefixOf` y
+         ] of
+      [] ->
+        error ("This version of wxc requires one of the following wxWidgets versions to be available: " 
+               ++ show wxAcceptableVersions
+              )
+      ((wxVersion, wxFullVersion) : _) ->
+        do
+          putStrLn ("Configuring wxc to build against wxWidgets " ++ wxFullVersion)
 
-    -- The Windows port of wx-config doesn't let you specify a version (yet)
-    output <- case buildOS of
-      -- TODO: Nasty Windows hack: wx-config-win barfs if --cppflags comes after --libs :-(
-      Windows -> readProcess "wx-config" ["--cppflags", "--libs", "all"] ""
-      _       -> readProcess "wx-config" ["--version=" ++ wxRequiredVersion, "--libs", "all", "--cppflags"] ""
-    return output
+          -- The Windows port of wx-config doesn't let you specify a version (yet)
+          case buildOS of
+            -- TODO: Nasty Windows hack: wx-config-win barfs if --cppflags comes after --libs :-(
+            Windows -> readProcess "wx-config" ["--cppflags", "--libs", "all"] ""
+            _       -> readProcess "wx-config" ["--version=" ++ wxVersion, "--libs", "all", "--cppflags"] ""
 
+
 parseWxConfig :: String -> BuildInfo
 parseWxConfig s =
     helper emptyBuildInfo (words s)
@@ -277,28 +299,27 @@
 myBuildHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> BuildFlags -> IO ()
 myBuildHook pkg_descr local_bld_info user_hooks bld_flags =
     do
-    -- Extract the custom fields customFieldsPD where field name is x-cpp-dll-sources
-    let lib = fromJust (library pkg_descr)
-        lib_bi = libBuildInfo lib
+    -- Extract the custom fields customFieldsPD where field name is x-dll-sources
+    let lib       = fromJust (library pkg_descr)
+        lib_bi    = libBuildInfo lib
         custom_bi = customFieldsBI lib_bi
-        dll_name = fromJust (lookup "x-dll-name" custom_bi)
-        dll_srcs = (lines . fromJust) (lookup "x-dll-sources" custom_bi)
-        dll_libs = (lines . fromJust) (lookup "x-dll-extra-libraries" custom_bi)
-        cc_opts = ccOptions lib_bi
-        ld_opts = ldOptions lib_bi
-        inc_dirs = includeDirs lib_bi
-        lib_dirs = extraLibDirs lib_bi
-        libs = extraLibs lib_bi
-        bld_dir = buildDir local_bld_info
-        progs = withPrograms local_bld_info
-        gcc = fromJust (lookupProgram (simpleProgram "gcc") progs)
-        ver = (pkgVersion . package) pkg_descr
+        dll_name  = fromJust (lookup "x-dll-name" custom_bi)
+        dll_srcs  = (lines . fromJust) (lookup "x-dll-sources" custom_bi)
+        dll_libs  = (lines . fromJust) (lookup "x-dll-extra-libraries" custom_bi)
+        cc_opts   = ccOptions lib_bi
+        ld_opts   = ldOptions lib_bi
+        inc_dirs  = includeDirs lib_bi
+        lib_dirs  = extraLibDirs lib_bi
+        libs      = extraLibs lib_bi
+        bld_dir   = buildDir local_bld_info
+        progs     = withPrograms local_bld_info
+        gcc       = fromJust (lookupProgram (simpleProgram "gcc") progs)
+        ver       = (pkgVersion . package) pkg_descr
         inst_lib_dir = libdir $ absoluteInstallDirs pkg_descr local_bld_info NoCopyDest
     -- Compile C/C++ sources - output directory is dist/build/src/cpp
     putStrLn "Building wxc"
     objs <- mapM (compileCxx gcc cc_opts inc_dirs bld_dir) dll_srcs
     -- Link C/C++ sources as a DLL - output directory is dist/build
-    putStrLn "Linking wxc"
     linkSharedLib gcc ld_opts lib_dirs (libs ++ dll_libs) objs ver bld_dir dll_name inst_lib_dir
 
 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
@@ -329,10 +350,10 @@
             -> String -- ^ Absolute path of the shared library
             -> [String] -- ^ List of options which can be applied to 'runProgram'
 linkCxxOpts ver out_dir basename basepath =
-    let dll_pathname = normalisePath (out_dir </> addExtension basename ".dll")
-        implib_pathname = normalisePath (out_dir </> "lib" ++ addExtension basename ".a") in
+    -- let dll_pathname = normalisePath (out_dir </> addExtension basename ".dll")
+    --     implib_ pathname = normalisePath (out_dir </> "lib" ++ addExtension basename ".a") in
     case buildOS of
-      Windows -> ["--dll", "-shared", 
+      Windows -> ["-Wl,--dll", "-shared", 
                   "-o", out_dir </> sharedLibName ver basename,
                   "-Wl,--out-implib," ++ "lib" ++ addExtension basename ".a",
                   "-Wl,--export-all-symbols", "-Wl,--enable-auto-import"]
@@ -384,26 +405,45 @@
 
 -- | Create a dynamically linked library using the configured ld.
 linkSharedLib :: ConfiguredProgram -- ^ Program used to perform linking
-              -> [String] -- ^ Linker options supplied by Cabal
-              -> [FilePath] -- ^ Library directories
-              -> [String] -- ^ Libraries
-              -> [String] -- ^ Objects
-              -> Version -- ^ wxCore version (wxC has same version number)
-              -> FilePath -- ^ Directory in which library will be generated
-              -> String -- ^ Name of the shared library
-              -> String -- ^ Absolute path of the shared library
+              -> [String]          -- ^ Linker options supplied by Cabal
+              -> [FilePath]        -- ^ Library directories
+              -> [String]          -- ^ Libraries
+              -> [String]          -- ^ Objects
+              -> Version           -- ^ wxCore version (wxC has same version number)
+              -> FilePath          -- ^ Directory in which library will be generated
+              -> String            -- ^ Name of the shared library
+              -> String            -- ^ Absolute path of the shared library
               -> IO ()
 linkSharedLib gcc opts lib_dirs libs objs ver out_dir dll_name dll_path =
     do
     let lib_dirs' = map (\d -> "-L" ++ normalisePath d) lib_dirs
-        out_dir' = normalisePath out_dir
-        opts' = opts ++ linkCxxOpts ver (out_dir') dll_name dll_path
-        objs' = map normalisePath objs
-        libs' = ["-lstdc++"] ++ map ("-l" ++) libs
-    runProgram verbose gcc (opts' ++ objs' ++ lib_dirs' ++ libs')
-    --system $ (unwords ([show . locationPath . programLocation $ gcc] ++ opts' ++ objs' ++ lib_dirs' ++ libs'))
-    return ()
+        out_dir'  = normalisePath out_dir
+        opts'     = opts ++ linkCxxOpts ver out_dir' dll_name dll_path
+        objs'     = map normalisePath objs
+        libs'     = ["-lstdc++"] ++ map ("-l" ++) libs
+        target    = out_dir' </> sharedLibName ver dll_name
+    link <- linkingNeeded target objs' 
+    when link $
+      do
+        putStrLn "Linking wxc"
+        runProgram verbose gcc (opts' ++ objs' ++ lib_dirs' ++ libs')
+      --system $ (unwords ([show . locationPath . programLocation $ gcc] ++ opts' ++ objs' ++ lib_dirs' ++ libs'))
 
+
+-- | Check if one of the input files is more recent then the output file 
+linkingNeeded :: FilePath -> [FilePath] -> IO Bool
+linkingNeeded output input = 
+  do
+    fileExists <- doesFileExist output
+    if not fileExists 
+      then return True
+      else 
+        do
+          mostRecentModificationTime <- maximum <$> mapM getModificationTime input
+          outputModificationTime     <- getModificationTime output
+          return $ mostRecentModificationTime > outputModificationTime
+
+
 -- | The 'normalise' implementation in System.FilePath does not meet the requirements of
 -- calling and/or running external programs on Windows particularly well as it does not
 -- normalise the '/' character to '\\'. The problem is that some MinGW programs do not
@@ -439,11 +479,20 @@
                 ExitSuccess -> return ()
                 otherwise -> error "Couldn't execute ldconfig, ensure it is on your path"
 
+myCopyHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> CopyFlags -> IO ()
+myCopyHook = hookHelper (fromFlag . copyVerbosity) (copyHook simpleUserHooks)
+
 myInstHook :: PackageDescription -> LocalBuildInfo -> UserHooks -> InstallFlags -> IO ()
-myInstHook pkg_descr local_bld_info user_hooks inst_flags = 
+myInstHook = hookHelper (fromFlag . installVerbosity) (instHook simpleUserHooks)
+
+hookHelper ::
+    (a -> Verbosity) ->
+    (PackageDescription -> LocalBuildInfo -> UserHooks -> a -> IO ()) ->
+    PackageDescription -> LocalBuildInfo -> UserHooks -> a -> IO ()
+hookHelper verbosity origHook pkg_descr local_bld_info user_hooks flags =
     do
-    -- Perform simpleUserHooks instHook (to copy installIncludes)
-    instHook simpleUserHooks pkg_descr local_bld_info user_hooks inst_flags
+    -- Perform simpleUserHooks (copyHook/instHook => to copy installIncludes)
+    origHook pkg_descr local_bld_info user_hooks flags
 
     -- Copy shared library
     let bld_dir = buildDir local_bld_info
@@ -457,6 +506,6 @@
 
         inst_lib_dir = libdir $ absoluteInstallDirs pkg_descr local_bld_info NoCopyDest
 
-    installOrdinaryFile (fromFlag (installVerbosity inst_flags)) (bld_dir </> lib_name) (inst_lib_dir </> lib_name)
+    installOrdinaryFile (verbosity flags) (bld_dir </> lib_name) (inst_lib_dir </> lib_name)
     ldconfig inst_lib_dir
 
diff --git a/src/cpp/apppath.cpp b/src/cpp/apppath.cpp
--- a/src/cpp/apppath.cpp
+++ b/src/cpp/apppath.cpp
@@ -1,142 +1,142 @@
-#include "wrapper.h"
-#ifdef __WXMSW__
-# include <windows.h>
-#elif defined(__WXMAC__)
-# ifdef __DARWIN__
-#  if wxCHECK_VERSION(2,9,5)
-#   include <dlfcn.h>  /* dlsym */
-#   include <limits.h> /* PATH_MAX */
-#  endif
-#  include <mach-o/dyld.h>
-   typedef int (*NSGetExecutablePathProcPtr)(char* buf, size_t* bufsize);
-# else
-#  include <Types.h>
-#  include <Files.h>
-#  include <Processes.h> 
-# endif
-#endif
-
-
-wxString GetApplicationPath()
-{
-  static bool found = false;
-  static wxString path;
-
-  if (!found)
-  {
-/* Windows */
-#ifdef __WXMSW__
-    wxChar buf[512] = wxT("");
-    GetModuleFileName(NULL, buf, 511);
-    path = wxString(buf, wxConvUTF8);
-
-/* UNIX & MAC*/
-#else
-    wxString argv0;
-
-# ifdef __WXMAC__		
-#  if wxCHECK_VERSION(2,9,5)
-	// NSAddressOfSymbol, NSIsSymbolNameDefined, NSLookupAndBindSymbol are deprecated
-	// The dependence on WX 2.9.0.5 most likely can be relaxed as this is a longtime Darwin deprecation.
-	void* addrOf_NSGetExecutablePath = dlsym(RTLD_DEFAULT, "_NSGetExecutablePath");
-	if ( addrOf_NSGetExecutablePath != NULL )
-    {
-      char buf[PATH_MAX+1];
-      size_t bufLen = PATH_MAX;
-      buf[0] = 0;
-      ((NSGetExecutablePathProcPtr) addrOf_NSGetExecutablePath)(buf, &bufLen);
-      wxString strBuf = wxString();
-      size_t actualBuflen = strlen(buf);
-      if (actualBuflen > 0) {
-        // FIXME: we *assume* that the NS stuff returns utf-8 encoded strings
-        path = wxString(buf, wxConvUTF8);
-        found=true;
-        return path;
-      }
-    }
-#  else
-    if (NSIsSymbolNameDefined("__NSGetExecutablePath"))
-    {
-      char buf[512];
-      size_t bufLen = 512;
-      buf[0] = 0;
-      ((NSGetExecutablePathProcPtr) NSAddressOfSymbol(NSLookupAndBindSymbol("__NSGetExecutablePath")))(buf, &bufLen);
-      wxString strBuf = wxString();
-      size_t actualBuflen = strlen(buf);
-      if (actualBuflen > 0) {
-        // FIXME: we *assume* that the NS stuff returns utf-8 encoded strings
-        path = wxString(buf, wxConvUTF8);
-        found=true;
-        return path;
-      }
-    }
-#  endif
-# endif
-
-    argv0 = wxTheApp->argv[0];
-
-    /* check absolute path */
-    if (wxIsAbsolutePath(argv0)) {
-        path = argv0;
-    }
-    else {
-      /* check relative path */
-      wxString fname = wxGetCwd() + wxFILE_SEP_PATH + argv0;
-      if (wxFileExists(fname)) {
-        path = fname;
-      } else {
-        /* find on PATH */
-        wxPathList pathlist;
-        pathlist.AddEnvList(wxT("PATH"));
-        path = pathlist.FindAbsoluteValidPath(argv0);
-      }
-    }
-
-    wxFileName filename(path);
-    filename.Normalize();
-    path = filename.GetFullPath();
-#endif
-
-    found = true;
-  }
-  return path;
-}
-
-
-wxString GetApplicationDir()
-{
-  wxString path;
-  
-  /* check APPDIR on unix's */
-#ifndef __WXMSW__
-# ifndef __WXMAC__
-  wxGetEnv(wxT("APPDIR"), &path);
-  if (!path.IsEmpty()) return path;
-# endif
-#endif
-
-  path = GetApplicationPath();
-  if (path.IsEmpty())
-    return wxGetCwd();
-  else {
-    wxFileName fname(path);
-    return fname.GetPath(wxPATH_GET_VOLUME);
-  }  
-}
-
-extern "C" 
-{
-EWXWEXPORT(wxString*,wxGetApplicationDir)()
-{
-  wxString *result = new wxString();
-  *result = GetApplicationDir();
-  return result;
-}
-
-EWXWEXPORT(wxString*,wxGetApplicationPath)()
-{
-  wxString *result = new wxString();
-  *result = GetApplicationPath();
-  return result;
-}
-}
+#include "wrapper.h"
+#ifdef __WXMSW__
+# include <windows.h>
+#elif defined(__WXMAC__)
+# ifdef __DARWIN__
+#  if wxCHECK_VERSION(2,9,5)
+#   include <dlfcn.h>  /* dlsym */
+#   include <limits.h> /* PATH_MAX */
+#  endif
+#  include <mach-o/dyld.h>
+   typedef int (*NSGetExecutablePathProcPtr)(char* buf, size_t* bufsize);
+# else
+#  include <Types.h>
+#  include <Files.h>
+#  include <Processes.h> 
+# endif
+#endif
+
+
+wxString GetApplicationPath()
+{
+  static bool found = false;
+  static wxString path;
+
+  if (!found)
+  {
+/* Windows */
+#ifdef __WXMSW__
+    wxChar buf[512] = wxT("");
+    GetModuleFileName(NULL, buf, 511);
+    path = wxString(buf, wxConvUTF8);
+
+/* UNIX & MAC*/
+#else
+    wxString argv0;
+
+# ifdef __WXMAC__		
+#  if wxCHECK_VERSION(2,9,5)
+	// NSAddressOfSymbol, NSIsSymbolNameDefined, NSLookupAndBindSymbol are deprecated
+	// The dependence on WX 2.9.0.5 most likely can be relaxed as this is a longtime Darwin deprecation.
+	void* addrOf_NSGetExecutablePath = dlsym(RTLD_DEFAULT, "_NSGetExecutablePath");
+	if ( addrOf_NSGetExecutablePath != NULL )
+    {
+      char buf[PATH_MAX+1];
+      size_t bufLen = PATH_MAX;
+      buf[0] = 0;
+      ((NSGetExecutablePathProcPtr) addrOf_NSGetExecutablePath)(buf, &bufLen);
+      wxString strBuf = wxString();
+      size_t actualBuflen = strlen(buf);
+      if (actualBuflen > 0) {
+        // FIXME: we *assume* that the NS stuff returns utf-8 encoded strings
+        path = wxString(buf, wxConvUTF8);
+        found=true;
+        return path;
+      }
+    }
+#  else
+    if (NSIsSymbolNameDefined("__NSGetExecutablePath"))
+    {
+      char buf[512];
+      size_t bufLen = 512;
+      buf[0] = 0;
+      ((NSGetExecutablePathProcPtr) NSAddressOfSymbol(NSLookupAndBindSymbol("__NSGetExecutablePath")))(buf, &bufLen);
+      wxString strBuf = wxString();
+      size_t actualBuflen = strlen(buf);
+      if (actualBuflen > 0) {
+        // FIXME: we *assume* that the NS stuff returns utf-8 encoded strings
+        path = wxString(buf, wxConvUTF8);
+        found=true;
+        return path;
+      }
+    }
+#  endif
+# endif
+
+    argv0 = wxTheApp->argv[0];
+
+    /* check absolute path */
+    if (wxIsAbsolutePath(argv0)) {
+        path = argv0;
+    }
+    else {
+      /* check relative path */
+      wxString fname = wxGetCwd() + wxFILE_SEP_PATH + argv0;
+      if (wxFileExists(fname)) {
+        path = fname;
+      } else {
+        /* find on PATH */
+        wxPathList pathlist;
+        pathlist.AddEnvList(wxT("PATH"));
+        path = pathlist.FindAbsoluteValidPath(argv0);
+      }
+    }
+
+    wxFileName filename(path);
+    filename.Normalize();
+    path = filename.GetFullPath();
+#endif
+
+    found = true;
+  }
+  return path;
+}
+
+
+wxString GetApplicationDir()
+{
+  wxString path;
+  
+  /* check APPDIR on unix's */
+#ifndef __WXMSW__
+# ifndef __WXMAC__
+  wxGetEnv(wxT("APPDIR"), &path);
+  if (!path.IsEmpty()) return path;
+# endif
+#endif
+
+  path = GetApplicationPath();
+  if (path.IsEmpty())
+    return wxGetCwd();
+  else {
+    wxFileName fname(path);
+    return fname.GetPath(wxPATH_GET_VOLUME);
+  }  
+}
+
+extern "C" 
+{
+EWXWEXPORT(wxString*,wxGetApplicationDir)()
+{
+  wxString *result = new wxString();
+  *result = GetApplicationDir();
+  return result;
+}
+
+EWXWEXPORT(wxString*,wxGetApplicationPath)()
+{
+  wxString *result = new wxString();
+  *result = GetApplicationPath();
+  return result;
+}
+}
diff --git a/src/cpp/dragimage.cpp b/src/cpp/dragimage.cpp
--- a/src/cpp/dragimage.cpp
+++ b/src/cpp/dragimage.cpp
@@ -1,115 +1,115 @@
-#include "wrapper.h"
-#include <wx/dragimag.h>
-#include <wx/generic/dragimgg.h>
-
-extern "C" {
-/*-----------------------------------------------------------------------------
-  DragImage
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxDragImage*,wxDragImage_Create)(wxBitmap* image,int x,int y)
-{
-  return new wxDragImage(*image, wxNullCursor);
-}
-
-EWXWEXPORT(wxDragImage*,wxDragIcon)(wxIcon* icon,int x,int y)
-{
-  return new wxDragImage(*icon, wxNullCursor);
-}
-
-EWXWEXPORT(wxDragImage*,wxDragString)(wxString* text,int x,int y)
-{
-  return new wxDragImage(*text, wxNullCursor);
-}
-
-EWXWEXPORT(wxDragImage*,wxDragTreeItem)(wxTreeCtrl* treeCtrl,wxTreeItemId* id)
-{
-  return new wxDragImage(*treeCtrl,*id);
-}
-
-EWXWEXPORT(wxDragImage*,wxDragListItem)(wxListCtrl* listCtrl,long id)
-{
-  return new wxDragImage(*listCtrl, id);
-}
-
-EWXWEXPORT(wxGenericDragImage*,wxGenericDragImage_Create)(wxCursor* cursor)
-{
-  return new wxGenericDragImage(*cursor);
-}
-
-EWXWEXPORT(wxGenericDragImage*,wxGenericDragIcon)(wxIcon* icon)
-{
-  return new wxGenericDragImage(*icon, wxNullCursor);
-}
-
-EWXWEXPORT(wxGenericDragImage*,wxGenericDragString)(wxString* text)
-{
-  return new wxGenericDragImage(*text, wxNullCursor);
-}
-
-EWXWEXPORT(wxGenericDragImage*,wxGenericDragTreeItem)(wxTreeCtrl* treeCtrl,wxTreeItemId* id)
-{
-  return new wxGenericDragImage(*treeCtrl,*id);
-}
-
-EWXWEXPORT(wxGenericDragImage*,wxGenericDragListItem)(wxListCtrl* listCtrl,long id)
-{
-  return new wxGenericDragImage(*listCtrl, id);
-}
-
-EWXWEXPORT(void,wxDragImage_Delete)(wxDragImage* self)
-{
-  if (self) delete self;
-}
-
-EWXWEXPORT(bool,wxDragImage_BeginDragFullScreen)(wxDragImage* self,int x_pos,int y_pos,wxWindow* window,bool fullScreen,wxRect* rect)
-{
-  return self->BeginDrag(wxPoint(x_pos, y_pos), window, fullScreen, rect);
-}
-
-EWXWEXPORT(bool,wxDragImage_BeginDrag)(wxDragImage* self,int x,int y,wxWindow* window,wxWindow* boundingWindow)
-{
-  return self->BeginDrag(wxPoint(x, y), window, boundingWindow);
-}
-
-EWXWEXPORT(bool,wxGenericDragImage_DoDrawImage)(wxGenericDragImage* self,wxDC* dc,int x,int y)
-{
-  return self->DoDrawImage(*dc, wxPoint(x, y));
-}
-
-EWXWEXPORT(bool,wxDragImage_EndDrag)(wxDragImage* self)
-{
-  return self->EndDrag();
-}
-
-EWXWEXPORT(wxRect*,wxGenericDragImage_GetImageRect)(wxGenericDragImage* self,int x_pos,int y_pos)
-{
-  wxRect* r = new wxRect();
-  *r = self->GetImageRect(wxPoint(x_pos, y_pos));
-  return r;
-}
-
-EWXWEXPORT(bool,wxDragImage_Hide)(wxDragImage* self)
-{
-  return self->Hide();
-}
-
-EWXWEXPORT(bool,wxDragImage_Move)(wxDragImage* self,int x,int y)
-{
-  return self->Move(wxPoint(x, y));
-}
-
-EWXWEXPORT(bool,wxDragImage_Show)(wxDragImage* self)
-{
-  return self->Show();
-}
-
-EWXWEXPORT(bool,wxGenericDragImage_UpdateBackingFromWindow)(wxGenericDragImage* self,wxDC* windowDC,wxMemoryDC* destDC,int x,int y,int w,int h,int xdest,int ydest,int width,int height)
-{
-  return self->UpdateBackingFromWindow(*windowDC,*destDC,
-                                       wxRect(x, y, w, h),
-                                       wxRect(xdest, ydest, width, height));
-}
-
-}
-
-
+#include "wrapper.h"
+#include <wx/dragimag.h>
+#include <wx/generic/dragimgg.h>
+
+extern "C" {
+/*-----------------------------------------------------------------------------
+  DragImage
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxDragImage*,wxDragImage_Create)(wxBitmap* image,int x,int y)
+{
+  return new wxDragImage(*image, wxNullCursor);
+}
+
+EWXWEXPORT(wxDragImage*,wxDragIcon)(wxIcon* icon,int x,int y)
+{
+  return new wxDragImage(*icon, wxNullCursor);
+}
+
+EWXWEXPORT(wxDragImage*,wxDragString)(wxString* text,int x,int y)
+{
+  return new wxDragImage(*text, wxNullCursor);
+}
+
+EWXWEXPORT(wxDragImage*,wxDragTreeItem)(wxTreeCtrl* treeCtrl,wxTreeItemId* id)
+{
+  return new wxDragImage(*treeCtrl,*id);
+}
+
+EWXWEXPORT(wxDragImage*,wxDragListItem)(wxListCtrl* listCtrl,long id)
+{
+  return new wxDragImage(*listCtrl, id);
+}
+
+EWXWEXPORT(wxGenericDragImage*,wxGenericDragImage_Create)(wxCursor* cursor)
+{
+  return new wxGenericDragImage(*cursor);
+}
+
+EWXWEXPORT(wxGenericDragImage*,wxGenericDragIcon)(wxIcon* icon)
+{
+  return new wxGenericDragImage(*icon, wxNullCursor);
+}
+
+EWXWEXPORT(wxGenericDragImage*,wxGenericDragString)(wxString* text)
+{
+  return new wxGenericDragImage(*text, wxNullCursor);
+}
+
+EWXWEXPORT(wxGenericDragImage*,wxGenericDragTreeItem)(wxTreeCtrl* treeCtrl,wxTreeItemId* id)
+{
+  return new wxGenericDragImage(*treeCtrl,*id);
+}
+
+EWXWEXPORT(wxGenericDragImage*,wxGenericDragListItem)(wxListCtrl* listCtrl,long id)
+{
+  return new wxGenericDragImage(*listCtrl, id);
+}
+
+EWXWEXPORT(void,wxDragImage_Delete)(wxDragImage* self)
+{
+  if (self) delete self;
+}
+
+EWXWEXPORT(bool,wxDragImage_BeginDragFullScreen)(wxDragImage* self,int x_pos,int y_pos,wxWindow* window,bool fullScreen,wxRect* rect)
+{
+  return self->BeginDrag(wxPoint(x_pos, y_pos), window, fullScreen, rect);
+}
+
+EWXWEXPORT(bool,wxDragImage_BeginDrag)(wxDragImage* self,int x,int y,wxWindow* window,wxWindow* boundingWindow)
+{
+  return self->BeginDrag(wxPoint(x, y), window, boundingWindow);
+}
+
+EWXWEXPORT(bool,wxGenericDragImage_DoDrawImage)(wxGenericDragImage* self,wxDC* dc,int x,int y)
+{
+  return self->DoDrawImage(*dc, wxPoint(x, y));
+}
+
+EWXWEXPORT(bool,wxDragImage_EndDrag)(wxDragImage* self)
+{
+  return self->EndDrag();
+}
+
+EWXWEXPORT(wxRect*,wxGenericDragImage_GetImageRect)(wxGenericDragImage* self,int x_pos,int y_pos)
+{
+  wxRect* r = new wxRect();
+  *r = self->GetImageRect(wxPoint(x_pos, y_pos));
+  return r;
+}
+
+EWXWEXPORT(bool,wxDragImage_Hide)(wxDragImage* self)
+{
+  return self->Hide();
+}
+
+EWXWEXPORT(bool,wxDragImage_Move)(wxDragImage* self,int x,int y)
+{
+  return self->Move(wxPoint(x, y));
+}
+
+EWXWEXPORT(bool,wxDragImage_Show)(wxDragImage* self)
+{
+  return self->Show();
+}
+
+EWXWEXPORT(bool,wxGenericDragImage_UpdateBackingFromWindow)(wxGenericDragImage* self,wxDC* windowDC,wxMemoryDC* destDC,int x,int y,int w,int h,int xdest,int ydest,int width,int height)
+{
+  return self->UpdateBackingFromWindow(*windowDC,*destDC,
+                                       wxRect(x, y, w, h),
+                                       wxRect(xdest, ydest, width, height));
+}
+
+}
+
+
diff --git a/src/cpp/eljbitmap.cpp b/src/cpp/eljbitmap.cpp
--- a/src/cpp/eljbitmap.cpp
+++ b/src/cpp/eljbitmap.cpp
@@ -1,204 +1,204 @@
-#include "wrapper.h"
-
-extern "C"
-{
-
-EWXWEXPORT(void*,wxBitmap_Create)(void* _data,int _width,int _height,int _depth)
-{
-	return (void*) new wxBitmap((const char*)_data, _width, _height, _depth);
-}
-
-EWXWEXPORT(void*,wxBitmap_CreateFromXPM)(void* _data)
-{
-	return (void*) new wxBitmap((const char**)_data);
-}
-
-EWXWEXPORT(void*,wxBitmap_CreateEmpty)(int _width,int _height,int _depth)
-{
-	return (void*) new wxBitmap(_width, _height, _depth);
-}
-
-EWXWEXPORT(void*,wxBitmap_CreateLoad)(wxString* name,int type)
-{
-#if wxVERSION_NUMBER >= 2400
-	return (void*) new wxBitmap(*name, (wxBitmapType)type);
-#else
-	return (void*) new wxBitmap(*name, (long)type);
-#endif
-}
-
-EWXWEXPORT(void*,wxBitmap_CreateDefault)()
-{
-	return (void*) new wxBitmap();
-}
-
-EWXWEXPORT(void,wxBitmap_Delete)(wxBitmap* self)
-{
-	delete self;
-}
-
-EWXWEXPORT(void,wxBitmap_GetSubBitmap)(wxBitmap* self,int x,int y,int w,int h,wxBitmap* bitmap)
-{
-	*bitmap = self->GetSubBitmap(wxRect(x, y, w, h));
-}
-
-EWXWEXPORT(bool,wxBitmap_LoadFile)(wxBitmap* self,wxString* name,int type)
-{
-#if wxVERSION_NUMBER >= 2400
-	return self->LoadFile(*name, (wxBitmapType)type);
-#else
-	return self->LoadFile(*name, (long)type);
-#endif
-}
-
-EWXWEXPORT(bool,wxBitmap_SaveFile)(wxBitmap* self,wxString* name,int type,wxPalette* cmap)
-{
-#if wxVERSION_NUMBER >= 2400
-	return self->SaveFile(*name, (wxBitmapType)type,  cmap);
-#else
-	return self->SaveFile(*name, type,  cmap);
-#endif
-}
-
-EWXWEXPORT(wxMask*,wxBitmap_GetMask)(wxBitmap* self)
-{
-	return self->GetMask();
-}
-
-EWXWEXPORT(void,wxBitmap_SetMask)(wxBitmap* self,wxMask* mask)
-{
-	self->SetMask(mask);
-}
-
-/**/
-EWXWEXPORT(void,wxBitmap_AddHandler)(void* handler)
-{
-#ifdef __WIN32__
-	wxBitmap::AddHandler((wxGDIImageHandler*) handler);
-#endif
-}
-
-EWXWEXPORT(void,wxBitmap_InsertHandler)(void* handler)
-{
-#ifdef __WIN32__
-	wxBitmap::InsertHandler((wxGDIImageHandler*) handler);
-#endif
-}
-
-EWXWEXPORT(bool,wxBitmap_RemoveHandler)(wxString* name)
-{
-#ifdef __WIN32__
-	return wxBitmap::RemoveHandler(*name);
-#else
-	return false;
-#endif
-}
-
-EWXWEXPORT(void*,wxBitmap_FindHandlerByName)(wxString* name)
-{
-#ifdef __WIN32__
-	return (void*)wxBitmap::FindHandler(*name);
-#else
-	return NULL;
-#endif
-}
-
-EWXWEXPORT(void*,wxBitmap_FindHandlerByExtension)(wxString* extension,int type)
-{
-#ifdef __WIN32__
-	return (void*)wxBitmap::FindHandler(*extension, (long)type);
-#else
-	return NULL;
-#endif
-}
-
-EWXWEXPORT(void*,wxBitmap_FindHandlerByType)(int type)
-{
-#ifdef __WIN32__
-	return (void*)wxBitmap::FindHandler((long)type);
-#else
-	return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxBitmap_InitStandardHandlers)()
-{
-#ifdef __WIN32__
-	wxBitmap::InitStandardHandlers();
-#endif
-}
-
-EWXWEXPORT(void,wxBitmap_CleanUpHandlers)()
-{
-#ifdef __WIN32__
-	wxBitmap::CleanUpHandlers();
-#endif
-}
-
-/**/
-EWXWEXPORT(bool,wxBitmap_IsOk)(wxBitmap* self)
-{
-	return self->IsOk();
-}
-
-EWXWEXPORT(int,wxBitmap_GetWidth)(wxBitmap* self)
-{
-	return self->GetWidth();
-}
-
-EWXWEXPORT(int,wxBitmap_GetHeight)(wxBitmap* self)
-{
-	return self->GetHeight();
-}
-
-EWXWEXPORT(int,wxBitmap_GetDepth)(wxBitmap* self)
-{
-	return self->GetDepth();
-}
-
-EWXWEXPORT(void,wxBitmap_SetWidth)(wxBitmap* self,int w)
-{
-	self->SetWidth(w);
-}
-
-EWXWEXPORT(void,wxBitmap_SetHeight)(wxBitmap* self,int h)
-{
-	self->SetHeight(h);
-}
-
-EWXWEXPORT(void,wxBitmap_SetDepth)(wxBitmap* self,int d)
-{
-	self->SetDepth(d);
-}
-
-EWXWEXPORT(void*,wxStaticBitmap_Create)(wxWindow* _prt,int _id,wxBitmap* bitmap, int _lft, int _top, int _wdt, int _hgt, int _stl)
-{
-	return (void*) new wxStaticBitmap (_prt, _id, *bitmap, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl);
-}
-
-EWXWEXPORT(void,wxStaticBitmap_SetIcon)(wxStaticBitmap* self,wxIcon* icon)
-{
-	self->SetIcon(*icon);
-}
-
-EWXWEXPORT(void,wxStaticBitmap_SetBitmap)(wxStaticBitmap* self,wxBitmap* bitmap)
-{
-	self->SetBitmap(*bitmap);
-}
-
-EWXWEXPORT(void,wxStaticBitmap_GetIcon)(wxStaticBitmap* self,wxIcon* _ref)
-{
-	*_ref = self->GetIcon();
-}
-
-EWXWEXPORT(void,wxStaticBitmap_GetBitmap)(wxStaticBitmap* self,wxBitmap* _ref)
-{
-	*_ref = self->GetBitmap();
-}
-
-EWXWEXPORT(void,wxStaticBitmap_Delete)(wxStaticBitmap* self)
-{
-	delete self;
-}
-
-}
+#include "wrapper.h"
+
+extern "C"
+{
+
+EWXWEXPORT(void*,wxBitmap_Create)(void* _data,int _width,int _height,int _depth)
+{
+	return (void*) new wxBitmap((const char*)_data, _width, _height, _depth);
+}
+
+EWXWEXPORT(void*,wxBitmap_CreateFromXPM)(void* _data)
+{
+	return (void*) new wxBitmap((const char**)_data);
+}
+
+EWXWEXPORT(void*,wxBitmap_CreateEmpty)(int _width,int _height,int _depth)
+{
+	return (void*) new wxBitmap(_width, _height, _depth);
+}
+
+EWXWEXPORT(void*,wxBitmap_CreateLoad)(wxString* name,int type)
+{
+#if wxVERSION_NUMBER >= 2400
+	return (void*) new wxBitmap(*name, (wxBitmapType)type);
+#else
+	return (void*) new wxBitmap(*name, (long)type);
+#endif
+}
+
+EWXWEXPORT(void*,wxBitmap_CreateDefault)()
+{
+	return (void*) new wxBitmap();
+}
+
+EWXWEXPORT(void,wxBitmap_Delete)(wxBitmap* self)
+{
+	delete self;
+}
+
+EWXWEXPORT(void,wxBitmap_GetSubBitmap)(wxBitmap* self,int x,int y,int w,int h,wxBitmap* bitmap)
+{
+	*bitmap = self->GetSubBitmap(wxRect(x, y, w, h));
+}
+
+EWXWEXPORT(bool,wxBitmap_LoadFile)(wxBitmap* self,wxString* name,int type)
+{
+#if wxVERSION_NUMBER >= 2400
+	return self->LoadFile(*name, (wxBitmapType)type);
+#else
+	return self->LoadFile(*name, (long)type);
+#endif
+}
+
+EWXWEXPORT(bool,wxBitmap_SaveFile)(wxBitmap* self,wxString* name,int type,wxPalette* cmap)
+{
+#if wxVERSION_NUMBER >= 2400
+	return self->SaveFile(*name, (wxBitmapType)type,  cmap);
+#else
+	return self->SaveFile(*name, type,  cmap);
+#endif
+}
+
+EWXWEXPORT(wxMask*,wxBitmap_GetMask)(wxBitmap* self)
+{
+	return self->GetMask();
+}
+
+EWXWEXPORT(void,wxBitmap_SetMask)(wxBitmap* self,wxMask* mask)
+{
+	self->SetMask(mask);
+}
+
+/**/
+EWXWEXPORT(void,wxBitmap_AddHandler)(void* handler)
+{
+#ifdef __WIN32__
+	wxBitmap::AddHandler((wxGDIImageHandler*) handler);
+#endif
+}
+
+EWXWEXPORT(void,wxBitmap_InsertHandler)(void* handler)
+{
+#ifdef __WIN32__
+	wxBitmap::InsertHandler((wxGDIImageHandler*) handler);
+#endif
+}
+
+EWXWEXPORT(bool,wxBitmap_RemoveHandler)(wxString* name)
+{
+#ifdef __WIN32__
+	return wxBitmap::RemoveHandler(*name);
+#else
+	return false;
+#endif
+}
+
+EWXWEXPORT(void*,wxBitmap_FindHandlerByName)(wxString* name)
+{
+#ifdef __WIN32__
+	return (void*)wxBitmap::FindHandler(*name);
+#else
+	return NULL;
+#endif
+}
+
+EWXWEXPORT(void*,wxBitmap_FindHandlerByExtension)(wxString* extension,int type)
+{
+#ifdef __WIN32__
+	return (void*)wxBitmap::FindHandler(*extension, (long)type);
+#else
+	return NULL;
+#endif
+}
+
+EWXWEXPORT(void*,wxBitmap_FindHandlerByType)(int type)
+{
+#ifdef __WIN32__
+	return (void*)wxBitmap::FindHandler((long)type);
+#else
+	return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxBitmap_InitStandardHandlers)()
+{
+#ifdef __WIN32__
+	wxBitmap::InitStandardHandlers();
+#endif
+}
+
+EWXWEXPORT(void,wxBitmap_CleanUpHandlers)()
+{
+#ifdef __WIN32__
+	wxBitmap::CleanUpHandlers();
+#endif
+}
+
+/**/
+EWXWEXPORT(bool,wxBitmap_IsOk)(wxBitmap* self)
+{
+	return self->IsOk();
+}
+
+EWXWEXPORT(int,wxBitmap_GetWidth)(wxBitmap* self)
+{
+	return self->GetWidth();
+}
+
+EWXWEXPORT(int,wxBitmap_GetHeight)(wxBitmap* self)
+{
+	return self->GetHeight();
+}
+
+EWXWEXPORT(int,wxBitmap_GetDepth)(wxBitmap* self)
+{
+	return self->GetDepth();
+}
+
+EWXWEXPORT(void,wxBitmap_SetWidth)(wxBitmap* self,int w)
+{
+	self->SetWidth(w);
+}
+
+EWXWEXPORT(void,wxBitmap_SetHeight)(wxBitmap* self,int h)
+{
+	self->SetHeight(h);
+}
+
+EWXWEXPORT(void,wxBitmap_SetDepth)(wxBitmap* self,int d)
+{
+	self->SetDepth(d);
+}
+
+EWXWEXPORT(void*,wxStaticBitmap_Create)(wxWindow* _prt,int _id,wxBitmap* bitmap, int _lft, int _top, int _wdt, int _hgt, int _stl)
+{
+	return (void*) new wxStaticBitmap (_prt, _id, *bitmap, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl);
+}
+
+EWXWEXPORT(void,wxStaticBitmap_SetIcon)(wxStaticBitmap* self,wxIcon* icon)
+{
+	self->SetIcon(*icon);
+}
+
+EWXWEXPORT(void,wxStaticBitmap_SetBitmap)(wxStaticBitmap* self,wxBitmap* bitmap)
+{
+	self->SetBitmap(*bitmap);
+}
+
+EWXWEXPORT(void,wxStaticBitmap_GetIcon)(wxStaticBitmap* self,wxIcon* _ref)
+{
+	*_ref = self->GetIcon();
+}
+
+EWXWEXPORT(void,wxStaticBitmap_GetBitmap)(wxStaticBitmap* self,wxBitmap* _ref)
+{
+	*_ref = self->GetBitmap();
+}
+
+EWXWEXPORT(void,wxStaticBitmap_Delete)(wxStaticBitmap* self)
+{
+	delete self;
+}
+
+}
diff --git a/src/cpp/eljevent.cpp b/src/cpp/eljevent.cpp
--- a/src/cpp/eljevent.cpp
+++ b/src/cpp/eljevent.cpp
@@ -1,1886 +1,1883 @@
-#include "wrapper.h"
-#include "wx/process.h"
-#include "wx/dialup.h"
-
-#include "wx/power.h"
-
-#if defined(wxUSE_TAB_DIALOG) && (wxUSE_TAB_DIALOG==0)
-# undef wxUSE_TAB_DIALOG
-#endif
-
-#ifdef USE_CONTRIB
-#include "wx/plot/plot.h"
-#include "wx/gizmos/dynamicsash.h"
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// Included as we need event wrappers. All have guards in the headers
-// so don't repeat them here...
-////////////////////////////////////////////////////////////////////////////////
-#include "wx/aui/aui.h"
-#include "wx/choicebk.h"
-#include "wx/clrpicker.h"
-#include "wx/collpane.h"
-#include "wx/dataview.h"
-#include "wx/fdrepdlg.h"
-#include "wx/filectrl.h"
-#include "wx/filepicker.h"
-#include "wx/fontpicker.h"
-#include "wx/fswatcher.h"
-#include "wx/headerctrl.h"
-#include "wx/hyperlink.h"
-#include "wx/listbook.h"
-#include "wx/mediactrl.h"
-#include "wx/propgrid/propgrid.h"
-#include "wx/ribbon/bar.h"
-#include "wx/ribbon/buttonbar.h"
-#include "wx/ribbon/gallery.h"
-#include "wx/ribbon/toolbar.h"
-#include "wx/richtext/richtextctrl.h"
-#include "wx/srchctrl.h"
-#include "wx/stc/stc.h"
-#include "wx/taskbar.h"
-#include "wx/textctrl.h"
-#include "wx/tglbtn.h"
-#include "wx/toolbook.h"
-#include "wx/treebook.h"
-
-extern "C"
-{
-
-EWXWEXPORT(wxCommandEvent*,wxCommandEvent_Create)(int _typ,int _id)
-{
-        return new wxCommandEvent((wxEventType)_typ, _id);
-}
-
-EWXWEXPORT(void,wxCommandEvent_Delete)(wxCommandEvent* self)
-{
-        delete self;
-}
-
-EWXWEXPORT(int,wxEvent_GetTimestamp)(wxEvent* self)
-{
-        return self->GetTimestamp();
-}
-
-EWXWEXPORT(void,wxEvent_Skip)(wxEvent* self)
-{
-        self->Skip();
-}
-
-EWXWEXPORT(int,wxEvent_GetEventType)(wxEvent* self)
-{
-        return (int)self->GetEventType();
-}
-
-EWXWEXPORT(void,wxEvent_SetEventType)(wxEvent* self,int typ)
-{
-        self->SetEventType((wxEventType) typ);
-}
-
-EWXWEXPORT(void*,wxEvent_GetEventObject)(wxEvent* self)
-{
-        return (void*)self->GetEventObject();
-}
-
-EWXWEXPORT(void,wxEvent_SetEventObject)(wxEvent* self,wxObject* obj)
-{
-        self->SetEventObject(obj);
-}
-
-EWXWEXPORT(void,wxEvent_SetTimestamp)(wxEvent* self,int ts)
-{
-        self->SetTimestamp((long)ts);
-}
-
-EWXWEXPORT(int,wxEvent_GetId)(wxEvent* self)
-{
-        return self->GetId();
-}
-
-EWXWEXPORT(void,wxEvent_SetId)(wxEvent* self,int Id)
-{
-        self->SetId(Id);
-}
-
-EWXWEXPORT(bool,wxEvent_GetSkipped)(wxEvent* self)
-{
-        return self->GetSkipped();
-}
-
-EWXWEXPORT(bool,wxEvent_IsCommandEvent)(wxEvent* self)
-{
-        return self->IsCommandEvent();
-}
-
-EWXWEXPORT(void,wxEvent_CopyObject)(wxEvent* self,wxObject* object_dest)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*object_dest);
-#endif
-}
-
-EWXWEXPORT(void,wxEvent_SetCallbackUserData)(wxEvent* self,wxObject* obj)
-{
-        self->m_callbackUserData = obj;
-}
-
-EWXWEXPORT(void*,wxEvent_GetCallbackUserData)(wxEvent* self)
-{
-        return (void*)self->m_callbackUserData;
-}
-
-EWXWEXPORT(void,wxCommandEvent_SetClientData)(wxCommandEvent* self,void* clientData)
-{
-        self->SetClientData(clientData);
-}
-
-EWXWEXPORT(void*,wxCommandEvent_GetClientData)(wxCommandEvent* self)
-{
-        return self->GetClientData();
-}
-
-EWXWEXPORT(void,wxCommandEvent_SetClientObject)(wxCommandEvent* self,void* clientObject)
-{
-        self->SetClientObject((wxClientData*)clientObject);
-}
-
-EWXWEXPORT(void*,wxCommandEvent_GetClientObject)(wxCommandEvent* self)
-{
-        return (void*)self->GetClientObject();
-}
-
-EWXWEXPORT(int,wxCommandEvent_GetSelection)(wxCommandEvent* self)
-{
-        return self->GetSelection();
-}
-
-EWXWEXPORT(void,wxCommandEvent_SetString)(wxCommandEvent* self,wxString* s)
-{
-        self->SetString(*s);
-}
-
-EWXWEXPORT(wxString*,wxCommandEvent_GetString)(wxCommandEvent* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetString();
-        return result;
-}
-
-EWXWEXPORT(bool,wxCommandEvent_IsChecked)(wxCommandEvent* self)
-{
-        return self->IsChecked();
-}
-
-EWXWEXPORT(bool,wxCommandEvent_IsSelection)(wxCommandEvent* self)
-{
-        return self->IsSelection();
-}
-
-EWXWEXPORT(void,wxCommandEvent_SetExtraLong)(wxCommandEvent* self,long extraLong)
-{
-        self->SetExtraLong(extraLong);
-}
-
-EWXWEXPORT(long,wxCommandEvent_GetExtraLong)(wxCommandEvent* self)
-{
-        return self->GetExtraLong();
-}
-
-EWXWEXPORT(void,wxCommandEvent_SetInt)(wxCommandEvent* self,int i)
-{
-        self->SetInt(i);
-}
-
-EWXWEXPORT(long,wxCommandEvent_GetInt)(wxCommandEvent* self)
-{
-        return self->GetInt();
-}
-
-EWXWEXPORT(void,wxCommandEvent_CopyObject)(wxCommandEvent* self,wxObject* object_dest)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*object_dest);
-#endif
-}
-
-EWXWEXPORT(void,wxNotifyEvent_Veto)(wxNotifyEvent* self)
-{
-        self->Veto();
-}
-
-EWXWEXPORT(void,wxNotifyEvent_Allow)(wxNotifyEvent* self)
-{
-        self->Allow();
-}
-
-EWXWEXPORT(bool,wxNotifyEvent_IsAllowed)(wxNotifyEvent* self)
-{
-        return self->IsAllowed();
-}
-
-EWXWEXPORT(void,wxNotifyEvent_CopyObject)(wxNotifyEvent* self,wxObject* object_dest)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*object_dest);
-#endif
-}
-
-EWXWEXPORT(int,wxScrollWinEvent_GetOrientation)(wxScrollWinEvent* self)
-{
-        return self->GetOrientation();
-}
-
-EWXWEXPORT(int,wxScrollWinEvent_GetPosition)(wxScrollWinEvent* self)
-{
-        return self->GetPosition();
-}
-
-EWXWEXPORT(void,wxScrollWinEvent_SetOrientation)(wxScrollWinEvent* self,int orient)
-{
-        self->SetOrientation(orient);
-}
-
-EWXWEXPORT(void,wxScrollWinEvent_SetPosition)(wxScrollWinEvent* self,int pos)
-{
-        self->SetPosition(pos);
-}
-
-EWXWEXPORT(bool,wxMouseEvent_IsButton)(wxMouseEvent* self)
-{
-        return self->IsButton();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_ButtonDown)(wxMouseEvent* self,int but)
-{
-#if (wxVERSION_NUMBER < 2900)
-        int _but = but;
-#else
-        wxMouseButton _but = (wxMouseButton) but;
-#endif
-        return self->ButtonDown(_but);
-}
-
-EWXWEXPORT(bool,wxMouseEvent_ButtonDClick)(wxMouseEvent* self,int but)
-{
-#if (wxVERSION_NUMBER < 2900)
-        int _but = but;
-#else
-        wxMouseButton _but = (wxMouseButton) but;
-#endif
-        return self->ButtonDClick(_but);
-}
-
-EWXWEXPORT(bool,wxMouseEvent_ButtonUp)(wxMouseEvent* self,int but)
-{
-#if (wxVERSION_NUMBER < 2900)
-        int _but = but;
-#else
-        wxMouseButton _but = (wxMouseButton) but;
-#endif
-        return self->ButtonUp(_but);
-}
-
-EWXWEXPORT(bool,wxMouseEvent_Button)(wxMouseEvent* self,int but)
-{
-#if (wxVERSION_NUMBER < 2900)
-        int _but = but;
-#else
-        wxMouseButton _but = (wxMouseButton) but;
-#endif
-        return self->Button(_but);
-}
-
-EWXWEXPORT(bool,wxMouseEvent_ButtonIsDown)(wxMouseEvent* self,int but)
-{
-#if (wxVERSION_NUMBER < 2900)
-        int _but = but;
-#else
-        wxMouseButton _but = (wxMouseButton) but;
-#endif
-        return self->ButtonIsDown(_but);
-}
-
-EWXWEXPORT(bool,wxMouseEvent_ControlDown)(wxMouseEvent* self)
-{
-        return self->ControlDown();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_MetaDown)(wxMouseEvent* self)
-{
-        return self->MetaDown();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_AltDown)(wxMouseEvent* self)
-{
-        return self->AltDown();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_ShiftDown)(wxMouseEvent* self)
-{
-        return self->ShiftDown();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_LeftDown)(wxMouseEvent* self)
-{
-        return self->LeftDown();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_MiddleDown)(wxMouseEvent* self)
-{
-        return self->MiddleDown();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_RightDown)(wxMouseEvent* self)
-{
-        return self->RightDown();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_LeftUp)(wxMouseEvent* self)
-{
-        return self->LeftUp();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_MiddleUp)(wxMouseEvent* self)
-{
-        return self->MiddleUp();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_RightUp)(wxMouseEvent* self)
-{
-        return self->RightUp();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_LeftDClick)(wxMouseEvent* self)
-{
-        return self->LeftDClick();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_MiddleDClick)(wxMouseEvent* self)
-{
-        return self->MiddleDClick();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_RightDClick)(wxMouseEvent* self)
-{
-        return self->RightDClick();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_LeftIsDown)(wxMouseEvent* self)
-{
-        return self->LeftIsDown();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_MiddleIsDown)(wxMouseEvent* self)
-{
-        return self->MiddleIsDown();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_RightIsDown)(wxMouseEvent* self)
-{
-        return self->RightIsDown();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_Dragging)(wxMouseEvent* self)
-{
-        return self->Dragging();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_Moving)(wxMouseEvent* self)
-{
-        return self->Moving();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_Entering)(wxMouseEvent* self)
-{
-        return self->Entering();
-}
-
-EWXWEXPORT(bool,wxMouseEvent_Leaving)(wxMouseEvent* self)
-{
-        return self->Leaving();
-}
-
-EWXWEXPORT(wxPoint*,wxMouseEvent_GetPosition)(wxMouseEvent* self)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->GetPosition();
-	return pt;
-}
-
-EWXWEXPORT(wxPoint*,wxMouseEvent_GetLogicalPosition)(wxMouseEvent* self,wxDC* dc)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->GetLogicalPosition(*dc);
-	return pt;
-}
-
-EWXWEXPORT(int,wxMouseEvent_GetX)(wxMouseEvent* self)
-{
-        return self->GetX();
-}
-
-EWXWEXPORT(int,wxMouseEvent_GetY)(wxMouseEvent* self)
-{
-        return self->GetY();
-}
-
-EWXWEXPORT(void,wxMouseEvent_CopyObject)(wxMouseEvent* self,wxObject* object_dest)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*object_dest);
-#endif
-}
-
-EWXWEXPORT(wxCoord,wxSetCursorEvent_GetX)(wxSetCursorEvent* self)
-{
-        return self->GetX();
-}
-
-EWXWEXPORT(wxCoord,wxSetCursorEvent_GetY)(wxSetCursorEvent* self)
-{
-        return self->GetY();
-}
-
-EWXWEXPORT(void,wxSetCursorEvent_SetCursor)(wxSetCursorEvent* self,wxCursor* cursor)
-{
-        self->SetCursor(*cursor);
-}
-
-EWXWEXPORT(wxCursor*,wxSetCursorEvent_GetCursor)(wxSetCursorEvent* self)
-{
-        wxCursor* cur = new wxCursor;
-        *cur = self->GetCursor();
-        return cur;
-}
-
-EWXWEXPORT(bool,wxSetCursorEvent_HasCursor)(wxSetCursorEvent* self)
-{
-        return self->HasCursor();
-}
-
-EWXWEXPORT(bool,wxKeyEvent_ControlDown)(wxKeyEvent* self)
-{
-        return self->ControlDown();
-}
-
-EWXWEXPORT(bool,wxKeyEvent_MetaDown)(wxKeyEvent* self)
-{
-        return self->MetaDown();
-}
-
-EWXWEXPORT(bool,wxKeyEvent_AltDown)(wxKeyEvent* self)
-{
-        return self->AltDown();
-}
-
-EWXWEXPORT(bool,wxKeyEvent_ShiftDown)(wxKeyEvent* self)
-{
-        return self->ShiftDown();
-}
-
-EWXWEXPORT(bool,wxKeyEvent_HasModifiers)(wxKeyEvent* self)
-{
-        return self->HasModifiers();
-}
-
-EWXWEXPORT(int,wxKeyEvent_GetKeyCode)(wxKeyEvent* self)
-{
-        return self->GetKeyCode();
-}
-
-EWXWEXPORT(int,wxKeyEvent_GetModifiers)(wxKeyEvent* self)
-{
-        return self->GetModifiers();
-}
-
-EWXWEXPORT(void,wxKeyEvent_SetKeyCode)(wxKeyEvent* self,int code)
-{
-        self->m_keyCode = code;
-}
-
-EWXWEXPORT(wxPoint*,wxKeyEvent_GetPosition)(wxKeyEvent* self)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->GetPosition();
-	return pt;
-}
-
-EWXWEXPORT(wxCoord,wxKeyEvent_GetX)(wxKeyEvent* self)
-{
-        return self->GetX();
-}
-
-EWXWEXPORT(wxCoord,wxKeyEvent_GetY)(wxKeyEvent* self)
-{
-        return self->GetY();
-}
-
-EWXWEXPORT(void,wxKeyEvent_CopyObject)(wxKeyEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(wxSize*,wxSizeEvent_GetSize)(wxSizeEvent* self)
-{
-	wxSize* s = new wxSize();
-	*s = self->GetSize();
-	return s;
-}
-
-EWXWEXPORT(void,wxSizeEvent_CopyObject)(wxSizeEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(wxPoint*,wxMoveEvent_GetPosition)(wxMoveEvent* self)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->GetPosition();
-	return pt;
-}
-
-EWXWEXPORT(void,wxMoveEvent_CopyObject)(wxMoveEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(wxDC*,wxEraseEvent_GetDC)(wxEraseEvent* self)
-{
-        return self->GetDC();
-}
-
-EWXWEXPORT(void,wxEraseEvent_CopyObject)(wxEraseEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(bool,wxActivateEvent_GetActive)(wxActivateEvent* self)
-{
-        return self->GetActive();
-}
-
-EWXWEXPORT(void,wxActivateEvent_CopyObject)(wxActivateEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(int,wxMenuEvent_GetMenuId)(wxMenuEvent* self)
-{
-        return self->GetMenuId();
-}
-
-EWXWEXPORT(void,wxMenuEvent_CopyObject)(wxMenuEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(void,wxCloseEvent_SetLoggingOff)(wxCloseEvent* self,bool logOff)
-{
-        self->SetLoggingOff(logOff);
-}
-
-EWXWEXPORT(bool,wxCloseEvent_GetLoggingOff)(wxCloseEvent* self)
-{
-        return self->GetLoggingOff();
-}
-
-EWXWEXPORT(void,wxCloseEvent_Veto)(wxCloseEvent* self,bool veto)
-{
-        self->Veto(veto);
-}
-
-EWXWEXPORT(void,wxCloseEvent_SetCanVeto)(wxCloseEvent* self,bool canVeto)
-{
-        self->SetCanVeto(canVeto);
-}
-
-EWXWEXPORT(bool,wxCloseEvent_CanVeto)(wxCloseEvent* self)
-{
-        return self->CanVeto();
-}
-
-EWXWEXPORT(bool,wxCloseEvent_GetVeto)(wxCloseEvent* self)
-{
-        return self->GetVeto();
-}
-
-EWXWEXPORT(void,wxCloseEvent_CopyObject)(wxCloseEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(void,wxShowEvent_SetShow)(wxShowEvent* self,bool show)
-{
-        self->SetShow(show);
-}
-
-EWXWEXPORT(bool,wxShowEvent_IsShown)(wxShowEvent* self)
-{
-#if (wxVERSION_NUMBER < 2900)
-        return self->GetShow();
-#else
-        return self->IsShown();
-#endif
-}
-
-EWXWEXPORT(void,wxShowEvent_CopyObject)(wxShowEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(wxPoint*,wxJoystickEvent_GetPosition)(wxJoystickEvent* self)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->GetPosition();
-	return pt;
-}
-
-EWXWEXPORT(int,wxJoystickEvent_GetZPosition)(wxJoystickEvent* self)
-{
-        return self->GetZPosition();
-}
-
-EWXWEXPORT(int,wxJoystickEvent_GetButtonState)(wxJoystickEvent* self)
-{
-        return self->GetButtonState();
-}
-
-EWXWEXPORT(int,wxJoystickEvent_GetButtonChange)(wxJoystickEvent* self)
-{
-        return self->GetButtonChange();
-}
-
-EWXWEXPORT(int,wxJoystickEvent_GetJoystick)(wxJoystickEvent* self)
-{
-        return self->GetJoystick();
-}
-
-EWXWEXPORT(void,wxJoystickEvent_SetJoystick)(wxJoystickEvent* self,int stick)
-{
-        self->SetJoystick(stick);
-}
-
-EWXWEXPORT(void,wxJoystickEvent_SetButtonState)(wxJoystickEvent* self,int state)
-{
-        self->SetButtonState(state);
-}
-
-EWXWEXPORT(void,wxJoystickEvent_SetButtonChange)(wxJoystickEvent* self,int change)
-{
-        self->SetButtonChange(change);
-}
-
-EWXWEXPORT(void,wxJoystickEvent_SetPosition)(wxJoystickEvent* self,int x,int y)
-{
-	wxPoint pos(x,y);
-	self->SetPosition(pos);
-}
-
-EWXWEXPORT(void,wxJoystickEvent_SetZPosition)(wxJoystickEvent* self,int zPos)
-{
-        self->SetZPosition(zPos);
-}
-
-EWXWEXPORT(bool,wxJoystickEvent_IsButton)(wxJoystickEvent* self)
-{
-        return self->IsButton();
-}
-
-EWXWEXPORT(bool,wxJoystickEvent_IsMove)(wxJoystickEvent* self)
-{
-        return self->IsMove();
-}
-
-EWXWEXPORT(bool,wxJoystickEvent_IsZMove)(wxJoystickEvent* self)
-{
-        return self->IsZMove();
-}
-
-EWXWEXPORT(bool,wxJoystickEvent_ButtonDown)(wxJoystickEvent* self,int but)
-{
-        return self->ButtonDown(but);
-}
-
-EWXWEXPORT(bool,wxJoystickEvent_ButtonUp)(wxJoystickEvent* self,int but)
-{
-        return self->ButtonUp(but);
-}
-
-EWXWEXPORT(bool,wxJoystickEvent_ButtonIsDown)(wxJoystickEvent* self,int but)
-{
-        return self->ButtonIsDown(but);
-}
-
-EWXWEXPORT(void,wxJoystickEvent_CopyObject)(wxJoystickEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(bool,wxUpdateUIEvent_GetChecked)(wxUpdateUIEvent* self)
-{
-        return self->GetChecked();
-}
-
-EWXWEXPORT(bool,wxUpdateUIEvent_GetEnabled)(wxUpdateUIEvent* self)
-{
-        return self->GetEnabled();
-}
-
-EWXWEXPORT(wxString*,wxUpdateUIEvent_GetText)(wxUpdateUIEvent* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetText();
-        return result;
-}
-
-EWXWEXPORT(bool,wxUpdateUIEvent_GetSetText)(wxUpdateUIEvent* self)
-{
-        return self->GetSetText();
-}
-
-EWXWEXPORT(bool,wxUpdateUIEvent_GetSetChecked)(wxUpdateUIEvent* self)
-{
-        return self->GetSetChecked();
-}
-
-EWXWEXPORT(bool,wxUpdateUIEvent_GetSetEnabled)(wxUpdateUIEvent* self)
-{
-        return self->GetSetEnabled();
-}
-
-EWXWEXPORT(void,wxUpdateUIEvent_Check)(wxUpdateUIEvent* self,bool check)
-{
-        self->Check(check);
-}
-
-EWXWEXPORT(void,wxUpdateUIEvent_Enable)(wxUpdateUIEvent* self,bool enable)
-{
-        self->Enable(enable);
-}
-
-EWXWEXPORT(void,wxUpdateUIEvent_SetText)(wxUpdateUIEvent* self,wxString* text)
-{
-        self->SetText(*text);
-}
-
-EWXWEXPORT(void,wxUpdateUIEvent_CopyObject)(wxUpdateUIEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(void,wxPaletteChangedEvent_SetChangedWindow)(wxPaletteChangedEvent* self,wxWindow* win)
-{
-        self->SetChangedWindow(win);
-}
-
-EWXWEXPORT(void*,wxPaletteChangedEvent_GetChangedWindow)(wxPaletteChangedEvent* self)
-{
-        return (void*)self->GetChangedWindow();
-}
-
-EWXWEXPORT(void,wxPaletteChangedEvent_CopyObject)(wxPaletteChangedEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(void,wxQueryNewPaletteEvent_SetPaletteRealized)(wxQueryNewPaletteEvent* self,bool realized)
-{
-        self->SetPaletteRealized(realized);
-}
-
-EWXWEXPORT(bool,wxQueryNewPaletteEvent_GetPaletteRealized)(wxQueryNewPaletteEvent* self)
-{
-        return self->GetPaletteRealized();
-}
-
-EWXWEXPORT(void,wxQueryNewPaletteEvent_CopyObject)(wxQueryNewPaletteEvent* self,wxObject* obj)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*obj);
-#endif
-}
-
-EWXWEXPORT(bool,wxNavigationKeyEvent_GetDirection)(wxNavigationKeyEvent* self)
-{
-        return self->GetDirection();
-}
-
-EWXWEXPORT(void,wxNavigationKeyEvent_SetDirection)(wxNavigationKeyEvent* self,bool bForward)
-{
-        self->SetDirection(bForward);
-}
-
-EWXWEXPORT(bool,wxNavigationKeyEvent_IsWindowChange)(wxNavigationKeyEvent* self)
-{
-        return self->IsWindowChange();
-}
-
-EWXWEXPORT(void,wxNavigationKeyEvent_SetWindowChange)(wxNavigationKeyEvent* self,bool bIs)
-{
-        self->SetWindowChange(bIs);
-}
-
-EWXWEXPORT(bool,wxNavigationKeyEvent_ShouldPropagate)(wxNavigationKeyEvent* self)
-{
-        return self->ShouldPropagate();
-}
-	
-EWXWEXPORT(void*,wxNavigationKeyEvent_GetCurrentFocus)(wxNavigationKeyEvent* self)
-{
-        return (void*) self->GetCurrentFocus();
-}
-
-EWXWEXPORT(void,wxNavigationKeyEvent_SetCurrentFocus)(wxNavigationKeyEvent* self,wxWindow* win)
-{
-        self->SetCurrentFocus(win);
-}
-
-EWXWEXPORT(void*,wxWindowCreateEvent_GetWindow)(wxWindowCreateEvent* self)
-{
-        return (void*)self->GetWindow();
-}
-
-EWXWEXPORT(void*,wxWindowDestroyEvent_GetWindow)(wxWindowDestroyEvent* self)
-{
-        return (void*)self->GetWindow();
-}
-
-EWXWEXPORT(void,wxIdleEvent_RequestMore)(wxIdleEvent* self,bool needMore)
-{
-        self->RequestMore(needMore);
-}
-
-EWXWEXPORT(bool,wxIdleEvent_MoreRequested)(wxIdleEvent* self)
-{
-        return self->MoreRequested();
-}
-
-EWXWEXPORT(void,wxIdleEvent_CopyObject)(wxIdleEvent* self,wxObject* object_dest)
-{
-#if wxVERSION_NUMBER < 2400
-        self->CopyObject(*object_dest);
-#endif
-}
-
-EWXWEXPORT(int,wxListEvent_GetCode)(wxListEvent* self)
-{
-#if wxCHECK_VERSION(2,5,0)
-	return self->GetKeyCode();
-#else
-        return self->GetCode();
-#endif
-}
-
-EWXWEXPORT(long,wxListEvent_GetIndex)(wxListEvent* self)
-{
-        return self->GetIndex();
-}
-EWXWEXPORT(int,wxListEvent_GetColumn)(wxListEvent* self)
-{
-        return self->GetColumn();
-}
-
-EWXWEXPORT(bool,wxListEvent_Cancelled)(wxListEvent* self)
-{
-#if wxVERSION_NUMBER < 2400
-        return self->Cancelled();
-#else
-        return false;
-#endif
-}
-
-EWXWEXPORT(wxPoint*,wxListEvent_GetPoint)(wxListEvent* self)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->GetPoint();
-	return pt;
-}
-
-EWXWEXPORT(wxString*,wxListEvent_GetLabel)(wxListEvent* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetLabel();
-        return result;
-}
-
-EWXWEXPORT(wxString*,wxListEvent_GetText)(wxListEvent* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetText();
-        return result;
-}
-
-EWXWEXPORT(int,wxListEvent_GetImage)(wxListEvent* self)
-{
-        return self->GetImage();
-}
-
-EWXWEXPORT(long,wxListEvent_GetData)(wxListEvent* self)
-{
-        return self->GetData();
-}
-
-EWXWEXPORT(long,wxListEvent_GetMask)(wxListEvent* self)
-{
-        return self->GetMask();
-}
-
-EWXWEXPORT(void,wxListEvent_GetItem)(wxListEvent* self,void* _ref)
-{
-#if wxVERSION_NUMBER < 2400
-        *((wxListItem*)_ref) = self->GetItem();
-#else
-        wxListItem* ret = new wxListItem(self->GetItem());
-        *((void**)_ref) = (void*)ret;
-#endif
-}
-
-EWXWEXPORT(void,wxTreeEvent_GetItem)(wxTreeEvent* self,wxTreeItemId* _ref)
-{
-        *_ref = self->GetItem();
-}
-
-EWXWEXPORT(void,wxTreeEvent_GetOldItem)(wxTreeEvent* self,wxTreeItemId* _ref)
-{
-        *_ref = self->GetOldItem();
-}
-
-EWXWEXPORT(wxPoint*,wxTreeEvent_GetPoint)(wxTreeEvent* self)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->GetPoint();
-	return pt;
-}
-
-EWXWEXPORT(int,wxTreeEvent_GetCode)(wxTreeEvent* self)
-{
-        return self->GetKeyCode();
-}
-
-EWXWEXPORT(wxString*,wxTreeEvent_GetLabel)(wxTreeEvent* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetLabel();
-        return result;
-}
-
-EWXWEXPORT(int,wxSpinEvent_GetPosition)(wxSpinEvent* self)
-{
-        return self->GetPosition();
-}
-
-EWXWEXPORT(void,wxSpinEvent_SetPosition)(wxSpinEvent* self,int pos)
-{
-        self->SetPosition(pos);
-}
-
-EWXWEXPORT(int,wxTimerEvent_GetInterval)(wxTimerEvent* self)
-{
-        return self->GetInterval();
-}
-
-EWXWEXPORT(int,wxCalendarEvent_GetWeekDay)(wxCalendarEvent* self)
-{
-        return self->GetWeekDay();
-}
-
-EWXWEXPORT(void,wxCalendarEvent_GetDate)(wxCalendarEvent* self,wxDateTime* _dte)
-{
-        *_dte = self->GetDate();
-}
-
-
-EWXWEXPORT(int,wxScrollEvent_GetOrientation)(wxScrollEvent* self)
-{
-        return self->GetOrientation();
-}
-
-EWXWEXPORT(int,wxScrollEvent_GetPosition)(wxScrollEvent* self)
-{
-        return self->GetPosition();
-}
-
-EWXWEXPORT(wxPoint*,wxHelpEvent_GetPosition)(wxHelpEvent* self)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->GetPosition();
-	return pt;
-}
-
-EWXWEXPORT(void,wxHelpEvent_SetPosition)(wxHelpEvent* self,int x,int y)
-{
-        self->SetPosition(wxPoint(x, y));
-}
-
-EWXWEXPORT(wxString*,wxHelpEvent_GetLink)(wxHelpEvent* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetLink();
-        return result;
-}
-
-EWXWEXPORT(void,wxHelpEvent_SetLink)(wxHelpEvent* self,wxString* link)
-{
-        self->SetLink(*link);
-}
-
-EWXWEXPORT(wxString*,wxHelpEvent_GetTarget)(wxHelpEvent* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetTarget();
-        return result;
-}
-
-EWXWEXPORT(void,wxHelpEvent_SetTarget)(wxHelpEvent* self,wxString* target)
-{
-        self->SetTarget(*target);
-}
-
-EWXWEXPORT(bool,wxPropertyGridEvent_HasProperty)(wxPropertyGridEvent* self)
-{
-        return self->GetProperty() != 0;
-}
-
-EWXWEXPORT(wxPGProperty*,wxPropertyGridEvent_GetProperty)(wxPropertyGridEvent* self)
-{
-#if defined(wxUSE_PROPGRID)
-        wxPGProperty* const prop = self->GetProperty();
-        return prop == 0 ? new wxPGProperty() : prop;
-#else
-        return NULL;
-#endif
-}
-
-////////////////////////////////////////////////////////////////////////////////
-// Event wrappers
-////////////////////////////////////////////////////////////////////////////////
-
-MAKE_EVENT_WRAPPER(EVT_NULL)
-MAKE_EVENT_WRAPPER(EVT_FIRST)
-
-#if wxUSE_AUI
-// from aui/auibar.h
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_RIGHT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_BEGIN_DRAG)
-
-// from aui/auibook.h
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BUTTON)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_END_DRAG)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_DRAG_MOTION)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_ALLOW_DND)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_DRAG_DONE)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BG_DCLICK)
-
-// from aui/framemanager.h
-MAKE_EVENT_WRAPPER(EVT_AUI_PANE_BUTTON)
-MAKE_EVENT_WRAPPER(EVT_AUI_PANE_CLOSE)
-MAKE_EVENT_WRAPPER(EVT_AUI_PANE_MAXIMIZE)
-MAKE_EVENT_WRAPPER(EVT_AUI_PANE_RESTORE)
-MAKE_EVENT_WRAPPER(EVT_AUI_RENDER)
-MAKE_EVENT_WRAPPER(EVT_AUI_FIND_MANAGER)
-#else
-// from aui/auibar.h
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_RIGHT_CLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_BEGIN_DRAG)
-
-// from aui/auibook.h
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BUTTON)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_END_DRAG)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_DRAG_MOTION)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_ALLOW_DND)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_DRAG_DONE)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BG_DCLICK)
-
-// from aui/framemanager.h
-MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_PANE_BUTTON)
-MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_PANE_CLOSE)
-MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_PANE_MAXIMIZE)
-MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_PANE_RESTORE)
-MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_RENDER)
-MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_FIND_MANAGER)
-#endif // wxUSE_AUI
-
-// from calctrl.h
-#if wxUSE_CALENDARCTRL
-MAKE_EVENT_WRAPPER(EVT_CALENDAR_SEL_CHANGED)
-#if (wxVERSION_NUMBER >= 2900)
- MAKE_EVENT_WRAPPER(EVT_CALENDAR_PAGE_CHANGED)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_CALENDAR_PAGE_CHANGED)
-#endif
-MAKE_EVENT_WRAPPER(EVT_CALENDAR_DOUBLECLICKED)
-MAKE_EVENT_WRAPPER(EVT_CALENDAR_WEEKDAY_CLICKED)
-#if (wxVERSION_NUMBER >= 2900)
- MAKE_EVENT_WRAPPER(EVT_CALENDAR_WEEK_CLICKED)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_CALENDAR_WEEK_CLICKED)
-#endif
-MAKE_EVENT_WRAPPER(EVT_CALENDAR_DAY_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_CALENDAR_MONTH_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_CALENDAR_YEAR_CHANGED)
-#endif //wxUSE_CALENDARCTRL
-
-// from choicebook.h
-#if wxUSE_CHOICEBOOK
-MAKE_EVENT_WRAPPER(EVT_COMMAND_CHOICEBOOK_PAGE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_CHOICEBOOK_PAGE_CHANGING)
-#endif
-
-// from clipbrd.h
-#if (wxVERSION_NUMBER >= 2900) && wxUSE_CLIPBOARD
- MAKE_EVENT_WRAPPER(EVT_CLIPBOARD_CHANGED)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_CLIPBOARD_CHANGED)
-#endif
-
-// from clrpicker.h
-#if wxUSE_COLOURPICKERCTRL
-MAKE_EVENT_WRAPPER(EVT_COMMAND_COLOURPICKER_CHANGED)
-#endif
-
-// from collpane.h
-#if wxUSE_COLLPANE
-MAKE_EVENT_WRAPPER(EVT_COMMAND_COLLPANE_CHANGED)
-#endif
-
-// from dataview.h
-#if (wxVERSION_NUMBER >= 2900) && wxUSE_DATAVIEWCTRL
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_SELECTION_CHANGED)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_ACTIVATED)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_COLLAPSED)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EXPANDED)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_COLLAPSING)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EXPANDING)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_START_EDITING)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_SORTED)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_REORDERED)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_CACHE_HINT)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_DROP)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_SELECTION_CHANGED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_ACTIVATED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_COLLAPSED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EXPANDED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_COLLAPSING)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EXPANDING)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_START_EDITING)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_SORTED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_REORDERED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_CACHE_HINT)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_DROP)
-#endif
-
-// from dateevt.h
-MAKE_EVENT_WRAPPER(EVT_DATE_CHANGED)
-
-// from dialog.h
-#if (wxVERSION_NUMBER >= 2900)
- MAKE_EVENT_WRAPPER(EVT_WINDOW_MODAL_DIALOG_CLOSED)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_WINDOW_MODAL_DIALOG_CLOSED)
-#endif
-
-// from dialup.h - does anyone even care about this stuff these days?
-#if wxUSE_DIALUP_MANAGER
-MAKE_EVENT_WRAPPER(EVT_DIALUP_CONNECTED)
-MAKE_EVENT_WRAPPER(EVT_DIALUP_DISCONNECTED)
-#endif
-
-// from event.h
-MAKE_EVENT_WRAPPER(EVT_COMMAND_BUTTON_CLICKED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_CHECKBOX_CLICKED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_CHOICE_SELECTED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LISTBOX_SELECTED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LISTBOX_DOUBLECLICKED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_CHECKLISTBOX_TOGGLED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_MENU_SELECTED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_SLIDER_UPDATED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RADIOBOX_SELECTED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RADIOBUTTON_SELECTED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_VLBOX_SELECTED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_COMBOBOX_SELECTED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOL_RCLICKED)
-#if (wxVERSION_NUMBER >= 2900)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOL_DROPDOWN_CLICKED)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_TOOL_DROPDOWN_CLICKED)
-#endif
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOL_ENTER)
-#if (wxVERSION_NUMBER >= 2900)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_COMBOBOX_DROPDOWN)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_COMBOBOX_CLOSEUP)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_THREAD)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_COMBOBOX_DROPDOWN)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_COMBOBOX_CLOSEUP)
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_THREAD)
-#endif
-MAKE_EVENT_WRAPPER(EVT_LEFT_DOWN)
-MAKE_EVENT_WRAPPER(EVT_LEFT_UP)
-MAKE_EVENT_WRAPPER(EVT_MIDDLE_DOWN)
-MAKE_EVENT_WRAPPER(EVT_MIDDLE_UP)
-MAKE_EVENT_WRAPPER(EVT_RIGHT_DOWN)
-MAKE_EVENT_WRAPPER(EVT_RIGHT_UP)
-MAKE_EVENT_WRAPPER(EVT_MOTION)
-MAKE_EVENT_WRAPPER(EVT_ENTER_WINDOW)
-MAKE_EVENT_WRAPPER(EVT_LEAVE_WINDOW)
-MAKE_EVENT_WRAPPER(EVT_LEFT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_MIDDLE_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_RIGHT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_SET_FOCUS)
-MAKE_EVENT_WRAPPER(EVT_KILL_FOCUS)
-MAKE_EVENT_WRAPPER(EVT_CHILD_FOCUS)
-MAKE_EVENT_WRAPPER(EVT_MOUSEWHEEL)
-#if (wxVERSION_NUMBER >= 2900)
- MAKE_EVENT_WRAPPER(EVT_AUX1_DOWN)
- MAKE_EVENT_WRAPPER(EVT_AUX1_UP)
- MAKE_EVENT_WRAPPER(EVT_AUX1_DCLICK)
- MAKE_EVENT_WRAPPER(EVT_AUX2_DOWN)
- MAKE_EVENT_WRAPPER(EVT_AUX2_UP)
- MAKE_EVENT_WRAPPER(EVT_AUX2_DCLICK)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_AUX1_DOWN)
- MAKE_UNDEFEVENT_WRAPPER(EVT_AUX1_UP)
- MAKE_UNDEFEVENT_WRAPPER(EVT_AUX1_DCLICK)
- MAKE_UNDEFEVENT_WRAPPER(EVT_AUX2_DOWN)
- MAKE_UNDEFEVENT_WRAPPER(EVT_AUX2_UP)
- MAKE_UNDEFEVENT_WRAPPER(EVT_AUX2_DCLICK)
-#endif
-MAKE_EVENT_WRAPPER(EVT_CHAR)
-MAKE_EVENT_WRAPPER(EVT_CHAR_HOOK)
-MAKE_EVENT_WRAPPER(EVT_NAVIGATION_KEY)
-MAKE_EVENT_WRAPPER(EVT_KEY_DOWN)
-MAKE_EVENT_WRAPPER(EVT_KEY_UP)
-
-#if wxUSE_HOTKEY
-MAKE_EVENT_WRAPPER(EVT_HOTKEY)
-#else
-MAKE_UNDEFEVENT_WRAPPER(EVT_HOTKEY)
-#endif
-
-MAKE_EVENT_WRAPPER(EVT_SET_CURSOR)
-MAKE_EVENT_WRAPPER(EVT_SCROLL_TOP)
-MAKE_EVENT_WRAPPER(EVT_SCROLL_BOTTOM)
-MAKE_EVENT_WRAPPER(EVT_SCROLL_LINEUP)
-MAKE_EVENT_WRAPPER(EVT_SCROLL_LINEDOWN)
-MAKE_EVENT_WRAPPER(EVT_SCROLL_PAGEUP)
-MAKE_EVENT_WRAPPER(EVT_SCROLL_PAGEDOWN)
-MAKE_EVENT_WRAPPER(EVT_SCROLL_THUMBTRACK)
-MAKE_EVENT_WRAPPER(EVT_SCROLL_THUMBRELEASE)
-MAKE_EVENT_WRAPPER(EVT_SCROLL_CHANGED)
-
-#if (wxVERSION_NUMBER >= 2900) && wxUSE_SPINBTN
- MAKE_EVENT_WRAPPER(EVT_SPIN_UP)
- MAKE_EVENT_WRAPPER(EVT_SPIN_DOWN)
- MAKE_EVENT_WRAPPER(EVT_SPIN)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_SPIN_UP)
- MAKE_UNDEFEVENT_WRAPPER(EVT_SPIN_DOWN)
- MAKE_UNDEFEVENT_WRAPPER(EVT_SPIN)
-#endif
-
-MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_TOP)
-MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_BOTTOM)
-MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_LINEUP)
-MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_LINEDOWN)
-MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_PAGEUP)
-MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_PAGEDOWN)
-MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_THUMBTRACK)
-MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_THUMBRELEASE)
-MAKE_EVENT_WRAPPER(EVT_SIZE)
-MAKE_EVENT_WRAPPER(EVT_MOVE)
-MAKE_EVENT_WRAPPER(EVT_CLOSE_WINDOW)
-MAKE_EVENT_WRAPPER(EVT_END_SESSION)
-MAKE_EVENT_WRAPPER(EVT_QUERY_END_SESSION)
-MAKE_EVENT_WRAPPER(EVT_ACTIVATE_APP)
-MAKE_EVENT_WRAPPER(EVT_ACTIVATE)
-MAKE_EVENT_WRAPPER(EVT_CREATE)
-MAKE_EVENT_WRAPPER(EVT_DESTROY)
-MAKE_EVENT_WRAPPER(EVT_SHOW)
-MAKE_EVENT_WRAPPER(EVT_ICONIZE)
-MAKE_EVENT_WRAPPER(EVT_MAXIMIZE)
-MAKE_EVENT_WRAPPER(EVT_MOUSE_CAPTURE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_MOUSE_CAPTURE_LOST)
-MAKE_EVENT_WRAPPER(EVT_PAINT)
-MAKE_EVENT_WRAPPER(EVT_ERASE_BACKGROUND)
-MAKE_EVENT_WRAPPER(EVT_NC_PAINT)
-MAKE_EVENT_WRAPPER(EVT_MENU_OPEN)
-MAKE_EVENT_WRAPPER(EVT_MENU_CLOSE)
-MAKE_EVENT_WRAPPER(EVT_MENU_HIGHLIGHT)
-MAKE_EVENT_WRAPPER(EVT_CONTEXT_MENU)
-MAKE_EVENT_WRAPPER(EVT_SYS_COLOUR_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_DISPLAY_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_QUERY_NEW_PALETTE)
-MAKE_EVENT_WRAPPER(EVT_PALETTE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_JOY_BUTTON_DOWN)
-MAKE_EVENT_WRAPPER(EVT_JOY_BUTTON_UP)
-MAKE_EVENT_WRAPPER(EVT_JOY_MOVE)
-MAKE_EVENT_WRAPPER(EVT_JOY_ZMOVE)
-MAKE_EVENT_WRAPPER(EVT_DROP_FILES)
-MAKE_EVENT_WRAPPER(EVT_INIT_DIALOG)
-MAKE_EVENT_WRAPPER(EVT_IDLE)
-MAKE_EVENT_WRAPPER(EVT_UPDATE_UI)
-MAKE_EVENT_WRAPPER(EVT_SIZING)
-MAKE_EVENT_WRAPPER(EVT_MOVING)
-# if (wxVERSION_NUMBER >= 2900)
- MAKE_EVENT_WRAPPER(EVT_MOVE_START)
- MAKE_EVENT_WRAPPER(EVT_MOVE_END)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_MOVE_START)
- MAKE_UNDEFEVENT_WRAPPER(EVT_MOVE_END)
-#endif
-MAKE_EVENT_WRAPPER(EVT_HIBERNATE)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_COPY)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_CUT)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_PASTE)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LEFT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LEFT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIGHT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIGHT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_SET_FOCUS)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_KILL_FOCUS)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_ENTER)
-MAKE_EVENT_WRAPPER(EVT_HELP)
-MAKE_EVENT_WRAPPER(EVT_DETAILED_HELP)
-
-// these 2 events are the same
-#define wxEVT_COMMAND_TOOL_CLICKED wxEVT_COMMAND_MENU_SELECTED
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOL_CLICKED)
-
-// from filectrl.h
-#if (wxVERSION_NUMBER >= 2900) && wxUSE_FILECTRL
-MAKE_EVENT_WRAPPER(EVT_FILECTRL_SELECTIONCHANGED)
-MAKE_EVENT_WRAPPER(EVT_FILECTRL_FILEACTIVATED)
-MAKE_EVENT_WRAPPER(EVT_FILECTRL_FOLDERCHANGED)
-MAKE_EVENT_WRAPPER(EVT_FILECTRL_FILTERCHANGED)
-#else
-MAKE_UNDEFEVENT_WRAPPER(EVT_FILECTRL_SELECTIONCHANGED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_FILECTRL_FILEACTIVATED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_FILECTRL_FOLDERCHANGED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_FILECTRL_FILTERCHANGED)
-#endif
-
-// from filepicker.h
-#if wxUSE_FILEPICKERCTRL || wxUSE_DIRPICKERCTRL
-MAKE_EVENT_WRAPPER(EVT_COMMAND_FILEPICKER_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_DIRPICKER_CHANGED)
-#endif
-
-// from fontpicker.h
-#if wxUSE_FONTPICKERCTRL
-MAKE_EVENT_WRAPPER(EVT_COMMAND_FONTPICKER_CHANGED)
-#endif
-
-// from fswatcher.h
-#if (wxVERSION_NUMBER >= 2900) && wxUSE_FSWATCHER
-MAKE_EVENT_WRAPPER(EVT_FSWATCHER)
-#else
-MAKE_UNDEFEVENT_WRAPPER(EVT_FSWATCHER)
-#endif
-
-// from generic/grid.h
-#if wxUSE_GRID
-MAKE_EVENT_WRAPPER(EVT_GRID_CELL_LEFT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_GRID_CELL_RIGHT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_GRID_CELL_LEFT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_GRID_CELL_RIGHT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_GRID_LABEL_LEFT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_GRID_LABEL_RIGHT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_GRID_LABEL_LEFT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_GRID_LABEL_RIGHT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_GRID_ROW_SIZE)
-MAKE_EVENT_WRAPPER(EVT_GRID_COL_SIZE)
-MAKE_EVENT_WRAPPER(EVT_GRID_RANGE_SELECT)
-#if (wxVERSION_NUMBER >= 2900)
- MAKE_EVENT_WRAPPER(EVT_GRID_CELL_CHANGING)
- MAKE_EVENT_WRAPPER(EVT_GRID_CELL_CHANGED)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_GRID_CELL_CHANGING)
- MAKE_UNDEFEVENT_WRAPPER(EVT_GRID_CELL_CHANGED)
-#endif
-MAKE_EVENT_WRAPPER(EVT_GRID_SELECT_CELL)
-MAKE_EVENT_WRAPPER(EVT_GRID_EDITOR_SHOWN)
-MAKE_EVENT_WRAPPER(EVT_GRID_EDITOR_HIDDEN)
-MAKE_EVENT_WRAPPER(EVT_GRID_EDITOR_CREATED)
-MAKE_EVENT_WRAPPER(EVT_GRID_CELL_BEGIN_DRAG)
-MAKE_EVENT_WRAPPER(EVT_GRID_COL_MOVE)
-#if (wxVERSION_NUMBER >= 2900)
- MAKE_EVENT_WRAPPER(EVT_GRID_COL_SORT)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_GRID_COL_SORT)
-#endif
-#endif
-
-// from laywin.h
-MAKE_EVENT_WRAPPER(EVT_QUERY_LAYOUT_INFO)
-MAKE_EVENT_WRAPPER(EVT_CALCULATE_LAYOUT)
-
-// from sashwin.h
-#if wxUSE_SASH
-MAKE_EVENT_WRAPPER(EVT_SASH_DRAGGED)
-#endif
-
-// from headerctrl.h
-#if (wxVERSION_NUMBER >= 2900) && wxUSE_HEADERCTRL
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_RIGHT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_MIDDLE_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_RIGHT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_MIDDLE_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_SEPARATOR_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_BEGIN_RESIZE)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_RESIZING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_END_RESIZE)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_BEGIN_REORDER)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_END_REORDER)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_DRAGGING_CANCELLED)
-#else
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_CLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_RIGHT_CLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_MIDDLE_CLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_DCLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_RIGHT_DCLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_MIDDLE_DCLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_SEPARATOR_DCLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_BEGIN_RESIZE)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_RESIZING)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_END_RESIZE)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_BEGIN_REORDER)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_END_REORDER)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_DRAGGING_CANCELLED)
-#endif
-
-// from html/htmlwin.h
-#if wxUSE_HTML
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HTML_CELL_CLICKED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HTML_CELL_HOVER)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HTML_LINK_CLICKED)
-#endif
-
-// from hyperlink.h
-#if wxUSE_HYPERLINKCTRL
-MAKE_EVENT_WRAPPER(EVT_COMMAND_HYPERLINK)
-#endif
-
-// from listbase.h
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_BEGIN_DRAG)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_BEGIN_RDRAG)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_BEGIN_LABEL_EDIT)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_END_LABEL_EDIT)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_DELETE_ITEM)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_DELETE_ALL_ITEMS)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_SELECTED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_DESELECTED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_KEY_DOWN)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_INSERT_ITEM)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_COL_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_RIGHT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_MIDDLE_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_ACTIVATED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_CACHE_HINT)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_COL_RIGHT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_COL_BEGIN_DRAG)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_COL_DRAGGING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_COL_END_DRAG)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_FOCUSED)
-
-// from listbook.h
-#if wxUSE_LISTBOOK
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LISTBOOK_PAGE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_LISTBOOK_PAGE_CHANGING)
-#endif
-
-// from notebook.h
-#if wxUSE_NOTEBOOK
-MAKE_EVENT_WRAPPER(EVT_COMMAND_NOTEBOOK_PAGE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_NOTEBOOK_PAGE_CHANGING)
-#endif
-
-// from power.h
-#ifdef wxHAS_POWER_EVENTS
-MAKE_EVENT_WRAPPER(EVT_POWER_SUSPENDING)
-MAKE_EVENT_WRAPPER(EVT_POWER_SUSPENDED)
-MAKE_EVENT_WRAPPER(EVT_POWER_SUSPEND_CANCEL)
-MAKE_EVENT_WRAPPER(EVT_POWER_RESUME)
-#else
-MAKE_UNDEFEVENT_WRAPPER(EVT_POWER_SUSPENDING)
-MAKE_UNDEFEVENT_WRAPPER(EVT_POWER_SUSPENDED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_POWER_SUSPEND_CANCEL)
-MAKE_UNDEFEVENT_WRAPPER(EVT_POWER_RESUME)
-#endif
-
-// from process.h
-MAKE_EVENT_WRAPPER(EVT_END_PROCESS)
-
-// from propgrid/propgrid.h
-#if wxUSE_PROPGRID
- MAKE_EVENT_WRAPPER(EVT_PG_SELECTED)
- MAKE_EVENT_WRAPPER(EVT_PG_CHANGING)
- MAKE_EVENT_WRAPPER(EVT_PG_CHANGED)
- MAKE_EVENT_WRAPPER(EVT_PG_HIGHLIGHTED)
- MAKE_EVENT_WRAPPER(EVT_PG_RIGHT_CLICK)
- MAKE_EVENT_WRAPPER(EVT_PG_PAGE_CHANGED)
- MAKE_EVENT_WRAPPER(EVT_PG_ITEM_COLLAPSED)
- MAKE_EVENT_WRAPPER(EVT_PG_ITEM_EXPANDED)
- MAKE_EVENT_WRAPPER(EVT_PG_DOUBLE_CLICK)
-#else
- MAKE_UNDEFEVENT_WRAPPER(EVT_PG_SELECTED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_PG_CHANGING)
- MAKE_UNDEFEVENT_WRAPPER(EVT_PG_CHANGED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_PG_HIGHLIGHTED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_PG_RIGHT_CLICK)
- MAKE_UNDEFEVENT_WRAPPER(EVT_PG_PAGE_CHANGED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_PG_ITEM_COLLAPSED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_PG_ITEM_EXPANDED)
- MAKE_UNDEFEVENT_WRAPPER(EVT_PG_DOUBLE_CLICK)
-#endif
-
-// from ribbon/bar.h
-#if wxUSE_RIBBON
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_PAGE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_PAGE_CHANGING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_MIDDLE_DOWN)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_MIDDLE_UP)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_RIGHT_DOWN)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_RIGHT_UP)
-
-// from ribbon/buttonbar.h
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBUTTON_CLICKED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED)
-
-// from ribbon/gallery.h
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONGALLERY_HOVER_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONGALLERY_SELECTED)
-
-// from ribbon/toolbar.h
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONTOOL_CLICKED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONTOOL_DROPDOWN_CLICKED)
-#else
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_PAGE_CHANGED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_PAGE_CHANGING)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_MIDDLE_DOWN)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_MIDDLE_UP)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_RIGHT_DOWN)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_RIGHT_UP)
-
-// from ribbon/buttonbar.h
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBUTTON_CLICKED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED)
-
-// from ribbon/gallery.h
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONGALLERY_HOVER_CHANGED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONGALLERY_SELECTED)
-
-// from ribbon/toolbar.h
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONTOOL_CLICKED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONTOOL_DROPDOWN_CLICKED)
-#endif
-
-// from richtext/richtextctrl.h
-#if wxUSE_RICHTEXT
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_LEFT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_RIGHT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_MIDDLE_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_LEFT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_RETURN)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_CHARACTER)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_DELETE)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_STYLESHEET_REPLACING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_STYLESHEET_REPLACED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_CONTENT_INSERTED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_CONTENT_DELETED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_STYLE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_SELECTION_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_BUFFER_RESET)
-#endif
-
-// from socket.h
-#if wxUSE_SOCKETS
-MAKE_EVENT_WRAPPER(EVT_SOCKET)
-#endif
-
-// from spinctrl.h
-#if wxUSE_SPINCTRL
-MAKE_EVENT_WRAPPER(EVT_COMMAND_SPINCTRL_UPDATED)
-# if (wxVERSION_NUMBER >= 2900)
- MAKE_EVENT_WRAPPER(EVT_COMMAND_SPINCTRLDOUBLE_UPDATED)
-# else
- MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_SPINCTRLDOUBLE_UPDATED)
-# endif
-#endif
-
-// from splitter.h
-MAKE_EVENT_WRAPPER(EVT_COMMAND_SPLITTER_SASH_POS_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_SPLITTER_SASH_POS_CHANGING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_SPLITTER_DOUBLECLICKED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_SPLITTER_UNSPLIT)
-
-// from srchctrl.h
-#if wxUSE_SEARCHCTRL
-MAKE_EVENT_WRAPPER(EVT_COMMAND_SEARCHCTRL_CANCEL_BTN)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_SEARCHCTRL_SEARCH_BTN)
-#endif
-
-// from textctrl.h
-#if wxUSE_TEXTCTRL
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_UPDATED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_ENTER)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_URL)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_MAXLEN)
-#endif
-
-// from tglbtn.h
-#if wxUSE_TOGGLEBTN
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TOGGLEBUTTON_CLICKED)
-#endif
-
-// from timer.h
-#if wxUSE_TIMER
-MAKE_EVENT_WRAPPER(EVT_TIMER)
-#endif
-
-// from toolbook.h
-#if wxUSE_TOOLBOOK
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOLBOOK_PAGE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOLBOOK_PAGE_CHANGING)
-#endif
-
-// from treebase.h
-#if wxUSE_TREECTRL
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_BEGIN_DRAG)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_BEGIN_RDRAG)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_BEGIN_LABEL_EDIT)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_END_LABEL_EDIT)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_DELETE_ITEM)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_GET_INFO)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_SET_INFO)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_EXPANDED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_EXPANDING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_COLLAPSED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_COLLAPSING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_SEL_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_SEL_CHANGING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_KEY_DOWN)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_ACTIVATED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_RIGHT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_MIDDLE_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_END_DRAG)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_STATE_IMAGE_CLICK)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_GETTOOLTIP)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_MENU)
-#endif
-
-// from treebook.h
-#if wxUSE_TREEBOOK
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREEBOOK_PAGE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREEBOOK_PAGE_CHANGING)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREEBOOK_NODE_COLLAPSED)
-MAKE_EVENT_WRAPPER(EVT_COMMAND_TREEBOOK_NODE_EXPANDED)
-#endif
-
-// from wizard.h
-#if wxUSE_WIZARDDLG
-MAKE_EVENT_WRAPPER(EVT_WIZARD_PAGE_CHANGED)
-MAKE_EVENT_WRAPPER(EVT_WIZARD_PAGE_CHANGING)
-MAKE_EVENT_WRAPPER(EVT_WIZARD_CANCEL)
-MAKE_EVENT_WRAPPER(EVT_WIZARD_HELP)
-MAKE_EVENT_WRAPPER(EVT_WIZARD_FINISHED)
-MAKE_EVENT_WRAPPER(EVT_WIZARD_PAGE_SHOWN)
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// Keypress wrappers
-////////////////////////////////////////////////////////////////////////////////
-
-#define MAKE_KEYPRESS_WRAPPER(key) EWXWEXPORT(int,exp##key)() { return (int)WX##key; }
-
-MAKE_KEYPRESS_WRAPPER(K_BACK)
-MAKE_KEYPRESS_WRAPPER(K_TAB)
-MAKE_KEYPRESS_WRAPPER(K_RETURN)
-MAKE_KEYPRESS_WRAPPER(K_ESCAPE)
-MAKE_KEYPRESS_WRAPPER(K_SPACE)
-MAKE_KEYPRESS_WRAPPER(K_DELETE)
-MAKE_KEYPRESS_WRAPPER(K_START)
-MAKE_KEYPRESS_WRAPPER(K_LBUTTON)
-MAKE_KEYPRESS_WRAPPER(K_RBUTTON)
-MAKE_KEYPRESS_WRAPPER(K_CANCEL)
-MAKE_KEYPRESS_WRAPPER(K_MBUTTON)
-MAKE_KEYPRESS_WRAPPER(K_CLEAR)
-MAKE_KEYPRESS_WRAPPER(K_SHIFT)
-MAKE_KEYPRESS_WRAPPER(K_ALT)
-MAKE_KEYPRESS_WRAPPER(K_CONTROL)
-MAKE_KEYPRESS_WRAPPER(K_MENU)
-MAKE_KEYPRESS_WRAPPER(K_PAUSE)
-MAKE_KEYPRESS_WRAPPER(K_CAPITAL)
-MAKE_KEYPRESS_WRAPPER(K_END)
-MAKE_KEYPRESS_WRAPPER(K_HOME)
-MAKE_KEYPRESS_WRAPPER(K_LEFT)
-MAKE_KEYPRESS_WRAPPER(K_UP)
-MAKE_KEYPRESS_WRAPPER(K_RIGHT)
-MAKE_KEYPRESS_WRAPPER(K_DOWN)
-MAKE_KEYPRESS_WRAPPER(K_SELECT)
-MAKE_KEYPRESS_WRAPPER(K_PRINT)
-MAKE_KEYPRESS_WRAPPER(K_EXECUTE)
-MAKE_KEYPRESS_WRAPPER(K_SNAPSHOT)
-MAKE_KEYPRESS_WRAPPER(K_INSERT)
-MAKE_KEYPRESS_WRAPPER(K_HELP)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD0)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD1)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD2)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD3)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD4)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD5)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD6)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD7)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD8)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD9)
-MAKE_KEYPRESS_WRAPPER(K_MULTIPLY)
-MAKE_KEYPRESS_WRAPPER(K_ADD)
-MAKE_KEYPRESS_WRAPPER(K_SEPARATOR)
-MAKE_KEYPRESS_WRAPPER(K_SUBTRACT)
-MAKE_KEYPRESS_WRAPPER(K_DECIMAL)
-MAKE_KEYPRESS_WRAPPER(K_DIVIDE)
-MAKE_KEYPRESS_WRAPPER(K_F1)
-MAKE_KEYPRESS_WRAPPER(K_F2)
-MAKE_KEYPRESS_WRAPPER(K_F3)
-MAKE_KEYPRESS_WRAPPER(K_F4)
-MAKE_KEYPRESS_WRAPPER(K_F5)
-MAKE_KEYPRESS_WRAPPER(K_F6)
-MAKE_KEYPRESS_WRAPPER(K_F7)
-MAKE_KEYPRESS_WRAPPER(K_F8)
-MAKE_KEYPRESS_WRAPPER(K_F9)
-MAKE_KEYPRESS_WRAPPER(K_F10)
-MAKE_KEYPRESS_WRAPPER(K_F11)
-MAKE_KEYPRESS_WRAPPER(K_F12)
-MAKE_KEYPRESS_WRAPPER(K_F13)
-MAKE_KEYPRESS_WRAPPER(K_F14)
-MAKE_KEYPRESS_WRAPPER(K_F15)
-MAKE_KEYPRESS_WRAPPER(K_F16)
-MAKE_KEYPRESS_WRAPPER(K_F17)
-MAKE_KEYPRESS_WRAPPER(K_F18)
-MAKE_KEYPRESS_WRAPPER(K_F19)
-MAKE_KEYPRESS_WRAPPER(K_F20)
-MAKE_KEYPRESS_WRAPPER(K_F21)
-MAKE_KEYPRESS_WRAPPER(K_F22)
-MAKE_KEYPRESS_WRAPPER(K_F23)
-MAKE_KEYPRESS_WRAPPER(K_F24)
-MAKE_KEYPRESS_WRAPPER(K_NUMLOCK)
-MAKE_KEYPRESS_WRAPPER(K_SCROLL)
-MAKE_KEYPRESS_WRAPPER(K_PAGEUP)
-MAKE_KEYPRESS_WRAPPER(K_PAGEDOWN)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_SPACE)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_TAB)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_ENTER)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_F1)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_F2)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_F3)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_F4)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_HOME)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_LEFT)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_UP)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_RIGHT)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_DOWN)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_PAGEUP)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_PAGEDOWN)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_END)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_BEGIN)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_INSERT)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_DELETE)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_EQUAL)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_MULTIPLY)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_ADD)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_SEPARATOR)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_SUBTRACT)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_DECIMAL)
-MAKE_KEYPRESS_WRAPPER(K_NUMPAD_DIVIDE)
-MAKE_KEYPRESS_WRAPPER(K_WINDOWS_LEFT)
-MAKE_KEYPRESS_WRAPPER(K_WINDOWS_RIGHT)
-MAKE_KEYPRESS_WRAPPER(K_WINDOWS_MENU)
-MAKE_KEYPRESS_WRAPPER(K_COMMAND)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL1)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL2)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL3)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL4)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL5)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL6)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL7)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL8)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL9)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL10)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL11)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL12)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL13)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL14)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL15)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL16)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL17)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL18)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL19)
-MAKE_KEYPRESS_WRAPPER(K_SPECIAL20)
-}
+#include "wrapper.h"
+#include "wx/process.h"
+#include "wx/dialup.h"
+
+#include "wx/power.h"
+
+#if defined(wxUSE_TAB_DIALOG) && (wxUSE_TAB_DIALOG==0)
+# undef wxUSE_TAB_DIALOG
+#endif
+
+#ifdef USE_CONTRIB
+#include "wx/plot/plot.h"
+#include "wx/gizmos/dynamicsash.h"
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// Included as we need event wrappers. All have guards in the headers
+// so don't repeat them here...
+////////////////////////////////////////////////////////////////////////////////
+#include "wx/aui/aui.h"
+#include "wx/choicebk.h"
+#include "wx/clrpicker.h"
+#include "wx/collpane.h"
+#include "wx/dataview.h"
+#include "wx/fdrepdlg.h"
+#include "wx/filectrl.h"
+#include "wx/filepicker.h"
+#include "wx/fontpicker.h"
+#include "wx/fswatcher.h"
+#include "wx/headerctrl.h"
+#include "wx/hyperlink.h"
+#include "wx/listbook.h"
+#include "wx/mediactrl.h"
+#include "wx/propgrid/propgrid.h"
+#include "wx/ribbon/bar.h"
+#include "wx/ribbon/buttonbar.h"
+#include "wx/ribbon/gallery.h"
+#include "wx/ribbon/toolbar.h"
+#include "wx/richtext/richtextctrl.h"
+#include "wx/srchctrl.h"
+#include "wx/stc/stc.h"
+#include "wx/taskbar.h"
+#include "wx/textctrl.h"
+#include "wx/tglbtn.h"
+#include "wx/toolbook.h"
+#include "wx/treebook.h"
+
+extern "C"
+{
+
+EWXWEXPORT(wxCommandEvent*,wxCommandEvent_Create)(int _typ,int _id)
+{
+        return new wxCommandEvent((wxEventType)_typ, _id);
+}
+
+EWXWEXPORT(void,wxCommandEvent_Delete)(wxCommandEvent* self)
+{
+        delete self;
+}
+
+EWXWEXPORT(int,wxEvent_GetTimestamp)(wxEvent* self)
+{
+        return self->GetTimestamp();
+}
+
+EWXWEXPORT(void,wxEvent_Skip)(wxEvent* self)
+{
+        self->Skip();
+}
+
+EWXWEXPORT(int,wxEvent_GetEventType)(wxEvent* self)
+{
+        return (int)self->GetEventType();
+}
+
+EWXWEXPORT(void,wxEvent_SetEventType)(wxEvent* self,int typ)
+{
+        self->SetEventType((wxEventType) typ);
+}
+
+EWXWEXPORT(void*,wxEvent_GetEventObject)(wxEvent* self)
+{
+        return (void*)self->GetEventObject();
+}
+
+EWXWEXPORT(void,wxEvent_SetEventObject)(wxEvent* self,wxObject* obj)
+{
+        self->SetEventObject(obj);
+}
+
+EWXWEXPORT(void,wxEvent_SetTimestamp)(wxEvent* self,int ts)
+{
+        self->SetTimestamp((long)ts);
+}
+
+EWXWEXPORT(int,wxEvent_GetId)(wxEvent* self)
+{
+        return self->GetId();
+}
+
+EWXWEXPORT(void,wxEvent_SetId)(wxEvent* self,int Id)
+{
+        self->SetId(Id);
+}
+
+EWXWEXPORT(bool,wxEvent_GetSkipped)(wxEvent* self)
+{
+        return self->GetSkipped();
+}
+
+EWXWEXPORT(bool,wxEvent_IsCommandEvent)(wxEvent* self)
+{
+        return self->IsCommandEvent();
+}
+
+EWXWEXPORT(void,wxEvent_CopyObject)(wxEvent* self,wxObject* object_dest)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*object_dest);
+#endif
+}
+
+EWXWEXPORT(void,wxEvent_SetCallbackUserData)(wxEvent* self,wxObject* obj)
+{
+        self->m_callbackUserData = obj;
+}
+
+EWXWEXPORT(void*,wxEvent_GetCallbackUserData)(wxEvent* self)
+{
+        return (void*)self->m_callbackUserData;
+}
+
+EWXWEXPORT(void,wxCommandEvent_SetClientData)(wxCommandEvent* self,void* clientData)
+{
+        self->SetClientData(clientData);
+}
+
+EWXWEXPORT(void*,wxCommandEvent_GetClientData)(wxCommandEvent* self)
+{
+        return self->GetClientData();
+}
+
+EWXWEXPORT(void,wxCommandEvent_SetClientObject)(wxCommandEvent* self,void* clientObject)
+{
+        self->SetClientObject((wxClientData*)clientObject);
+}
+
+EWXWEXPORT(void*,wxCommandEvent_GetClientObject)(wxCommandEvent* self)
+{
+        return (void*)self->GetClientObject();
+}
+
+EWXWEXPORT(int,wxCommandEvent_GetSelection)(wxCommandEvent* self)
+{
+        return self->GetSelection();
+}
+
+EWXWEXPORT(void,wxCommandEvent_SetString)(wxCommandEvent* self,wxString* s)
+{
+        self->SetString(*s);
+}
+
+EWXWEXPORT(wxString*,wxCommandEvent_GetString)(wxCommandEvent* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetString();
+        return result;
+}
+
+EWXWEXPORT(bool,wxCommandEvent_IsChecked)(wxCommandEvent* self)
+{
+        return self->IsChecked();
+}
+
+EWXWEXPORT(bool,wxCommandEvent_IsSelection)(wxCommandEvent* self)
+{
+        return self->IsSelection();
+}
+
+EWXWEXPORT(void,wxCommandEvent_SetExtraLong)(wxCommandEvent* self,long extraLong)
+{
+        self->SetExtraLong(extraLong);
+}
+
+EWXWEXPORT(long,wxCommandEvent_GetExtraLong)(wxCommandEvent* self)
+{
+        return self->GetExtraLong();
+}
+
+EWXWEXPORT(void,wxCommandEvent_SetInt)(wxCommandEvent* self,int i)
+{
+        self->SetInt(i);
+}
+
+EWXWEXPORT(long,wxCommandEvent_GetInt)(wxCommandEvent* self)
+{
+        return self->GetInt();
+}
+
+EWXWEXPORT(void,wxCommandEvent_CopyObject)(wxCommandEvent* self,wxObject* object_dest)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*object_dest);
+#endif
+}
+
+EWXWEXPORT(void,wxNotifyEvent_Veto)(wxNotifyEvent* self)
+{
+        self->Veto();
+}
+
+EWXWEXPORT(void,wxNotifyEvent_Allow)(wxNotifyEvent* self)
+{
+        self->Allow();
+}
+
+EWXWEXPORT(bool,wxNotifyEvent_IsAllowed)(wxNotifyEvent* self)
+{
+        return self->IsAllowed();
+}
+
+EWXWEXPORT(void,wxNotifyEvent_CopyObject)(wxNotifyEvent* self,wxObject* object_dest)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*object_dest);
+#endif
+}
+
+EWXWEXPORT(int,wxScrollWinEvent_GetOrientation)(wxScrollWinEvent* self)
+{
+        return self->GetOrientation();
+}
+
+EWXWEXPORT(int,wxScrollWinEvent_GetPosition)(wxScrollWinEvent* self)
+{
+        return self->GetPosition();
+}
+
+EWXWEXPORT(void,wxScrollWinEvent_SetOrientation)(wxScrollWinEvent* self,int orient)
+{
+        self->SetOrientation(orient);
+}
+
+EWXWEXPORT(void,wxScrollWinEvent_SetPosition)(wxScrollWinEvent* self,int pos)
+{
+        self->SetPosition(pos);
+}
+
+EWXWEXPORT(bool,wxMouseEvent_IsButton)(wxMouseEvent* self)
+{
+        return self->IsButton();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_ButtonDown)(wxMouseEvent* self,int but)
+{
+#if (wxVERSION_NUMBER < 2900)
+        int _but = but;
+#else
+        wxMouseButton _but = (wxMouseButton) but;
+#endif
+        return self->ButtonDown(_but);
+}
+
+EWXWEXPORT(bool,wxMouseEvent_ButtonDClick)(wxMouseEvent* self,int but)
+{
+#if (wxVERSION_NUMBER < 2900)
+        int _but = but;
+#else
+        wxMouseButton _but = (wxMouseButton) but;
+#endif
+        return self->ButtonDClick(_but);
+}
+
+EWXWEXPORT(bool,wxMouseEvent_ButtonUp)(wxMouseEvent* self,int but)
+{
+#if (wxVERSION_NUMBER < 2900)
+        int _but = but;
+#else
+        wxMouseButton _but = (wxMouseButton) but;
+#endif
+        return self->ButtonUp(_but);
+}
+
+EWXWEXPORT(bool,wxMouseEvent_Button)(wxMouseEvent* self,int but)
+{
+#if (wxVERSION_NUMBER < 2900)
+        int _but = but;
+#else
+        wxMouseButton _but = (wxMouseButton) but;
+#endif
+        return self->Button(_but);
+}
+
+EWXWEXPORT(bool,wxMouseEvent_ButtonIsDown)(wxMouseEvent* self,int but)
+{
+#if (wxVERSION_NUMBER < 2900)
+        int _but = but;
+#else
+        wxMouseButton _but = (wxMouseButton) but;
+#endif
+        return self->ButtonIsDown(_but);
+}
+
+EWXWEXPORT(bool,wxMouseEvent_ControlDown)(wxMouseEvent* self)
+{
+        return self->ControlDown();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_MetaDown)(wxMouseEvent* self)
+{
+        return self->MetaDown();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_AltDown)(wxMouseEvent* self)
+{
+        return self->AltDown();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_ShiftDown)(wxMouseEvent* self)
+{
+        return self->ShiftDown();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_LeftDown)(wxMouseEvent* self)
+{
+        return self->LeftDown();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_MiddleDown)(wxMouseEvent* self)
+{
+        return self->MiddleDown();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_RightDown)(wxMouseEvent* self)
+{
+        return self->RightDown();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_LeftUp)(wxMouseEvent* self)
+{
+        return self->LeftUp();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_MiddleUp)(wxMouseEvent* self)
+{
+        return self->MiddleUp();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_RightUp)(wxMouseEvent* self)
+{
+        return self->RightUp();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_LeftDClick)(wxMouseEvent* self)
+{
+        return self->LeftDClick();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_MiddleDClick)(wxMouseEvent* self)
+{
+        return self->MiddleDClick();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_RightDClick)(wxMouseEvent* self)
+{
+        return self->RightDClick();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_LeftIsDown)(wxMouseEvent* self)
+{
+        return self->LeftIsDown();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_MiddleIsDown)(wxMouseEvent* self)
+{
+        return self->MiddleIsDown();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_RightIsDown)(wxMouseEvent* self)
+{
+        return self->RightIsDown();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_Dragging)(wxMouseEvent* self)
+{
+        return self->Dragging();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_Moving)(wxMouseEvent* self)
+{
+        return self->Moving();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_Entering)(wxMouseEvent* self)
+{
+        return self->Entering();
+}
+
+EWXWEXPORT(bool,wxMouseEvent_Leaving)(wxMouseEvent* self)
+{
+        return self->Leaving();
+}
+
+EWXWEXPORT(wxPoint*,wxMouseEvent_GetPosition)(wxMouseEvent* self)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->GetPosition();
+	return pt;
+}
+
+EWXWEXPORT(wxPoint*,wxMouseEvent_GetLogicalPosition)(wxMouseEvent* self,wxDC* dc)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->GetLogicalPosition(*dc);
+	return pt;
+}
+
+EWXWEXPORT(int,wxMouseEvent_GetX)(wxMouseEvent* self)
+{
+        return self->GetX();
+}
+
+EWXWEXPORT(int,wxMouseEvent_GetY)(wxMouseEvent* self)
+{
+        return self->GetY();
+}
+
+EWXWEXPORT(void,wxMouseEvent_CopyObject)(wxMouseEvent* self,wxObject* object_dest)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*object_dest);
+#endif
+}
+
+EWXWEXPORT(wxCoord,wxSetCursorEvent_GetX)(wxSetCursorEvent* self)
+{
+        return self->GetX();
+}
+
+EWXWEXPORT(wxCoord,wxSetCursorEvent_GetY)(wxSetCursorEvent* self)
+{
+        return self->GetY();
+}
+
+EWXWEXPORT(void,wxSetCursorEvent_SetCursor)(wxSetCursorEvent* self,wxCursor* cursor)
+{
+        self->SetCursor(*cursor);
+}
+
+EWXWEXPORT(wxCursor*,wxSetCursorEvent_GetCursor)(wxSetCursorEvent* self)
+{
+        wxCursor* cur = new wxCursor;
+        *cur = self->GetCursor();
+        return cur;
+}
+
+EWXWEXPORT(bool,wxSetCursorEvent_HasCursor)(wxSetCursorEvent* self)
+{
+        return self->HasCursor();
+}
+
+EWXWEXPORT(bool,wxKeyEvent_ControlDown)(wxKeyEvent* self)
+{
+        return self->ControlDown();
+}
+
+EWXWEXPORT(bool,wxKeyEvent_MetaDown)(wxKeyEvent* self)
+{
+        return self->MetaDown();
+}
+
+EWXWEXPORT(bool,wxKeyEvent_AltDown)(wxKeyEvent* self)
+{
+        return self->AltDown();
+}
+
+EWXWEXPORT(bool,wxKeyEvent_ShiftDown)(wxKeyEvent* self)
+{
+        return self->ShiftDown();
+}
+
+EWXWEXPORT(bool,wxKeyEvent_HasModifiers)(wxKeyEvent* self)
+{
+        return self->HasModifiers();
+}
+
+EWXWEXPORT(int,wxKeyEvent_GetKeyCode)(wxKeyEvent* self)
+{
+        return self->GetKeyCode();
+}
+
+EWXWEXPORT(int,wxKeyEvent_GetModifiers)(wxKeyEvent* self)
+{
+        return self->GetModifiers();
+}
+
+EWXWEXPORT(void,wxKeyEvent_SetKeyCode)(wxKeyEvent* self,int code)
+{
+        self->m_keyCode = code;
+}
+
+EWXWEXPORT(wxPoint*,wxKeyEvent_GetPosition)(wxKeyEvent* self)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->GetPosition();
+	return pt;
+}
+
+EWXWEXPORT(wxCoord,wxKeyEvent_GetX)(wxKeyEvent* self)
+{
+        return self->GetX();
+}
+
+EWXWEXPORT(wxCoord,wxKeyEvent_GetY)(wxKeyEvent* self)
+{
+        return self->GetY();
+}
+
+EWXWEXPORT(void,wxKeyEvent_CopyObject)(wxKeyEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(wxSize*,wxSizeEvent_GetSize)(wxSizeEvent* self)
+{
+	wxSize* s = new wxSize();
+	*s = self->GetSize();
+	return s;
+}
+
+EWXWEXPORT(void,wxSizeEvent_CopyObject)(wxSizeEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(wxPoint*,wxMoveEvent_GetPosition)(wxMoveEvent* self)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->GetPosition();
+	return pt;
+}
+
+EWXWEXPORT(void,wxMoveEvent_CopyObject)(wxMoveEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(wxDC*,wxEraseEvent_GetDC)(wxEraseEvent* self)
+{
+        return self->GetDC();
+}
+
+EWXWEXPORT(void,wxEraseEvent_CopyObject)(wxEraseEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(bool,wxActivateEvent_GetActive)(wxActivateEvent* self)
+{
+        return self->GetActive();
+}
+
+EWXWEXPORT(void,wxActivateEvent_CopyObject)(wxActivateEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(int,wxMenuEvent_GetMenuId)(wxMenuEvent* self)
+{
+        return self->GetMenuId();
+}
+
+EWXWEXPORT(void,wxMenuEvent_CopyObject)(wxMenuEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(void,wxCloseEvent_SetLoggingOff)(wxCloseEvent* self,bool logOff)
+{
+        self->SetLoggingOff(logOff);
+}
+
+EWXWEXPORT(bool,wxCloseEvent_GetLoggingOff)(wxCloseEvent* self)
+{
+        return self->GetLoggingOff();
+}
+
+EWXWEXPORT(void,wxCloseEvent_Veto)(wxCloseEvent* self,bool veto)
+{
+        self->Veto(veto);
+}
+
+EWXWEXPORT(void,wxCloseEvent_SetCanVeto)(wxCloseEvent* self,bool canVeto)
+{
+        self->SetCanVeto(canVeto);
+}
+
+EWXWEXPORT(bool,wxCloseEvent_CanVeto)(wxCloseEvent* self)
+{
+        return self->CanVeto();
+}
+
+EWXWEXPORT(bool,wxCloseEvent_GetVeto)(wxCloseEvent* self)
+{
+        return self->GetVeto();
+}
+
+EWXWEXPORT(void,wxCloseEvent_CopyObject)(wxCloseEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(void,wxShowEvent_SetShow)(wxShowEvent* self,bool show)
+{
+        self->SetShow(show);
+}
+
+EWXWEXPORT(bool,wxShowEvent_IsShown)(wxShowEvent* self)
+{
+#if (wxVERSION_NUMBER < 2900)
+        return self->GetShow();
+#else
+        return self->IsShown();
+#endif
+}
+
+EWXWEXPORT(void,wxShowEvent_CopyObject)(wxShowEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(wxPoint*,wxJoystickEvent_GetPosition)(wxJoystickEvent* self)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->GetPosition();
+	return pt;
+}
+
+EWXWEXPORT(int,wxJoystickEvent_GetZPosition)(wxJoystickEvent* self)
+{
+        return self->GetZPosition();
+}
+
+EWXWEXPORT(int,wxJoystickEvent_GetButtonState)(wxJoystickEvent* self)
+{
+        return self->GetButtonState();
+}
+
+EWXWEXPORT(int,wxJoystickEvent_GetButtonChange)(wxJoystickEvent* self)
+{
+        return self->GetButtonChange();
+}
+
+EWXWEXPORT(int,wxJoystickEvent_GetJoystick)(wxJoystickEvent* self)
+{
+        return self->GetJoystick();
+}
+
+EWXWEXPORT(void,wxJoystickEvent_SetJoystick)(wxJoystickEvent* self,int stick)
+{
+        self->SetJoystick(stick);
+}
+
+EWXWEXPORT(void,wxJoystickEvent_SetButtonState)(wxJoystickEvent* self,int state)
+{
+        self->SetButtonState(state);
+}
+
+EWXWEXPORT(void,wxJoystickEvent_SetButtonChange)(wxJoystickEvent* self,int change)
+{
+        self->SetButtonChange(change);
+}
+
+EWXWEXPORT(void,wxJoystickEvent_SetPosition)(wxJoystickEvent* self,int x,int y)
+{
+	wxPoint pos(x,y);
+	self->SetPosition(pos);
+}
+
+EWXWEXPORT(void,wxJoystickEvent_SetZPosition)(wxJoystickEvent* self,int zPos)
+{
+        self->SetZPosition(zPos);
+}
+
+EWXWEXPORT(bool,wxJoystickEvent_IsButton)(wxJoystickEvent* self)
+{
+        return self->IsButton();
+}
+
+EWXWEXPORT(bool,wxJoystickEvent_IsMove)(wxJoystickEvent* self)
+{
+        return self->IsMove();
+}
+
+EWXWEXPORT(bool,wxJoystickEvent_IsZMove)(wxJoystickEvent* self)
+{
+        return self->IsZMove();
+}
+
+EWXWEXPORT(bool,wxJoystickEvent_ButtonDown)(wxJoystickEvent* self,int but)
+{
+        return self->ButtonDown(but);
+}
+
+EWXWEXPORT(bool,wxJoystickEvent_ButtonUp)(wxJoystickEvent* self,int but)
+{
+        return self->ButtonUp(but);
+}
+
+EWXWEXPORT(bool,wxJoystickEvent_ButtonIsDown)(wxJoystickEvent* self,int but)
+{
+        return self->ButtonIsDown(but);
+}
+
+EWXWEXPORT(void,wxJoystickEvent_CopyObject)(wxJoystickEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(bool,wxUpdateUIEvent_GetChecked)(wxUpdateUIEvent* self)
+{
+        return self->GetChecked();
+}
+
+EWXWEXPORT(bool,wxUpdateUIEvent_GetEnabled)(wxUpdateUIEvent* self)
+{
+        return self->GetEnabled();
+}
+
+EWXWEXPORT(wxString*,wxUpdateUIEvent_GetText)(wxUpdateUIEvent* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetText();
+        return result;
+}
+
+EWXWEXPORT(bool,wxUpdateUIEvent_GetSetText)(wxUpdateUIEvent* self)
+{
+        return self->GetSetText();
+}
+
+EWXWEXPORT(bool,wxUpdateUIEvent_GetSetChecked)(wxUpdateUIEvent* self)
+{
+        return self->GetSetChecked();
+}
+
+EWXWEXPORT(bool,wxUpdateUIEvent_GetSetEnabled)(wxUpdateUIEvent* self)
+{
+        return self->GetSetEnabled();
+}
+
+EWXWEXPORT(void,wxUpdateUIEvent_Check)(wxUpdateUIEvent* self,bool check)
+{
+        self->Check(check);
+}
+
+EWXWEXPORT(void,wxUpdateUIEvent_Enable)(wxUpdateUIEvent* self,bool enable)
+{
+        self->Enable(enable);
+}
+
+EWXWEXPORT(void,wxUpdateUIEvent_SetText)(wxUpdateUIEvent* self,wxString* text)
+{
+        self->SetText(*text);
+}
+
+EWXWEXPORT(void,wxUpdateUIEvent_CopyObject)(wxUpdateUIEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(void,wxPaletteChangedEvent_SetChangedWindow)(wxPaletteChangedEvent* self,wxWindow* win)
+{
+        self->SetChangedWindow(win);
+}
+
+EWXWEXPORT(void*,wxPaletteChangedEvent_GetChangedWindow)(wxPaletteChangedEvent* self)
+{
+        return (void*)self->GetChangedWindow();
+}
+
+EWXWEXPORT(void,wxPaletteChangedEvent_CopyObject)(wxPaletteChangedEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(void,wxQueryNewPaletteEvent_SetPaletteRealized)(wxQueryNewPaletteEvent* self,bool realized)
+{
+        self->SetPaletteRealized(realized);
+}
+
+EWXWEXPORT(bool,wxQueryNewPaletteEvent_GetPaletteRealized)(wxQueryNewPaletteEvent* self)
+{
+        return self->GetPaletteRealized();
+}
+
+EWXWEXPORT(void,wxQueryNewPaletteEvent_CopyObject)(wxQueryNewPaletteEvent* self,wxObject* obj)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*obj);
+#endif
+}
+
+EWXWEXPORT(bool,wxNavigationKeyEvent_GetDirection)(wxNavigationKeyEvent* self)
+{
+        return self->GetDirection();
+}
+
+EWXWEXPORT(void,wxNavigationKeyEvent_SetDirection)(wxNavigationKeyEvent* self,bool bForward)
+{
+        self->SetDirection(bForward);
+}
+
+EWXWEXPORT(bool,wxNavigationKeyEvent_IsWindowChange)(wxNavigationKeyEvent* self)
+{
+        return self->IsWindowChange();
+}
+
+EWXWEXPORT(void,wxNavigationKeyEvent_SetWindowChange)(wxNavigationKeyEvent* self,bool bIs)
+{
+        self->SetWindowChange(bIs);
+}
+
+EWXWEXPORT(bool,wxNavigationKeyEvent_ShouldPropagate)(wxNavigationKeyEvent* self)
+{
+        return self->ShouldPropagate();
+}
+	
+EWXWEXPORT(void*,wxNavigationKeyEvent_GetCurrentFocus)(wxNavigationKeyEvent* self)
+{
+        return (void*) self->GetCurrentFocus();
+}
+
+EWXWEXPORT(void,wxNavigationKeyEvent_SetCurrentFocus)(wxNavigationKeyEvent* self,wxWindow* win)
+{
+        self->SetCurrentFocus(win);
+}
+
+EWXWEXPORT(void*,wxWindowCreateEvent_GetWindow)(wxWindowCreateEvent* self)
+{
+        return (void*)self->GetWindow();
+}
+
+EWXWEXPORT(void*,wxWindowDestroyEvent_GetWindow)(wxWindowDestroyEvent* self)
+{
+        return (void*)self->GetWindow();
+}
+
+EWXWEXPORT(void,wxIdleEvent_RequestMore)(wxIdleEvent* self,bool needMore)
+{
+        self->RequestMore(needMore);
+}
+
+EWXWEXPORT(bool,wxIdleEvent_MoreRequested)(wxIdleEvent* self)
+{
+        return self->MoreRequested();
+}
+
+EWXWEXPORT(void,wxIdleEvent_CopyObject)(wxIdleEvent* self,wxObject* object_dest)
+{
+#if wxVERSION_NUMBER < 2400
+        self->CopyObject(*object_dest);
+#endif
+}
+
+EWXWEXPORT(int,wxListEvent_GetCode)(wxListEvent* self)
+{
+#if wxCHECK_VERSION(2,5,0)
+	return self->GetKeyCode();
+#else
+        return self->GetCode();
+#endif
+}
+
+EWXWEXPORT(long,wxListEvent_GetIndex)(wxListEvent* self)
+{
+        return self->GetIndex();
+}
+EWXWEXPORT(int,wxListEvent_GetColumn)(wxListEvent* self)
+{
+        return self->GetColumn();
+}
+
+EWXWEXPORT(bool,wxListEvent_Cancelled)(wxListEvent* self)
+{
+#if wxVERSION_NUMBER < 2400
+        return self->Cancelled();
+#else
+        return false;
+#endif
+}
+
+EWXWEXPORT(wxPoint*,wxListEvent_GetPoint)(wxListEvent* self)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->GetPoint();
+	return pt;
+}
+
+EWXWEXPORT(wxString*,wxListEvent_GetLabel)(wxListEvent* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetLabel();
+        return result;
+}
+
+EWXWEXPORT(wxString*,wxListEvent_GetText)(wxListEvent* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetText();
+        return result;
+}
+
+EWXWEXPORT(int,wxListEvent_GetImage)(wxListEvent* self)
+{
+        return self->GetImage();
+}
+
+EWXWEXPORT(long,wxListEvent_GetData)(wxListEvent* self)
+{
+        return self->GetData();
+}
+
+EWXWEXPORT(long,wxListEvent_GetMask)(wxListEvent* self)
+{
+        return self->GetMask();
+}
+
+EWXWEXPORT(void,wxListEvent_GetItem)(wxListEvent* self,void* _ref)
+{
+#if wxVERSION_NUMBER < 2400
+        *((wxListItem*)_ref) = self->GetItem();
+#else
+        wxListItem* ret = new wxListItem(self->GetItem());
+        *((void**)_ref) = (void*)ret;
+#endif
+}
+
+EWXWEXPORT(void,wxTreeEvent_GetItem)(wxTreeEvent* self,wxTreeItemId* _ref)
+{
+        *_ref = self->GetItem();
+}
+
+EWXWEXPORT(void,wxTreeEvent_GetOldItem)(wxTreeEvent* self,wxTreeItemId* _ref)
+{
+        *_ref = self->GetOldItem();
+}
+
+EWXWEXPORT(wxPoint*,wxTreeEvent_GetPoint)(wxTreeEvent* self)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->GetPoint();
+	return pt;
+}
+
+EWXWEXPORT(int,wxTreeEvent_GetCode)(wxTreeEvent* self)
+{
+        return self->GetKeyCode();
+}
+
+EWXWEXPORT(wxString*,wxTreeEvent_GetLabel)(wxTreeEvent* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetLabel();
+        return result;
+}
+
+EWXWEXPORT(int,wxSpinEvent_GetPosition)(wxSpinEvent* self)
+{
+        return self->GetPosition();
+}
+
+EWXWEXPORT(void,wxSpinEvent_SetPosition)(wxSpinEvent* self,int pos)
+{
+        self->SetPosition(pos);
+}
+
+EWXWEXPORT(int,wxTimerEvent_GetInterval)(wxTimerEvent* self)
+{
+        return self->GetInterval();
+}
+
+EWXWEXPORT(int,wxCalendarEvent_GetWeekDay)(wxCalendarEvent* self)
+{
+        return self->GetWeekDay();
+}
+
+EWXWEXPORT(void,wxCalendarEvent_GetDate)(wxCalendarEvent* self,wxDateTime* _dte)
+{
+        *_dte = self->GetDate();
+}
+
+
+EWXWEXPORT(int,wxScrollEvent_GetOrientation)(wxScrollEvent* self)
+{
+        return self->GetOrientation();
+}
+
+EWXWEXPORT(int,wxScrollEvent_GetPosition)(wxScrollEvent* self)
+{
+        return self->GetPosition();
+}
+
+EWXWEXPORT(wxPoint*,wxHelpEvent_GetPosition)(wxHelpEvent* self)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->GetPosition();
+	return pt;
+}
+
+EWXWEXPORT(void,wxHelpEvent_SetPosition)(wxHelpEvent* self,int x,int y)
+{
+        self->SetPosition(wxPoint(x, y));
+}
+
+EWXWEXPORT(wxString*,wxHelpEvent_GetLink)(wxHelpEvent* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetLink();
+        return result;
+}
+
+EWXWEXPORT(void,wxHelpEvent_SetLink)(wxHelpEvent* self,wxString* link)
+{
+        self->SetLink(*link);
+}
+
+EWXWEXPORT(wxString*,wxHelpEvent_GetTarget)(wxHelpEvent* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetTarget();
+        return result;
+}
+
+EWXWEXPORT(void,wxHelpEvent_SetTarget)(wxHelpEvent* self,wxString* target)
+{
+        self->SetTarget(*target);
+}
+
+EWXWEXPORT(bool,wxPropertyGridEvent_HasProperty)(wxPropertyGridEvent* self)
+{
+        return self->GetProperty() != 0;
+}
+
+EWXWEXPORT(wxPGProperty*,wxPropertyGridEvent_GetProperty)(wxPropertyGridEvent* self)
+{
+#if defined(wxUSE_PROPGRID)
+        wxPGProperty* const prop = self->GetProperty();
+        return prop == 0 ? new wxPGProperty() : prop;
+#else
+        return NULL;
+#endif
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// Event wrappers
+////////////////////////////////////////////////////////////////////////////////
+
+MAKE_EVENT_WRAPPER(EVT_NULL)
+MAKE_EVENT_WRAPPER(EVT_FIRST)
+
+#if wxUSE_AUI
+// from aui/auibar.h
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_RIGHT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_BEGIN_DRAG)
+
+// from aui/auibook.h
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BUTTON)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_END_DRAG)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_DRAG_MOTION)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_ALLOW_DND)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_DRAG_DONE)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BG_DCLICK)
+
+// from aui/framemanager.h
+MAKE_EVENT_WRAPPER(EVT_AUI_PANE_BUTTON)
+MAKE_EVENT_WRAPPER(EVT_AUI_PANE_CLOSE)
+MAKE_EVENT_WRAPPER(EVT_AUI_PANE_MAXIMIZE)
+MAKE_EVENT_WRAPPER(EVT_AUI_PANE_RESTORE)
+MAKE_EVENT_WRAPPER(EVT_AUI_RENDER)
+MAKE_EVENT_WRAPPER(EVT_AUI_FIND_MANAGER)
+#else
+// from aui/auibar.h
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_TOOL_DROPDOWN)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_OVERFLOW_CLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_RIGHT_CLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_MIDDLE_CLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUITOOLBAR_BEGIN_DRAG)
+
+// from aui/auibook.h
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CLOSE)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CHANGED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CHANGING)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_PAGE_CLOSED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BUTTON)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BEGIN_DRAG)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_END_DRAG)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_DRAG_MOTION)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_ALLOW_DND)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_DOWN)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_MIDDLE_UP)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_DOWN)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_TAB_RIGHT_UP)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_DRAG_DONE)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_AUINOTEBOOK_BG_DCLICK)
+
+// from aui/framemanager.h
+MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_PANE_BUTTON)
+MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_PANE_CLOSE)
+MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_PANE_MAXIMIZE)
+MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_PANE_RESTORE)
+MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_RENDER)
+MAKE_UNDEFEVENT_WRAPPER(EVT_AUI_FIND_MANAGER)
+#endif // wxUSE_AUI
+
+// from calctrl.h
+#if wxUSE_CALENDARCTRL
+MAKE_EVENT_WRAPPER(EVT_CALENDAR_SEL_CHANGED)
+#if (wxVERSION_NUMBER >= 2900)
+ MAKE_EVENT_WRAPPER(EVT_CALENDAR_PAGE_CHANGED)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_CALENDAR_PAGE_CHANGED)
+#endif
+MAKE_EVENT_WRAPPER(EVT_CALENDAR_DOUBLECLICKED)
+MAKE_EVENT_WRAPPER(EVT_CALENDAR_WEEKDAY_CLICKED)
+#if (wxVERSION_NUMBER >= 2900)
+ MAKE_EVENT_WRAPPER(EVT_CALENDAR_WEEK_CLICKED)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_CALENDAR_WEEK_CLICKED)
+#endif
+MAKE_EVENT_WRAPPER(EVT_CALENDAR_DAY_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_CALENDAR_MONTH_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_CALENDAR_YEAR_CHANGED)
+#endif //wxUSE_CALENDARCTRL
+
+// from choicebook.h
+#if wxUSE_CHOICEBOOK
+MAKE_EVENT_WRAPPER(EVT_COMMAND_CHOICEBOOK_PAGE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_CHOICEBOOK_PAGE_CHANGING)
+#endif
+
+// from clipbrd.h
+#if (wxVERSION_NUMBER >= 2900) && wxUSE_CLIPBOARD
+ MAKE_EVENT_WRAPPER(EVT_CLIPBOARD_CHANGED)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_CLIPBOARD_CHANGED)
+#endif
+
+// from clrpicker.h
+#if wxUSE_COLOURPICKERCTRL
+MAKE_EVENT_WRAPPER(EVT_COMMAND_COLOURPICKER_CHANGED)
+#endif
+
+// from collpane.h
+#if wxUSE_COLLPANE
+MAKE_EVENT_WRAPPER(EVT_COMMAND_COLLPANE_CHANGED)
+#endif
+
+// from dataview.h
+#if (wxVERSION_NUMBER >= 2900) && wxUSE_DATAVIEWCTRL
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_SELECTION_CHANGED)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_ACTIVATED)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_COLLAPSED)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EXPANDED)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_COLLAPSING)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EXPANDING)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_START_EDITING)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_SORTED)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_REORDERED)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_CACHE_HINT)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_DROP)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_SELECTION_CHANGED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_ACTIVATED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_COLLAPSED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EXPANDED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_COLLAPSING)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EXPANDING)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_START_EDITING)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EDITING_STARTED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_EDITING_DONE)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_VALUE_CHANGED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_CONTEXT_MENU)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_HEADER_CLICK)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_HEADER_RIGHT_CLICK)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_SORTED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_COLUMN_REORDERED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_CACHE_HINT)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_BEGIN_DRAG)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_DROP_POSSIBLE)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_DATAVIEW_ITEM_DROP)
+#endif
+
+// from dateevt.h
+MAKE_EVENT_WRAPPER(EVT_DATE_CHANGED)
+
+// from dialog.h
+#if (wxVERSION_NUMBER >= 2900)
+ MAKE_EVENT_WRAPPER(EVT_WINDOW_MODAL_DIALOG_CLOSED)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_WINDOW_MODAL_DIALOG_CLOSED)
+#endif
+
+// from dialup.h - does anyone even care about this stuff these days?
+#if wxUSE_DIALUP_MANAGER
+MAKE_EVENT_WRAPPER(EVT_DIALUP_CONNECTED)
+MAKE_EVENT_WRAPPER(EVT_DIALUP_DISCONNECTED)
+#endif
+
+// from event.h
+MAKE_EVENT_WRAPPER(EVT_COMMAND_BUTTON_CLICKED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_CHECKBOX_CLICKED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_CHOICE_SELECTED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LISTBOX_SELECTED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LISTBOX_DOUBLECLICKED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_CHECKLISTBOX_TOGGLED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_MENU_SELECTED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_SLIDER_UPDATED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RADIOBOX_SELECTED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RADIOBUTTON_SELECTED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_VLBOX_SELECTED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_COMBOBOX_SELECTED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOL_RCLICKED)
+#if (wxVERSION_NUMBER >= 2900)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOL_DROPDOWN_CLICKED)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_TOOL_DROPDOWN_CLICKED)
+#endif
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOL_ENTER)
+#if (wxVERSION_NUMBER >= 2900)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_COMBOBOX_DROPDOWN)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_COMBOBOX_CLOSEUP)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_THREAD)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_COMBOBOX_DROPDOWN)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_COMBOBOX_CLOSEUP)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_THREAD)
+#endif
+MAKE_EVENT_WRAPPER(EVT_LEFT_DOWN)
+MAKE_EVENT_WRAPPER(EVT_LEFT_UP)
+MAKE_EVENT_WRAPPER(EVT_MIDDLE_DOWN)
+MAKE_EVENT_WRAPPER(EVT_MIDDLE_UP)
+MAKE_EVENT_WRAPPER(EVT_RIGHT_DOWN)
+MAKE_EVENT_WRAPPER(EVT_RIGHT_UP)
+MAKE_EVENT_WRAPPER(EVT_MOTION)
+MAKE_EVENT_WRAPPER(EVT_ENTER_WINDOW)
+MAKE_EVENT_WRAPPER(EVT_LEAVE_WINDOW)
+MAKE_EVENT_WRAPPER(EVT_LEFT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_MIDDLE_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_RIGHT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_SET_FOCUS)
+MAKE_EVENT_WRAPPER(EVT_KILL_FOCUS)
+MAKE_EVENT_WRAPPER(EVT_CHILD_FOCUS)
+MAKE_EVENT_WRAPPER(EVT_MOUSEWHEEL)
+#if (wxVERSION_NUMBER >= 2900)
+ MAKE_EVENT_WRAPPER(EVT_AUX1_DOWN)
+ MAKE_EVENT_WRAPPER(EVT_AUX1_UP)
+ MAKE_EVENT_WRAPPER(EVT_AUX1_DCLICK)
+ MAKE_EVENT_WRAPPER(EVT_AUX2_DOWN)
+ MAKE_EVENT_WRAPPER(EVT_AUX2_UP)
+ MAKE_EVENT_WRAPPER(EVT_AUX2_DCLICK)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_AUX1_DOWN)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_AUX1_UP)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_AUX1_DCLICK)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_AUX2_DOWN)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_AUX2_UP)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_AUX2_DCLICK)
+#endif
+MAKE_EVENT_WRAPPER(EVT_CHAR)
+MAKE_EVENT_WRAPPER(EVT_CHAR_HOOK)
+MAKE_EVENT_WRAPPER(EVT_NAVIGATION_KEY)
+MAKE_EVENT_WRAPPER(EVT_KEY_DOWN)
+MAKE_EVENT_WRAPPER(EVT_KEY_UP)
+
+#if wxUSE_HOTKEY
+MAKE_EVENT_WRAPPER(EVT_HOTKEY)
+#else
+MAKE_UNDEFEVENT_WRAPPER(EVT_HOTKEY)
+#endif
+
+MAKE_EVENT_WRAPPER(EVT_SET_CURSOR)
+MAKE_EVENT_WRAPPER(EVT_SCROLL_TOP)
+MAKE_EVENT_WRAPPER(EVT_SCROLL_BOTTOM)
+MAKE_EVENT_WRAPPER(EVT_SCROLL_LINEUP)
+MAKE_EVENT_WRAPPER(EVT_SCROLL_LINEDOWN)
+MAKE_EVENT_WRAPPER(EVT_SCROLL_PAGEUP)
+MAKE_EVENT_WRAPPER(EVT_SCROLL_PAGEDOWN)
+MAKE_EVENT_WRAPPER(EVT_SCROLL_THUMBTRACK)
+MAKE_EVENT_WRAPPER(EVT_SCROLL_THUMBRELEASE)
+MAKE_EVENT_WRAPPER(EVT_SCROLL_CHANGED)
+
+#if (wxVERSION_NUMBER >= 2900) && wxUSE_SPINBTN
+ MAKE_EVENT_WRAPPER(EVT_SPIN_UP)
+ MAKE_EVENT_WRAPPER(EVT_SPIN_DOWN)
+ MAKE_EVENT_WRAPPER(EVT_SPIN)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_SPIN_UP)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_SPIN_DOWN)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_SPIN)
+#endif
+
+MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_TOP)
+MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_BOTTOM)
+MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_LINEUP)
+MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_LINEDOWN)
+MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_PAGEUP)
+MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_PAGEDOWN)
+MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_THUMBTRACK)
+MAKE_EVENT_WRAPPER(EVT_SCROLLWIN_THUMBRELEASE)
+MAKE_EVENT_WRAPPER(EVT_SIZE)
+MAKE_EVENT_WRAPPER(EVT_MOVE)
+MAKE_EVENT_WRAPPER(EVT_CLOSE_WINDOW)
+MAKE_EVENT_WRAPPER(EVT_END_SESSION)
+MAKE_EVENT_WRAPPER(EVT_QUERY_END_SESSION)
+MAKE_EVENT_WRAPPER(EVT_ACTIVATE_APP)
+MAKE_EVENT_WRAPPER(EVT_ACTIVATE)
+MAKE_EVENT_WRAPPER(EVT_CREATE)
+MAKE_EVENT_WRAPPER(EVT_DESTROY)
+MAKE_EVENT_WRAPPER(EVT_SHOW)
+MAKE_EVENT_WRAPPER(EVT_ICONIZE)
+MAKE_EVENT_WRAPPER(EVT_MAXIMIZE)
+MAKE_EVENT_WRAPPER(EVT_MOUSE_CAPTURE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_MOUSE_CAPTURE_LOST)
+MAKE_EVENT_WRAPPER(EVT_PAINT)
+MAKE_EVENT_WRAPPER(EVT_ERASE_BACKGROUND)
+MAKE_EVENT_WRAPPER(EVT_NC_PAINT)
+MAKE_EVENT_WRAPPER(EVT_MENU_OPEN)
+MAKE_EVENT_WRAPPER(EVT_MENU_CLOSE)
+MAKE_EVENT_WRAPPER(EVT_MENU_HIGHLIGHT)
+MAKE_EVENT_WRAPPER(EVT_CONTEXT_MENU)
+MAKE_EVENT_WRAPPER(EVT_SYS_COLOUR_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_DISPLAY_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_QUERY_NEW_PALETTE)
+MAKE_EVENT_WRAPPER(EVT_PALETTE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_JOY_BUTTON_DOWN)
+MAKE_EVENT_WRAPPER(EVT_JOY_BUTTON_UP)
+MAKE_EVENT_WRAPPER(EVT_JOY_MOVE)
+MAKE_EVENT_WRAPPER(EVT_JOY_ZMOVE)
+MAKE_EVENT_WRAPPER(EVT_DROP_FILES)
+MAKE_EVENT_WRAPPER(EVT_INIT_DIALOG)
+MAKE_EVENT_WRAPPER(EVT_IDLE)
+MAKE_EVENT_WRAPPER(EVT_UPDATE_UI)
+MAKE_EVENT_WRAPPER(EVT_SIZING)
+MAKE_EVENT_WRAPPER(EVT_MOVING)
+# if (wxVERSION_NUMBER >= 2900)
+ MAKE_EVENT_WRAPPER(EVT_MOVE_START)
+ MAKE_EVENT_WRAPPER(EVT_MOVE_END)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_MOVE_START)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_MOVE_END)
+#endif
+MAKE_EVENT_WRAPPER(EVT_HIBERNATE)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_COPY)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_CUT)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_PASTE)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LEFT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LEFT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIGHT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIGHT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_SET_FOCUS)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_KILL_FOCUS)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_ENTER)
+MAKE_EVENT_WRAPPER(EVT_HELP)
+MAKE_EVENT_WRAPPER(EVT_DETAILED_HELP)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOL_CLICKED)
+
+// from filectrl.h
+#if (wxVERSION_NUMBER >= 2900) && wxUSE_FILECTRL
+MAKE_EVENT_WRAPPER(EVT_FILECTRL_SELECTIONCHANGED)
+MAKE_EVENT_WRAPPER(EVT_FILECTRL_FILEACTIVATED)
+MAKE_EVENT_WRAPPER(EVT_FILECTRL_FOLDERCHANGED)
+MAKE_EVENT_WRAPPER(EVT_FILECTRL_FILTERCHANGED)
+#else
+MAKE_UNDEFEVENT_WRAPPER(EVT_FILECTRL_SELECTIONCHANGED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_FILECTRL_FILEACTIVATED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_FILECTRL_FOLDERCHANGED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_FILECTRL_FILTERCHANGED)
+#endif
+
+// from filepicker.h
+#if wxUSE_FILEPICKERCTRL || wxUSE_DIRPICKERCTRL
+MAKE_EVENT_WRAPPER(EVT_COMMAND_FILEPICKER_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_DIRPICKER_CHANGED)
+#endif
+
+// from fontpicker.h
+#if wxUSE_FONTPICKERCTRL
+MAKE_EVENT_WRAPPER(EVT_COMMAND_FONTPICKER_CHANGED)
+#endif
+
+// from fswatcher.h
+#if (wxVERSION_NUMBER >= 2900) && wxUSE_FSWATCHER
+MAKE_EVENT_WRAPPER(EVT_FSWATCHER)
+#else
+MAKE_UNDEFEVENT_WRAPPER(EVT_FSWATCHER)
+#endif
+
+// from generic/grid.h
+#if wxUSE_GRID
+MAKE_EVENT_WRAPPER(EVT_GRID_CELL_LEFT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_GRID_CELL_RIGHT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_GRID_CELL_LEFT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_GRID_CELL_RIGHT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_GRID_LABEL_LEFT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_GRID_LABEL_RIGHT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_GRID_LABEL_LEFT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_GRID_LABEL_RIGHT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_GRID_ROW_SIZE)
+MAKE_EVENT_WRAPPER(EVT_GRID_COL_SIZE)
+MAKE_EVENT_WRAPPER(EVT_GRID_RANGE_SELECT)
+#if (wxVERSION_NUMBER >= 2900)
+ MAKE_EVENT_WRAPPER(EVT_GRID_CELL_CHANGING)
+ MAKE_EVENT_WRAPPER(EVT_GRID_CELL_CHANGED)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_GRID_CELL_CHANGING)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_GRID_CELL_CHANGED)
+#endif
+MAKE_EVENT_WRAPPER(EVT_GRID_SELECT_CELL)
+MAKE_EVENT_WRAPPER(EVT_GRID_EDITOR_SHOWN)
+MAKE_EVENT_WRAPPER(EVT_GRID_EDITOR_HIDDEN)
+MAKE_EVENT_WRAPPER(EVT_GRID_EDITOR_CREATED)
+MAKE_EVENT_WRAPPER(EVT_GRID_CELL_BEGIN_DRAG)
+MAKE_EVENT_WRAPPER(EVT_GRID_COL_MOVE)
+#if (wxVERSION_NUMBER >= 2900)
+ MAKE_EVENT_WRAPPER(EVT_GRID_COL_SORT)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_GRID_COL_SORT)
+#endif
+#endif
+
+// from laywin.h
+MAKE_EVENT_WRAPPER(EVT_QUERY_LAYOUT_INFO)
+MAKE_EVENT_WRAPPER(EVT_CALCULATE_LAYOUT)
+
+// from sashwin.h
+#if wxUSE_SASH
+MAKE_EVENT_WRAPPER(EVT_SASH_DRAGGED)
+#endif
+
+// from headerctrl.h
+#if (wxVERSION_NUMBER >= 2900) && wxUSE_HEADERCTRL
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_RIGHT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_MIDDLE_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_RIGHT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_MIDDLE_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_SEPARATOR_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_BEGIN_RESIZE)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_RESIZING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_END_RESIZE)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_BEGIN_REORDER)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_END_REORDER)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HEADER_DRAGGING_CANCELLED)
+#else
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_CLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_RIGHT_CLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_MIDDLE_CLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_DCLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_RIGHT_DCLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_MIDDLE_DCLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_SEPARATOR_DCLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_BEGIN_RESIZE)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_RESIZING)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_END_RESIZE)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_BEGIN_REORDER)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_END_REORDER)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_HEADER_DRAGGING_CANCELLED)
+#endif
+
+// from html/htmlwin.h
+#if wxUSE_HTML
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HTML_CELL_CLICKED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HTML_CELL_HOVER)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HTML_LINK_CLICKED)
+#endif
+
+// from hyperlink.h
+#if wxUSE_HYPERLINKCTRL
+MAKE_EVENT_WRAPPER(EVT_COMMAND_HYPERLINK)
+#endif
+
+// from listbase.h
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_BEGIN_DRAG)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_BEGIN_RDRAG)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_BEGIN_LABEL_EDIT)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_END_LABEL_EDIT)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_DELETE_ITEM)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_DELETE_ALL_ITEMS)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_SELECTED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_DESELECTED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_KEY_DOWN)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_INSERT_ITEM)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_COL_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_RIGHT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_MIDDLE_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_ACTIVATED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_CACHE_HINT)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_COL_RIGHT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_COL_BEGIN_DRAG)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_COL_DRAGGING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_COL_END_DRAG)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LIST_ITEM_FOCUSED)
+
+// from listbook.h
+#if wxUSE_LISTBOOK
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LISTBOOK_PAGE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_LISTBOOK_PAGE_CHANGING)
+#endif
+
+// from notebook.h
+#if wxUSE_NOTEBOOK
+MAKE_EVENT_WRAPPER(EVT_COMMAND_NOTEBOOK_PAGE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_NOTEBOOK_PAGE_CHANGING)
+#endif
+
+// from power.h
+#ifdef wxHAS_POWER_EVENTS
+MAKE_EVENT_WRAPPER(EVT_POWER_SUSPENDING)
+MAKE_EVENT_WRAPPER(EVT_POWER_SUSPENDED)
+MAKE_EVENT_WRAPPER(EVT_POWER_SUSPEND_CANCEL)
+MAKE_EVENT_WRAPPER(EVT_POWER_RESUME)
+#else
+MAKE_UNDEFEVENT_WRAPPER(EVT_POWER_SUSPENDING)
+MAKE_UNDEFEVENT_WRAPPER(EVT_POWER_SUSPENDED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_POWER_SUSPEND_CANCEL)
+MAKE_UNDEFEVENT_WRAPPER(EVT_POWER_RESUME)
+#endif
+
+// from process.h
+MAKE_EVENT_WRAPPER(EVT_END_PROCESS)
+
+// from propgrid/propgrid.h
+#if wxUSE_PROPGRID
+ MAKE_EVENT_WRAPPER(EVT_PG_SELECTED)
+ MAKE_EVENT_WRAPPER(EVT_PG_CHANGING)
+ MAKE_EVENT_WRAPPER(EVT_PG_CHANGED)
+ MAKE_EVENT_WRAPPER(EVT_PG_HIGHLIGHTED)
+ MAKE_EVENT_WRAPPER(EVT_PG_RIGHT_CLICK)
+ MAKE_EVENT_WRAPPER(EVT_PG_PAGE_CHANGED)
+ MAKE_EVENT_WRAPPER(EVT_PG_ITEM_COLLAPSED)
+ MAKE_EVENT_WRAPPER(EVT_PG_ITEM_EXPANDED)
+ MAKE_EVENT_WRAPPER(EVT_PG_DOUBLE_CLICK)
+#else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_PG_SELECTED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_PG_CHANGING)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_PG_CHANGED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_PG_HIGHLIGHTED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_PG_RIGHT_CLICK)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_PG_PAGE_CHANGED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_PG_ITEM_COLLAPSED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_PG_ITEM_EXPANDED)
+ MAKE_UNDEFEVENT_WRAPPER(EVT_PG_DOUBLE_CLICK)
+#endif
+
+// from ribbon/bar.h
+#if wxUSE_RIBBON
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_PAGE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_PAGE_CHANGING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_MIDDLE_DOWN)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_MIDDLE_UP)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_RIGHT_DOWN)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_RIGHT_UP)
+
+// from ribbon/buttonbar.h
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBUTTON_CLICKED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED)
+
+// from ribbon/gallery.h
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONGALLERY_HOVER_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONGALLERY_SELECTED)
+
+// from ribbon/toolbar.h
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONTOOL_CLICKED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RIBBONTOOL_DROPDOWN_CLICKED)
+#else
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_PAGE_CHANGED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_PAGE_CHANGING)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_MIDDLE_DOWN)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_MIDDLE_UP)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_RIGHT_DOWN)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBAR_TAB_RIGHT_UP)
+
+// from ribbon/buttonbar.h
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBUTTON_CLICKED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONBUTTON_DROPDOWN_CLICKED)
+
+// from ribbon/gallery.h
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONGALLERY_HOVER_CHANGED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONGALLERY_SELECTED)
+
+// from ribbon/toolbar.h
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONTOOL_CLICKED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_RIBBONTOOL_DROPDOWN_CLICKED)
+#endif
+
+// from richtext/richtextctrl.h
+#if wxUSE_RICHTEXT
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_LEFT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_RIGHT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_MIDDLE_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_LEFT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_RETURN)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_CHARACTER)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_DELETE)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_STYLESHEET_CHANGING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_STYLESHEET_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_STYLESHEET_REPLACING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_STYLESHEET_REPLACED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_CONTENT_INSERTED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_CONTENT_DELETED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_STYLE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_SELECTION_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_RICHTEXT_BUFFER_RESET)
+#endif
+
+// from socket.h
+#if wxUSE_SOCKETS
+MAKE_EVENT_WRAPPER(EVT_SOCKET)
+#endif
+
+// from spinctrl.h
+#if wxUSE_SPINCTRL
+MAKE_EVENT_WRAPPER(EVT_COMMAND_SPINCTRL_UPDATED)
+# if (wxVERSION_NUMBER >= 2900)
+ MAKE_EVENT_WRAPPER(EVT_COMMAND_SPINCTRLDOUBLE_UPDATED)
+# else
+ MAKE_UNDEFEVENT_WRAPPER(EVT_COMMAND_SPINCTRLDOUBLE_UPDATED)
+# endif
+#endif
+
+// from splitter.h
+MAKE_EVENT_WRAPPER(EVT_COMMAND_SPLITTER_SASH_POS_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_SPLITTER_SASH_POS_CHANGING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_SPLITTER_DOUBLECLICKED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_SPLITTER_UNSPLIT)
+
+// from srchctrl.h
+#if wxUSE_SEARCHCTRL
+MAKE_EVENT_WRAPPER(EVT_COMMAND_SEARCHCTRL_CANCEL_BTN)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_SEARCHCTRL_SEARCH_BTN)
+#endif
+
+// from textctrl.h
+#if wxUSE_TEXTCTRL
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_UPDATED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_ENTER)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_URL)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TEXT_MAXLEN)
+#endif
+
+// from tglbtn.h
+#if wxUSE_TOGGLEBTN
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TOGGLEBUTTON_CLICKED)
+#endif
+
+// from timer.h
+#if wxUSE_TIMER
+MAKE_EVENT_WRAPPER(EVT_TIMER)
+#endif
+
+// from toolbook.h
+#if wxUSE_TOOLBOOK
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOLBOOK_PAGE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TOOLBOOK_PAGE_CHANGING)
+#endif
+
+// from treebase.h
+#if wxUSE_TREECTRL
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_BEGIN_DRAG)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_BEGIN_RDRAG)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_BEGIN_LABEL_EDIT)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_END_LABEL_EDIT)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_DELETE_ITEM)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_GET_INFO)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_SET_INFO)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_EXPANDED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_EXPANDING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_COLLAPSED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_COLLAPSING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_SEL_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_SEL_CHANGING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_KEY_DOWN)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_ACTIVATED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_RIGHT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_MIDDLE_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_END_DRAG)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_STATE_IMAGE_CLICK)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_GETTOOLTIP)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREE_ITEM_MENU)
+#endif
+
+// from treebook.h
+#if wxUSE_TREEBOOK
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREEBOOK_PAGE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREEBOOK_PAGE_CHANGING)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREEBOOK_NODE_COLLAPSED)
+MAKE_EVENT_WRAPPER(EVT_COMMAND_TREEBOOK_NODE_EXPANDED)
+#endif
+
+// from wizard.h
+#if wxUSE_WIZARDDLG
+MAKE_EVENT_WRAPPER(EVT_WIZARD_PAGE_CHANGED)
+MAKE_EVENT_WRAPPER(EVT_WIZARD_PAGE_CHANGING)
+MAKE_EVENT_WRAPPER(EVT_WIZARD_CANCEL)
+MAKE_EVENT_WRAPPER(EVT_WIZARD_HELP)
+MAKE_EVENT_WRAPPER(EVT_WIZARD_FINISHED)
+MAKE_EVENT_WRAPPER(EVT_WIZARD_PAGE_SHOWN)
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// Keypress wrappers
+////////////////////////////////////////////////////////////////////////////////
+
+#define MAKE_KEYPRESS_WRAPPER(key) EWXWEXPORT(int,exp##key)() { return (int)WX##key; }
+
+MAKE_KEYPRESS_WRAPPER(K_BACK)
+MAKE_KEYPRESS_WRAPPER(K_TAB)
+MAKE_KEYPRESS_WRAPPER(K_RETURN)
+MAKE_KEYPRESS_WRAPPER(K_ESCAPE)
+MAKE_KEYPRESS_WRAPPER(K_SPACE)
+MAKE_KEYPRESS_WRAPPER(K_DELETE)
+MAKE_KEYPRESS_WRAPPER(K_START)
+MAKE_KEYPRESS_WRAPPER(K_LBUTTON)
+MAKE_KEYPRESS_WRAPPER(K_RBUTTON)
+MAKE_KEYPRESS_WRAPPER(K_CANCEL)
+MAKE_KEYPRESS_WRAPPER(K_MBUTTON)
+MAKE_KEYPRESS_WRAPPER(K_CLEAR)
+MAKE_KEYPRESS_WRAPPER(K_SHIFT)
+MAKE_KEYPRESS_WRAPPER(K_ALT)
+MAKE_KEYPRESS_WRAPPER(K_CONTROL)
+MAKE_KEYPRESS_WRAPPER(K_MENU)
+MAKE_KEYPRESS_WRAPPER(K_PAUSE)
+MAKE_KEYPRESS_WRAPPER(K_CAPITAL)
+MAKE_KEYPRESS_WRAPPER(K_END)
+MAKE_KEYPRESS_WRAPPER(K_HOME)
+MAKE_KEYPRESS_WRAPPER(K_LEFT)
+MAKE_KEYPRESS_WRAPPER(K_UP)
+MAKE_KEYPRESS_WRAPPER(K_RIGHT)
+MAKE_KEYPRESS_WRAPPER(K_DOWN)
+MAKE_KEYPRESS_WRAPPER(K_SELECT)
+MAKE_KEYPRESS_WRAPPER(K_PRINT)
+MAKE_KEYPRESS_WRAPPER(K_EXECUTE)
+MAKE_KEYPRESS_WRAPPER(K_SNAPSHOT)
+MAKE_KEYPRESS_WRAPPER(K_INSERT)
+MAKE_KEYPRESS_WRAPPER(K_HELP)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD0)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD1)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD2)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD3)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD4)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD5)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD6)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD7)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD8)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD9)
+MAKE_KEYPRESS_WRAPPER(K_MULTIPLY)
+MAKE_KEYPRESS_WRAPPER(K_ADD)
+MAKE_KEYPRESS_WRAPPER(K_SEPARATOR)
+MAKE_KEYPRESS_WRAPPER(K_SUBTRACT)
+MAKE_KEYPRESS_WRAPPER(K_DECIMAL)
+MAKE_KEYPRESS_WRAPPER(K_DIVIDE)
+MAKE_KEYPRESS_WRAPPER(K_F1)
+MAKE_KEYPRESS_WRAPPER(K_F2)
+MAKE_KEYPRESS_WRAPPER(K_F3)
+MAKE_KEYPRESS_WRAPPER(K_F4)
+MAKE_KEYPRESS_WRAPPER(K_F5)
+MAKE_KEYPRESS_WRAPPER(K_F6)
+MAKE_KEYPRESS_WRAPPER(K_F7)
+MAKE_KEYPRESS_WRAPPER(K_F8)
+MAKE_KEYPRESS_WRAPPER(K_F9)
+MAKE_KEYPRESS_WRAPPER(K_F10)
+MAKE_KEYPRESS_WRAPPER(K_F11)
+MAKE_KEYPRESS_WRAPPER(K_F12)
+MAKE_KEYPRESS_WRAPPER(K_F13)
+MAKE_KEYPRESS_WRAPPER(K_F14)
+MAKE_KEYPRESS_WRAPPER(K_F15)
+MAKE_KEYPRESS_WRAPPER(K_F16)
+MAKE_KEYPRESS_WRAPPER(K_F17)
+MAKE_KEYPRESS_WRAPPER(K_F18)
+MAKE_KEYPRESS_WRAPPER(K_F19)
+MAKE_KEYPRESS_WRAPPER(K_F20)
+MAKE_KEYPRESS_WRAPPER(K_F21)
+MAKE_KEYPRESS_WRAPPER(K_F22)
+MAKE_KEYPRESS_WRAPPER(K_F23)
+MAKE_KEYPRESS_WRAPPER(K_F24)
+MAKE_KEYPRESS_WRAPPER(K_NUMLOCK)
+MAKE_KEYPRESS_WRAPPER(K_SCROLL)
+MAKE_KEYPRESS_WRAPPER(K_PAGEUP)
+MAKE_KEYPRESS_WRAPPER(K_PAGEDOWN)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_SPACE)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_TAB)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_ENTER)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_F1)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_F2)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_F3)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_F4)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_HOME)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_LEFT)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_UP)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_RIGHT)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_DOWN)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_PAGEUP)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_PAGEDOWN)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_END)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_BEGIN)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_INSERT)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_DELETE)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_EQUAL)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_MULTIPLY)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_ADD)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_SEPARATOR)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_SUBTRACT)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_DECIMAL)
+MAKE_KEYPRESS_WRAPPER(K_NUMPAD_DIVIDE)
+MAKE_KEYPRESS_WRAPPER(K_WINDOWS_LEFT)
+MAKE_KEYPRESS_WRAPPER(K_WINDOWS_RIGHT)
+MAKE_KEYPRESS_WRAPPER(K_WINDOWS_MENU)
+MAKE_KEYPRESS_WRAPPER(K_COMMAND)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL1)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL2)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL3)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL4)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL5)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL6)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL7)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL8)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL9)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL10)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL11)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL12)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL13)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL14)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL15)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL16)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL17)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL18)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL19)
+MAKE_KEYPRESS_WRAPPER(K_SPECIAL20)
+}
diff --git a/src/cpp/eljgrid.cpp b/src/cpp/eljgrid.cpp
--- a/src/cpp/eljgrid.cpp
+++ b/src/cpp/eljgrid.cpp
@@ -754,9 +754,9 @@
 	self->DisableDragRowSize();
 }
 	
-EWXWEXPORT(bool,wxGrid_CanDragRowSize)(wxGrid* self)
+EWXWEXPORT(bool, wxGrid_CanDragRowSize)(wxGrid* self, int row)
 {
-	return self->CanDragRowSize();
+	return self->CanDragRowSize(row);
 }
 	
 EWXWEXPORT(void,wxGrid_EnableDragColSize)(wxGrid* self,bool enable)
@@ -769,9 +769,9 @@
 	self->DisableDragColSize();
 }
 	
-EWXWEXPORT(bool,wxGrid_CanDragColSize)(wxGrid* self)
+EWXWEXPORT(bool, wxGrid_CanDragColSize)(wxGrid* self, int col)
 {
-	return self->CanDragColSize();
+	return self->CanDragColSize(col);
 }
 	
 EWXWEXPORT(void,wxGrid_EnableDragGridSize)(wxGrid* self,bool enable)
diff --git a/src/cpp/eljicnbndl.cpp b/src/cpp/eljicnbndl.cpp
--- a/src/cpp/eljicnbndl.cpp
+++ b/src/cpp/eljicnbndl.cpp
@@ -12,7 +12,7 @@
 	
 EWXWEXPORT(void*,wxIconBundle_CreateFromFile)(wxString* file,int type)
 {
-	return (void*)new wxIconBundle(*file, (long)type);
+	return (void*)new wxIconBundle(*file, (wxBitmapType)type);
 }
 	
 EWXWEXPORT(void*,wxIconBundle_CreateFromIcon)(void* icon)
@@ -32,7 +32,7 @@
 	
 EWXWEXPORT(void,wxIconBundle_AddIconFromFile)(void* _obj,wxString* file,int type)
 {
-	((wxIconBundle*)_obj)->AddIcon(*file, (long)type);
+	((wxIconBundle*)_obj)->AddIcon(*file, (wxBitmapType)type);
 }
 	
 EWXWEXPORT(void,wxIconBundle_AddIcon)(void* _obj,void* icon)
diff --git a/src/cpp/eljicon.cpp b/src/cpp/eljicon.cpp
--- a/src/cpp/eljicon.cpp
+++ b/src/cpp/eljicon.cpp
@@ -1,128 +1,128 @@
-#include "wrapper.h"
-
-extern "C"
-{
-
-EWXWEXPORT(void*,wxIcon_CreateDefault)()
-{
-	return (void*)new wxIcon();
-}
-
-EWXWEXPORT(void,wxIcon_Delete)(wxIcon* self)
-{
-	delete self;
-}
-
-EWXWEXPORT(void*,wxIcon_FromRaw)(void* data,int width,int height)
-{
-#ifdef __WIN32__
-	return (void*)new wxIcon((const wxChar*)data, wxBITMAP_TYPE_ICO, width, height);
-#else
-	return (void*)new wxIcon((const wxChar*)data, wxBITMAP_TYPE_ANY, width, height);
-#endif
-}
-
-EWXWEXPORT(void*,wxIcon_FromXPM)(void* data)
-{
-	return (void*)new wxIcon((const wxChar*)data);
-}
-
-EWXWEXPORT(void*,wxIcon_CreateLoad)(wxString* name,long type,int width,int height)
-{
-	return (void*)new wxIcon(*name, (wxBitmapType)type, width, height);
-}
-
-EWXWEXPORT(bool,wxIcon_Load)(wxIcon* self,wxString* name,long type,int width,int height)
-{
-#ifdef __WIN32__
-	return self->LoadFile(*name, (wxBitmapType)type, width, height);
-#else
-	return self->LoadFile(*name, (wxBitmapType)type);
-#endif
-}
-
-EWXWEXPORT(void,wxIcon_CopyFromBitmap)(wxIcon* self,wxBitmap* bmp)
-{
-#ifdef __WIN32__
-	self->CopyFromBitmap(*bmp);
-#endif
-}
-
-EWXWEXPORT(bool,wxIcon_IsOk)(wxIcon* self)
-{
-	return self->IsOk();
-}
-
-EWXWEXPORT(int,wxIcon_GetDepth)(wxIcon* self)
-{
-	return self->GetDepth();
-}
-
-EWXWEXPORT(int,wxIcon_GetWidth)(wxIcon* self)
-{
-	return self->GetWidth();
-}
-
-EWXWEXPORT(int,wxIcon_GetHeight)(wxIcon* self)
-{
-	return self->GetHeight();
-}
-
-#if (wxVERSION_NUMBER >= 2800)
-EWXWEXPORT(void,wxIcon_SetDepth)(wxIcon* self,int depth)
-{
-	self->SetDepth(depth);
-}
-
-EWXWEXPORT(void,wxIcon_SetWidth)(wxIcon* self,int width)
-{
-	self->SetWidth(width);
-}
-
-EWXWEXPORT(void,wxIcon_SetHeight)(wxIcon* self,int height)
-{
-	self->SetHeight(height);
-}
-#endif
-
-EWXWEXPORT(void,wxIcon_Assign)(wxIcon* self,void* other)
-{
-	*self = *((wxIcon*)other);
-}
-
-EWXWEXPORT(bool,wxIcon_IsEqual)(wxIcon* self,wxIcon* other)
-{
-#if (wxVERSION_NUMBER <= 2800)
-	return *self == *other;
-#else
-	wxIcon* icon1 = self;
-	wxIcon* icon2 = other;
-	wxBitmap bmp1;
-	wxBitmap bmp2;
-	bmp1.CopyFromIcon(*icon1);
-	bmp2.CopyFromIcon(*icon2);
-	wxImage image1 = (wxImage)bmp1.ConvertToImage();
-	wxImage image2 = (wxImage)bmp2.ConvertToImage();
-	wxImage* img1 = &image1;
-	wxImage* img2 = &image2;
-	if( (icon1->GetWidth() == icon2->GetWidth()) &&
-		(icon1->GetHeight() == icon2->GetHeight()) &&
-		(icon1->GetDepth() == icon2->GetDepth())){
-		bool equal = true;
-		for(int sx=0;sx<(icon1->GetWidth());sx++){
-			for(int sy=0;sy<(icon1->GetHeight());sy++){
-				equal = equal &&
-					(img1->GetRed(sx,sy)==img2->GetRed(sx,sy) &&
-					img1->GetGreen(sx,sy)==img2->GetGreen(sx,sy) &&
-					img1->GetBlue(sx,sy)==img2->GetBlue(sx,sy) &&
-					img1->GetAlpha(sx,sy)==img2->GetAlpha(sx,sy));
-			}
-		}
-		return equal;
-	} else {
-		return false;
-	}
-#endif
-}
-
-}
+#include "wrapper.h"
+
+extern "C"
+{
+
+EWXWEXPORT(void*,wxIcon_CreateDefault)()
+{
+	return (void*)new wxIcon();
+}
+
+EWXWEXPORT(void,wxIcon_Delete)(wxIcon* self)
+{
+	delete self;
+}
+
+EWXWEXPORT(void*,wxIcon_FromRaw)(void* data,int width,int height)
+{
+#ifdef __WIN32__
+	return (void*)new wxIcon((const wxChar*)data, wxBITMAP_TYPE_ICO, width, height);
+#else
+	return (void*)new wxIcon((const wxChar*)data, wxBITMAP_TYPE_ANY, width, height);
+#endif
+}
+
+EWXWEXPORT(void*,wxIcon_FromXPM)(void* data)
+{
+	return (void*)new wxIcon((const wxChar*)data);
+}
+
+EWXWEXPORT(void*,wxIcon_CreateLoad)(wxString* name,long type,int width,int height)
+{
+	return (void*)new wxIcon(*name, (wxBitmapType)type, width, height);
+}
+
+EWXWEXPORT(bool,wxIcon_Load)(wxIcon* self,wxString* name,long type,int width,int height)
+{
+#ifdef __WIN32__
+	return self->LoadFile(*name, (wxBitmapType)type, width, height);
+#else
+	return self->LoadFile(*name, (wxBitmapType)type);
+#endif
+}
+
+EWXWEXPORT(void,wxIcon_CopyFromBitmap)(wxIcon* self,wxBitmap* bmp)
+{
+#ifdef __WIN32__
+	self->CopyFromBitmap(*bmp);
+#endif
+}
+
+EWXWEXPORT(bool,wxIcon_IsOk)(wxIcon* self)
+{
+	return self->IsOk();
+}
+
+EWXWEXPORT(int,wxIcon_GetDepth)(wxIcon* self)
+{
+	return self->GetDepth();
+}
+
+EWXWEXPORT(int,wxIcon_GetWidth)(wxIcon* self)
+{
+	return self->GetWidth();
+}
+
+EWXWEXPORT(int,wxIcon_GetHeight)(wxIcon* self)
+{
+	return self->GetHeight();
+}
+
+#if (wxVERSION_NUMBER >= 2800)
+EWXWEXPORT(void,wxIcon_SetDepth)(wxIcon* self,int depth)
+{
+	self->SetDepth(depth);
+}
+
+EWXWEXPORT(void,wxIcon_SetWidth)(wxIcon* self,int width)
+{
+	self->SetWidth(width);
+}
+
+EWXWEXPORT(void,wxIcon_SetHeight)(wxIcon* self,int height)
+{
+	self->SetHeight(height);
+}
+#endif
+
+EWXWEXPORT(void,wxIcon_Assign)(wxIcon* self,void* other)
+{
+	*self = *((wxIcon*)other);
+}
+
+EWXWEXPORT(bool,wxIcon_IsEqual)(wxIcon* self,wxIcon* other)
+{
+#if (wxVERSION_NUMBER <= 2800)
+	return *self == *other;
+#else
+	wxIcon* icon1 = self;
+	wxIcon* icon2 = other;
+	wxBitmap bmp1;
+	wxBitmap bmp2;
+	bmp1.CopyFromIcon(*icon1);
+	bmp2.CopyFromIcon(*icon2);
+	wxImage image1 = (wxImage)bmp1.ConvertToImage();
+	wxImage image2 = (wxImage)bmp2.ConvertToImage();
+	wxImage* img1 = &image1;
+	wxImage* img2 = &image2;
+	if( (icon1->GetWidth() == icon2->GetWidth()) &&
+		(icon1->GetHeight() == icon2->GetHeight()) &&
+		(icon1->GetDepth() == icon2->GetDepth())){
+		bool equal = true;
+		for(int sx=0;sx<(icon1->GetWidth());sx++){
+			for(int sy=0;sy<(icon1->GetHeight());sy++){
+				equal = equal &&
+					(img1->GetRed(sx,sy)==img2->GetRed(sx,sy) &&
+					img1->GetGreen(sx,sy)==img2->GetGreen(sx,sy) &&
+					img1->GetBlue(sx,sy)==img2->GetBlue(sx,sy) &&
+					img1->GetAlpha(sx,sy)==img2->GetAlpha(sx,sy));
+			}
+		}
+		return equal;
+	} else {
+		return false;
+	}
+#endif
+}
+
+}
diff --git a/src/cpp/eljimage.cpp b/src/cpp/eljimage.cpp
--- a/src/cpp/eljimage.cpp
+++ b/src/cpp/eljimage.cpp
@@ -13,19 +13,17 @@
 	return new wxImage(width, height);
 }
 
-EWXWEXPORT(wxImage*,wxImage_CreateFromByteString)(char* data,size_t length,int type)
+EWXWEXPORT(wxImage*, wxImage_CreateFromByteString)(const wxSize &sz, unsigned char *data)
 {
-	wxMemoryInputStream in(data,length);
-	return new wxImage(in, type);
+	return new wxImage(sz, data);
 }
 
-EWXWEXPORT(wxImage*,wxImage_CreateFromLazyByteString)(char* data,size_t length,int type)
+EWXWEXPORT(wxImage*, wxImage_CreateFromLazyByteString)(const wxSize &sz, unsigned char *data)
 {
-	wxMemoryInputStream in(data,length);
-	return new wxImage(in, type);
+	return new wxImage(sz, data);
 }
 
-EWXWEXPORT(size_t,wxImage_ConvertToByteString)(wxImage* self,int type,char* data)
+EWXWEXPORT(size_t, wxImage_ConvertToByteString)(wxImage *self, wxBitmapType type, char *data)
 {
 	wxMemoryOutputStream out;
 	self->SaveFile(out, type);
@@ -34,7 +32,7 @@
         return out.CopyTo(data, len);
 }
 
-EWXWEXPORT(size_t,wxImage_ConvertToLazyByteString)(wxImage* self,int type,char* data)
+EWXWEXPORT(size_t, wxImage_ConvertToLazyByteString)(wxImage *self, wxBitmapType type, char *data)
 {
 	wxMemoryOutputStream out;
 	self->SaveFile(out, type);
@@ -144,14 +142,14 @@
 	return wxImage::CanRead(*name);
 }
 	
-EWXWEXPORT(bool,wxImage_LoadFile)(wxImage* self,wxString* name,int type)
+EWXWEXPORT(bool, wxImage_LoadFile)(wxImage *self, wxString *name, wxBitmapType type)
 {
-	return self->LoadFile(*name, (long)type);
+	return self->LoadFile(*name, type);
 }
 	
-EWXWEXPORT(bool,wxImage_SaveFile)(wxImage* self,wxString* name,int type)
+EWXWEXPORT(bool, wxImage_SaveFile)(wxImage *self, wxString *name, wxBitmapType type)
 {
-	return self->SaveFile(*name, (long)type);
+	return self->SaveFile(*name, type);
 }
 	
 EWXWEXPORT(bool,wxImage_IsOk)(wxImage* self)
diff --git a/src/cpp/eljlog.cpp b/src/cpp/eljlog.cpp
--- a/src/cpp/eljlog.cpp
+++ b/src/cpp/eljlog.cpp
@@ -102,11 +102,6 @@
 	self->DontCreateOnDemand();
 }
 	
-EWXWEXPORT(void,ELJLog_SetTraceMask)(ELJLog* self,int ulMask)
-{
-	self->SetTraceMask((wxTraceMask)ulMask);
-}
-	
 EWXWEXPORT(void,ELJLog_AddTraceMask)(ELJLog* self,void* str)
 {
 	self->AddTraceMask((const wxChar*)str);
diff --git a/src/cpp/eljmenu.cpp b/src/cpp/eljmenu.cpp
--- a/src/cpp/eljmenu.cpp
+++ b/src/cpp/eljmenu.cpp
@@ -148,10 +148,10 @@
 	self->SetLabel(id,*label);
 }
 	
-EWXWEXPORT(wxString*,wxMenu_GetLabel)(wxMenu* self,int id)
+EWXWEXPORT(wxString*, wxMenu_GetLabelText)(wxMenu* self, int id)
 {
 	wxString *result = new wxString();
-	*result = self->GetLabel(id);
+	*result = self->GetLabelText(id);
 	return result;
 }
 	
@@ -260,29 +260,29 @@
 	return self->IsSeparator();
 }
 	
-EWXWEXPORT(void,wxMenuItem_SetText)(wxMenuItem* self,wxString* str)
+EWXWEXPORT(void, wxMenuItem_SetItemLabel)(wxMenuItem* self, wxString* str)
 {
-	self->SetText(*str);
+	self->SetItemLabel(*str);
 }
 	
-EWXWEXPORT(wxString*,wxMenuItem_GetLabel)(wxMenuItem* self)
+EWXWEXPORT(wxString*, wxMenuItem_GetItemLabelText)(wxMenuItem* self)
 {
 	wxString *result = new wxString();
-	*result = self->GetLabel();
+	*result = self->GetItemLabelText();
 	return result;
 }
 	
-EWXWEXPORT(wxString*,wxMenuItem_GetText)(wxMenuItem* self)
+EWXWEXPORT(wxString*, wxMenuItem_GetItemLabel)(wxMenuItem* self)
 {
 	wxString *result = new wxString();
-	*result = self->GetText();
+	*result = self->GetItemLabel();
 	return result;
 }
 
-EWXWEXPORT(wxString*,wxMenuItem_GetLabelFromText)(wxString* text)
+EWXWEXPORT(wxString*, wxMenuItem_GetLabelText)(wxString* text)
 {
 	wxString *result = new wxString();
-	*result = wxMenuItem::GetLabelFromText(* text);
+	*result = wxMenuItem::GetLabelText(* text);
 	return result;
 }
 
diff --git a/src/cpp/eljmenubar.cpp b/src/cpp/eljmenubar.cpp
--- a/src/cpp/eljmenubar.cpp
+++ b/src/cpp/eljmenubar.cpp
@@ -48,15 +48,15 @@
 	self->EnableTop((size_t) pos, enable);
 }
 	
-EWXWEXPORT(void,wxMenuBar_SetLabelTop)(wxMenuBar* self,int pos,wxString* label)
+EWXWEXPORT(void, wxMenuBar_SetMenuLabel)(wxMenuBar* self, int pos, wxString* label)
 {
-	self->SetLabelTop((size_t) pos,*label);
+	self->SetMenuLabel((size_t) pos,*label);
 }
 	
-EWXWEXPORT(wxString*,wxMenuBar_GetLabelTop)(wxMenuBar* self,int pos)
+EWXWEXPORT(wxString*, wxMenuBar_GetMenuLabel)(wxMenuBar* self, int pos)
 {
 	wxString *result = new wxString();
-	*result = self->GetLabelTop((size_t) pos);
+	*result = self->GetMenuLabel((size_t) pos);
 	return result;
 }
 	
diff --git a/src/cpp/eljmime.cpp b/src/cpp/eljmime.cpp
--- a/src/cpp/eljmime.cpp
+++ b/src/cpp/eljmime.cpp
@@ -1,130 +1,130 @@
-#include "wrapper.h"
-#include "wx/mimetype.h"
-
-extern "C"
-{
-
-EWXWEXPORT(void*,wxMimeTypesManager_Create)()
-{
-        return (void*)wxTheMimeTypesManager;
-}
-
-EWXWEXPORT(void*,wxMimeTypesManager_GetFileTypeFromExtension)(wxMimeTypesManager* self,wxString* _ext)
-{
-        return (void*)self->GetFileTypeFromExtension(*_ext);
-}
-
-EWXWEXPORT(void*,wxMimeTypesManager_GetFileTypeFromMimeType)(wxMimeTypesManager* self,wxString* _name)
-{
-        return (void*)self->GetFileTypeFromMimeType(*_name);
-}
-
-EWXWEXPORT(int,wxMimeTypesManager_EnumAllFileTypes)(wxMimeTypesManager* self,void* _lst)
-{
-        wxArrayString arr;
-        int result = (int)self->EnumAllFileTypes(arr);
-
-        if (_lst)
-        {
-                for (unsigned int i = 0; i < arr.GetCount(); i++)
-                        ((const wxChar**)_lst)[i] = wxStrdup (arr.Item(i).wchar_str());
-        }
-
-        return result;
-}
-
-EWXWEXPORT(void,wxMimeTypesManager_AddFallbacks)(wxMimeTypesManager* self,void* _types)
-{
-        self->AddFallbacks((const wxFileTypeInfo*)_types);
-}
-
-EWXWEXPORT(bool,wxMimeTypesManager_IsOfType)(wxMimeTypesManager* self,wxString* _type,wxString* _wildcard)
-{
-        return self->IsOfType (*_type, *_wildcard);
-}
-
-
-EWXWEXPORT(wxString*,wxFileType_GetMimeType)(wxFileType* self)
-{
-        wxString *result = new wxString();
-        if (self->GetMimeType(result)!=true)
-          result->Clear();
-        return result;
-}
-
-EWXWEXPORT(int,wxFileType_GetMimeTypes)(void* self,void* _lst)
-{
-        wxArrayString arr;
-
-        if (((wxFileType*)self)->GetMimeTypes(arr) && _lst)
-        {
-                for (unsigned int i = 0; i < arr.GetCount(); i++)
-                        ((const wxChar**)_lst)[i] = wxStrdup (arr.Item(i).wchar_str());
-        }
-
-        return arr.GetCount();
-}
-
-EWXWEXPORT(int,wxFileType_GetExtensions)(void* self,void* _lst)
-{
-        wxArrayString arr;
-
-        if (((wxFileType*)self)->GetExtensions(arr) && _lst)
-        {
-            for (unsigned int i = 0; i < arr.GetCount(); i++)                
-                 ((const wxChar**)_lst)[i] = wxStrdup (arr.Item(i).wchar_str());
-        }
-
-        return arr.GetCount();
-}
-
-EWXWEXPORT(bool,wxFileType_GetIcon)(wxFileType* self,wxIcon* icon)
-{
-#if wxCHECK_VERSION(2,5,0)
-	wxIconLocation iconLoc;
-	bool res = self->GetIcon(&iconLoc);
-	*icon = wxIcon(iconLoc);
-	return res;
-#else
-	return self->GetIcon(icon);
-#endif
-}
-
-EWXWEXPORT(wxString*,wxFileType_GetDescription)(wxFileType* self)
-{
-        wxString *result = new wxString();
-        if (self->GetDescription(result) != true)
-          result->Clear();
-        return result;
-}
-
-EWXWEXPORT(wxString*,wxFileType_GetOpenCommand)(wxFileType* self,void* _params)
-{
-        wxString *result = new wxString();
-        if (self->GetOpenCommand(result, *((wxFileType::MessageParameters*)_params)) != true)
-          result->Clear();
-        return result;
-}
-
-EWXWEXPORT(wxString*,wxFileType_GetPrintCommand)(wxFileType* self,void* _params)
-{
-        wxString *result = new wxString();
-        if (self->GetPrintCommand(result, *((wxFileType::MessageParameters*)_params)) != true)
-          result->Clear();
-        return result;
-}
-
-EWXWEXPORT(wxString*,wxFileType_ExpandCommand)(wxFileType* self,void* _cmd,void* _params)
-{
-        wxString *result = new wxString();
-        *result = self->ExpandCommand((const wxChar*)_cmd, *((wxFileType::MessageParameters*)_params));
-        return result;
-}
-
-EWXWEXPORT(void,wxFileType_Delete)(void* self)
-{
-        delete (wxFileType*)self;
-}
-
-
-}
+#include "wrapper.h"
+#include "wx/mimetype.h"
+
+extern "C"
+{
+
+EWXWEXPORT(void*,wxMimeTypesManager_Create)()
+{
+        return (void*)wxTheMimeTypesManager;
+}
+
+EWXWEXPORT(void*,wxMimeTypesManager_GetFileTypeFromExtension)(wxMimeTypesManager* self,wxString* _ext)
+{
+        return (void*)self->GetFileTypeFromExtension(*_ext);
+}
+
+EWXWEXPORT(void*,wxMimeTypesManager_GetFileTypeFromMimeType)(wxMimeTypesManager* self,wxString* _name)
+{
+        return (void*)self->GetFileTypeFromMimeType(*_name);
+}
+
+EWXWEXPORT(int,wxMimeTypesManager_EnumAllFileTypes)(wxMimeTypesManager* self,void* _lst)
+{
+        wxArrayString arr;
+        int result = (int)self->EnumAllFileTypes(arr);
+
+        if (_lst)
+        {
+                for (unsigned int i = 0; i < arr.GetCount(); i++)
+                        ((const wxChar**)_lst)[i] = wxStrdup (arr.Item(i).wchar_str());
+        }
+
+        return result;
+}
+
+EWXWEXPORT(void,wxMimeTypesManager_AddFallbacks)(wxMimeTypesManager* self,void* _types)
+{
+        self->AddFallbacks((const wxFileTypeInfo*)_types);
+}
+
+EWXWEXPORT(bool,wxMimeTypesManager_IsOfType)(wxMimeTypesManager* self,wxString* _type,wxString* _wildcard)
+{
+        return self->IsOfType (*_type, *_wildcard);
+}
+
+
+EWXWEXPORT(wxString*,wxFileType_GetMimeType)(wxFileType* self)
+{
+        wxString *result = new wxString();
+        if (self->GetMimeType(result)!=true)
+          result->Clear();
+        return result;
+}
+
+EWXWEXPORT(int,wxFileType_GetMimeTypes)(void* self,void* _lst)
+{
+        wxArrayString arr;
+
+        if (((wxFileType*)self)->GetMimeTypes(arr) && _lst)
+        {
+                for (unsigned int i = 0; i < arr.GetCount(); i++)
+                        ((const wxChar**)_lst)[i] = wxStrdup (arr.Item(i).wchar_str());
+        }
+
+        return arr.GetCount();
+}
+
+EWXWEXPORT(int,wxFileType_GetExtensions)(void* self,void* _lst)
+{
+        wxArrayString arr;
+
+        if (((wxFileType*)self)->GetExtensions(arr) && _lst)
+        {
+            for (unsigned int i = 0; i < arr.GetCount(); i++)                
+                 ((const wxChar**)_lst)[i] = wxStrdup (arr.Item(i).wchar_str());
+        }
+
+        return arr.GetCount();
+}
+
+EWXWEXPORT(bool,wxFileType_GetIcon)(wxFileType* self,wxIcon* icon)
+{
+#if wxCHECK_VERSION(2,5,0)
+	wxIconLocation iconLoc;
+	bool res = self->GetIcon(&iconLoc);
+	*icon = wxIcon(iconLoc);
+	return res;
+#else
+	return self->GetIcon(icon);
+#endif
+}
+
+EWXWEXPORT(wxString*,wxFileType_GetDescription)(wxFileType* self)
+{
+        wxString *result = new wxString();
+        if (self->GetDescription(result) != true)
+          result->Clear();
+        return result;
+}
+
+EWXWEXPORT(wxString*,wxFileType_GetOpenCommand)(wxFileType* self,void* _params)
+{
+        wxString *result = new wxString();
+        if (self->GetOpenCommand(result, *((wxFileType::MessageParameters*)_params)) != true)
+          result->Clear();
+        return result;
+}
+
+EWXWEXPORT(wxString*,wxFileType_GetPrintCommand)(wxFileType* self,void* _params)
+{
+        wxString *result = new wxString();
+        if (self->GetPrintCommand(result, *((wxFileType::MessageParameters*)_params)) != true)
+          result->Clear();
+        return result;
+}
+
+EWXWEXPORT(wxString*,wxFileType_ExpandCommand)(wxFileType* self,void* _cmd,void* _params)
+{
+        wxString *result = new wxString();
+        *result = self->ExpandCommand((const wxChar*)_cmd, *((wxFileType::MessageParameters*)_params));
+        return result;
+}
+
+EWXWEXPORT(void,wxFileType_Delete)(void* self)
+{
+        delete (wxFileType*)self;
+}
+
+
+}
diff --git a/src/cpp/eljprinting.cpp b/src/cpp/eljprinting.cpp
--- a/src/cpp/eljprinting.cpp
+++ b/src/cpp/eljprinting.cpp
@@ -396,7 +396,7 @@
 	
 EWXWEXPORT(void,wxPrintData_SetOrientation)(wxPrintData* self,int orient)
 {
-	self->SetOrientation(orient);
+	self->SetOrientation((wxPrintOrientation) orient);
 }
 	
 EWXWEXPORT(void,wxPrintData_SetPrinterName)(wxPrintData* self,wxString* name)
diff --git a/src/cpp/eljradiobox.cpp b/src/cpp/eljradiobox.cpp
--- a/src/cpp/eljradiobox.cpp
+++ b/src/cpp/eljradiobox.cpp
@@ -1,109 +1,109 @@
-#include "wrapper.h"
-
-extern "C"
-{
-
-EWXWEXPORT(void*,wxRadioBox_Create)(wxWindow* _prt,int _id,wxString* _txt,int _lft,int _top,int _wdt,int _hgt,int _n,void* _str,int _dim,int _stl)
-{
-	wxString items[256];
-
-	for (int i = 0; i < _n; i++)
-		items[i] = ((wxChar**)_str)[i];
-
-	return (void*) new wxRadioBox (_prt, _id, *_txt, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _n, items, _dim, _stl, wxDefaultValidator);
-}
-
-EWXWEXPORT(int,wxRadioBox_FindString)(void* _obj,wxString* s)
-{
-	return ((wxRadioBox*)_obj)->FindString(* s);
-}
-
-EWXWEXPORT(void,wxRadioBox_SetSelection)(void* _obj,int _n)
-{
-	((wxRadioBox*)_obj)->SetSelection(_n);
-}
-
-EWXWEXPORT(int,wxRadioBox_GetSelection)(void* _obj)
-{
-	return ((wxRadioBox*)_obj)->GetSelection();
-}
-
-EWXWEXPORT(void,wxRadioBox_SetItemLabel)(void* _obj,int item,wxString* label)
-{
-#if wxVERSION_NUMBER >= 2400
-	((wxRadioBoxBase*)_obj)->SetString(item, *label);
-#else
-	((wxRadioBox*)_obj)->SetLabel(item, *label);
-#endif
-}
-
-EWXWEXPORT(void,wxRadioBox_SetItemBitmap)(void* _obj,int item,void* bitmap)
-{
-#if wxVERSION_NUMBER < 2400
-	((wxRadioBox*)_obj)->SetLabel(item, (wxBitmap*) bitmap);
-#endif
-}
-
-EWXWEXPORT(wxString*,wxRadioBox_GetItemLabel)(void* _obj,int item)
-{
-  wxString *result = new wxString();
-
-#if wxVERSION_NUMBER >= 2400
-    *result = ((wxRadioBox*)_obj)->GetString(item);
-#else
-    *result = ((wxRadioBox*)_obj)->GetLabel(item);
-#endif
-
-  return result;
-}
-
-EWXWEXPORT(void,wxRadioBox_EnableItem)(void* self,int item,bool enable)
-{
-	((wxRadioBox*)self)->Enable(item, enable);
-}
-
-EWXWEXPORT(void,wxRadioBox_ShowItem)(void* self,int item,bool show)
-{
-	((wxRadioBox*)self)->Show(item, show);
-}
-
-EWXWEXPORT(wxString*,wxRadioBox_GetStringSelection)(void* _obj)
-{
-  wxString *result = new wxString();
-  *result = ((wxRadioBox*)_obj)->GetStringSelection();
-  return result;
-}
-
-EWXWEXPORT(void,wxRadioBox_SetStringSelection)(void* _obj,wxString* s)
-{
-	((wxRadioBox*)_obj)->SetStringSelection(* s);
-}
-
-EWXWEXPORT(int,wxRadioBox_Number)(void* _obj)
-{
-#if wxVERSION_NUMBER >= 2400
-	return ((wxRadioBox*)_obj)->GetCount();
-#else
-	return ((wxRadioBox*)_obj)->Number();
-#endif
-}
-
-EWXWEXPORT(int,wxRadioBox_GetNumberOfRowsOrCols)(void* _obj)
-{
-#if wxVERSION_NUMBER >= 2600
-	return ((wxRadioBox*)_obj)->GetCount();
-#else
-	return ((wxRadioBox*)_obj)->GetNumberOfRowsOrCols();
-#endif
-}
-
-EWXWEXPORT(void,wxRadioBox_SetNumberOfRowsOrCols)(void* _obj,int n)
-{
-#if wxVERSION_NUMBER >= 2600
-	return;
-#else
-	((wxRadioBox*)_obj)->SetNumberOfRowsOrCols(n);
-#endif
-}
-
-}
+#include "wrapper.h"
+
+extern "C"
+{
+
+EWXWEXPORT(void*,wxRadioBox_Create)(wxWindow* _prt,int _id,wxString* _txt,int _lft,int _top,int _wdt,int _hgt,int _n,void* _str,int _dim,int _stl)
+{
+	wxString items[256];
+
+	for (int i = 0; i < _n; i++)
+		items[i] = ((wxChar**)_str)[i];
+
+	return (void*) new wxRadioBox (_prt, _id, *_txt, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _n, items, _dim, _stl, wxDefaultValidator);
+}
+
+EWXWEXPORT(int,wxRadioBox_FindString)(void* _obj,wxString* s)
+{
+	return ((wxRadioBox*)_obj)->FindString(* s);
+}
+
+EWXWEXPORT(void,wxRadioBox_SetSelection)(void* _obj,int _n)
+{
+	((wxRadioBox*)_obj)->SetSelection(_n);
+}
+
+EWXWEXPORT(int,wxRadioBox_GetSelection)(void* _obj)
+{
+	return ((wxRadioBox*)_obj)->GetSelection();
+}
+
+EWXWEXPORT(void,wxRadioBox_SetItemLabel)(void* _obj,int item,wxString* label)
+{
+#if wxVERSION_NUMBER >= 2400
+	((wxRadioBoxBase*)_obj)->SetString(item, *label);
+#else
+	((wxRadioBox*)_obj)->SetLabel(item, *label);
+#endif
+}
+
+EWXWEXPORT(void,wxRadioBox_SetItemBitmap)(void* _obj,int item,void* bitmap)
+{
+#if wxVERSION_NUMBER < 2400
+	((wxRadioBox*)_obj)->SetLabel(item, (wxBitmap*) bitmap);
+#endif
+}
+
+EWXWEXPORT(wxString*,wxRadioBox_GetItemLabel)(void* _obj,int item)
+{
+  wxString *result = new wxString();
+
+#if wxVERSION_NUMBER >= 2400
+    *result = ((wxRadioBox*)_obj)->GetString(item);
+#else
+    *result = ((wxRadioBox*)_obj)->GetLabel(item);
+#endif
+
+  return result;
+}
+
+EWXWEXPORT(void,wxRadioBox_EnableItem)(void* self,int item,bool enable)
+{
+	((wxRadioBox*)self)->Enable(item, enable);
+}
+
+EWXWEXPORT(void,wxRadioBox_ShowItem)(void* self,int item,bool show)
+{
+	((wxRadioBox*)self)->Show(item, show);
+}
+
+EWXWEXPORT(wxString*,wxRadioBox_GetStringSelection)(void* _obj)
+{
+  wxString *result = new wxString();
+  *result = ((wxRadioBox*)_obj)->GetStringSelection();
+  return result;
+}
+
+EWXWEXPORT(void,wxRadioBox_SetStringSelection)(void* _obj,wxString* s)
+{
+	((wxRadioBox*)_obj)->SetStringSelection(* s);
+}
+
+EWXWEXPORT(int,wxRadioBox_Number)(void* _obj)
+{
+#if wxVERSION_NUMBER >= 2400
+	return ((wxRadioBox*)_obj)->GetCount();
+#else
+	return ((wxRadioBox*)_obj)->Number();
+#endif
+}
+
+EWXWEXPORT(int,wxRadioBox_GetNumberOfRowsOrCols)(void* _obj)
+{
+#if wxVERSION_NUMBER >= 2600
+	return ((wxRadioBox*)_obj)->GetCount();
+#else
+	return ((wxRadioBox*)_obj)->GetNumberOfRowsOrCols();
+#endif
+}
+
+EWXWEXPORT(void,wxRadioBox_SetNumberOfRowsOrCols)(void* _obj,int n)
+{
+#if wxVERSION_NUMBER >= 2600
+	return;
+#else
+	((wxRadioBox*)_obj)->SetNumberOfRowsOrCols(n);
+#endif
+}
+
+}
diff --git a/src/cpp/eljsizer.cpp b/src/cpp/eljsizer.cpp
--- a/src/cpp/eljsizer.cpp
+++ b/src/cpp/eljsizer.cpp
@@ -101,9 +101,10 @@
 	return self->GetWindow();
 }
 	
-EWXWEXPORT(void,wxSizerItem_SetWindow)(wxSizerItem* self,wxWindow* window)
+// EWXWEXPORT(void,wxSizerItem_SetWindow)(wxSizerItem* self,wxWindow* window)
+EWXWEXPORT(void, wxSizerItem_AssignWindow)(wxSizerItem* self, wxWindow* window)
 {
-	self->SetWindow(window);
+	self->AssignWindow(window);
 }
 	
 EWXWEXPORT(void*,wxSizerItem_GetSizer)(wxSizerItem* self)
@@ -111,9 +112,10 @@
 	return (void*)self->GetSizer();
 }
 	
-EWXWEXPORT(void,wxSizerItem_SetSizer)(wxSizerItem* self,wxSizer* sizer)
+// EWXWEXPORT(void,wxSizerItem_SetSizer)(wxSizerItem* self,wxSizer* sizer)
+EWXWEXPORT(void, wxSizerItem_AssignSizer)(wxSizerItem* self, wxSizer* sizer)
 {
-	self->SetSizer(sizer);
+	self->AssignSizer(sizer);
 }
 	
 #if (wxVERSION_NUMBER < 2800)
@@ -194,9 +196,10 @@
 	self->SetProportion(proportion);
 }
 
-EWXWEXPORT(void,wxSizerItem_SetSpacer)(wxSizerItem* self,int width,int height)
+// EWXWEXPORT(void,wxSizerItem_SetSpacer)(wxSizerItem* self,int width,int height)
+EWXWEXPORT(void, wxSizerItem_AssignSpacer)(wxSizerItem* self, int width, int height)
 {
-	self->SetSpacer(wxSize(width, height));
+	self->AssignSpacer(wxSize(width, height));
 }
 
 EWXWEXPORT(void,wxSizerItem_Show)(wxSizerItem* self,int show)
@@ -474,10 +477,9 @@
 	return self->Replace((size_t) oldindex,newsz);
 }
 
-EWXWEXPORT(void,wxSizer_SetVirtualSizeHints)(wxSizer* self,wxWindow* window)
-{
-	self->SetVirtualSizeHints(window);
-}
+/* Deprecated; replace with wxSizer_FitInside
+// EWXWEXPORT(void,wxSizer_SetVirtualSizeHints)(wxSizer* self,wxWindow* window)
+*/
 
 EWXWEXPORT(bool,wxSizer_ShowWindow)(wxSizer* self,wxWindow* window,bool show,bool recursive)
 {
diff --git a/src/cpp/eljslider.cpp b/src/cpp/eljslider.cpp
--- a/src/cpp/eljslider.cpp
+++ b/src/cpp/eljslider.cpp
@@ -34,10 +34,8 @@
 	return ((wxSlider*)_obj)->GetMax();
 }
 	
-EWXWEXPORT(void,wxSlider_SetTickFreq)(void* _obj, int n, int pos)
-{
-	((wxSlider*)_obj)->SetTickFreq(n, pos);
-}
+// Obsolete
+// EWXWEXPORT(void,wxSlider_SetTickFreq)(void* _obj, int n, int pos)
 	
 EWXWEXPORT(int,wxSlider_GetTickFreq)(void* _obj)
 {
diff --git a/src/cpp/eljsplitterwindow.cpp b/src/cpp/eljsplitterwindow.cpp
--- a/src/cpp/eljsplitterwindow.cpp
+++ b/src/cpp/eljsplitterwindow.cpp
@@ -58,10 +58,8 @@
 	return self->IsSplit();
 }
 	
-EWXWEXPORT(void,wxSplitterWindow_SetSashSize)(void* self,int width)
-{
-	((wxSplitterWindow*)self)->SetSashSize(width);
-}
+// Obsolete
+// EWXWEXPORT(void,wxSplitterWindow_SetSashSize)(void* self,int width)
 	
 EWXWEXPORT(void,wxSplitterWindow_SetBorderSize)(void* self,int width)
 {
diff --git a/src/cpp/eljtoolbar.cpp b/src/cpp/eljtoolbar.cpp
--- a/src/cpp/eljtoolbar.cpp
+++ b/src/cpp/eljtoolbar.cpp
@@ -23,15 +23,24 @@
 	self->AddSeparator ();
 }
 
-EWXWEXPORT(void,wxToolBar_AddTool)(wxToolBar* self,int id,wxBitmap* bmp,wxString* shelp,wxString* lhelp)
+EWXWEXPORT(void, wxToolBar_AddTool)(wxToolBar* self, int toolid, const wxString& label, const wxBitmap& bitmap, const wxBitmap& bmpDisabled, wxItemKind kind = wxITEM_NORMAL, const wxString& shortHelp = wxEmptyString, const wxString& longHelp = wxEmptyString, wxObject *data = NULL)
 {
-	self->AddTool (id,*bmp,*shelp,*lhelp);
+    // the full AddTool() function
+    //
+    // If bmpDisabled is wxNullBitmap, a shadowed version of the normal bitmap
+    // is created and used as the disabled image.
+    self->AddTool(toolid,
+                  label,
+                  bitmap,
+                  bmpDisabled,
+                  wxITEM_NORMAL,
+                  shortHelp,
+                  longHelp,
+                  data);
 }
 
-EWXWEXPORT(void,wxToolBar_AddToolEx)(wxToolBar* self,int id,wxBitmap* bmp1,wxBitmap* bmp2,bool tgl,int x,int y,wxObject* dat,wxString* shelp,wxString* lhelp)
-{
-	self->AddTool (id,*bmp1,*bmp2, tgl, x, y, dat,*shelp,*lhelp);
-}
+// Obsolete
+// EWXWEXPORT(void,wxToolBar_AddToolEx)(wxToolBar* self,int id,wxBitmap* bmp1,wxBitmap* bmp2,bool tgl,int x,int y,wxObject* dat,wxString* shelp,wxString* lhelp)
 
 EWXWEXPORT(bool,wxToolBar_DeleteTool)(wxToolBar* self,int id)
 {
@@ -113,10 +122,8 @@
 	self->InsertSeparator ((size_t)pos);
 }
 
-EWXWEXPORT(void,wxToolBar_InsertTool)(wxToolBar* self,int pos,int id,wxBitmap* bmp1,wxBitmap* bmp2,bool tgl,wxObject* dat,wxString* shelp,wxString* lhelp)
-{
-	self->InsertTool ((size_t)pos, id,*bmp1,*bmp2, tgl, dat,*shelp,*lhelp);
-}
+// Obsolete
+// EWXWEXPORT(void,wxToolBar_InsertTool)(wxToolBar* self,int pos,int id,wxBitmap* bmp1,wxBitmap* bmp2,bool tgl,wxObject* dat,wxString* shelp,wxString* lhelp)
 
 EWXWEXPORT(bool,wxToolBar_Realize)(wxToolBar* self)
 {
diff --git a/src/cpp/eljvalidator.cpp b/src/cpp/eljvalidator.cpp
--- a/src/cpp/eljvalidator.cpp
+++ b/src/cpp/eljvalidator.cpp
@@ -45,9 +45,11 @@
 }
 #endif
 	
-EWXWEXPORT(void,wxValidator_SetBellOnError)(bool doIt)
+// EWXWEXPORT(void,wxValidator_SetBellOnError)(bool doIt)
+EWXWEXPORT(void,wxValidator_SuppressBellOnError)(bool doIt)
 {
-	wxValidator::SetBellOnError(doIt);
+//	wxValidator::SetBellOnError(doIt);
+	wxValidator::SuppressBellOnError(doIt);
 }
 	
 EWXWEXPORT(void*,wxTextValidator_Create)(int style,void* val)
diff --git a/src/cpp/eljwindow.cpp b/src/cpp/eljwindow.cpp
--- a/src/cpp/eljwindow.cpp
+++ b/src/cpp/eljwindow.cpp
@@ -223,10 +223,8 @@
 	self->SetExtraStyle(exStyle);
 }
 	
-EWXWEXPORT(void,wxWindow_MakeModal)(wxWindow* self,bool modal)
-{
-	self->MakeModal(modal);
-}
+// Obsolete
+// EWXWEXPORT(void,wxWindow_MakeModal)(wxWindow* self,bool modal)
 	
 EWXWEXPORT(void,wxWindow_SetFocus)(wxWindow* self)
 {
diff --git a/src/cpp/ewxw_main.cpp b/src/cpp/ewxw_main.cpp
--- a/src/cpp/ewxw_main.cpp
+++ b/src/cpp/ewxw_main.cpp
@@ -1,134 +1,134 @@
-#include "wrapper.h"
-
-extern int APPTerminating;
-
-
-#ifdef _WIN32
-
-#if (defined(__WXDEBUG__) && defined(_MSC_VER))
- #include <crtdbg.h>
-#endif
-
-#include <windows.h>
-#include <locale.h>
-
-#if wxCHECK_VERSION(2,5,0)
- #define wxHANDLE  HINSTANCE
- extern int WXDLLIMPEXP_BASE wxEntry(wxHANDLE hInstance, wxHANDLE hPrevInstance, char *pCmdLine, int nCmdShow);
-#else
- #define wxHANDLE  WXHINSTANCE
-#endif
-
-
-extern "C"
-{
-EWXWEXPORT(void, ELJApp_InitializeC) (wxClosure* closure, int _argc, char** _argv)
-{
-  wxHANDLE wxhInstance = GetModuleHandle(NULL);
-
-  /*
-   * Set the locale to "C",
-   * to prevent a wxWidgets assert failure in intl.cpp
-   */
-  setlocale(LC_ALL, "C");
-
-/* check memory leaks with visual C++ */
-#if (defined(__WXDEBUG__) && defined(_MSC_VER))
-  _CrtMemState memStart,memEnd,memDif;
-  _CrtMemCheckpoint( &memStart );
-  _CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE );
-  _CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDOUT );
-  _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
-  _CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDOUT );
-  _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
-  _CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT );
-#endif
-
-  initClosure = closure;
-  APPTerminating = 0;
-  wxEntry(wxhInstance, NULL, (_argc > 0 ? _argv[0] : NULL), SW_SHOWNORMAL);
-  APPTerminating = 1;
-
-  /* wxPendingEvents is deleted but not set to NULL -> disaster when restarted from an interpreter */
-#if !defined(WXMAKINGDLL) && !defined(WXUSINGDLL)
-  wxPendingEvents = NULL;
-#endif
-
-#if defined(wxUSE_ODBC) && (wxUSE_ODBC != 0)
-  wxDbCloseConnections();
-#endif
-
-/* check memory leaks with visual C++ */
-#if (defined(__WXDEBUG__) && defined(_MSC_VER))
-  _CrtMemCheckpoint( &memEnd );
-  if (_CrtMemDifference( &memDif, &memStart, &memEnd)
-     && (memDif.lCounts[_NORMAL_BLOCK]>=-2 && memDif.lCounts[_NORMAL_BLOCK] <= 0))
-  {
-    _RPT0(_CRT_WARN,"\n** memory leak detected (**\n" );
-    _CrtMemDumpStatistics(&memDif);
-    /* _CrtMemDumpAllObjectsSince(&memStart);  */
-    _RPT0(_CRT_WARN,"** memory leak report done **\n\n" );
-
-  }
-#endif
-}
-
-EWXWEXPORT(void, ELJApp_initialize)(void* _obj, AppInitFunc _func, char* _cmd, void* _inst)
-{
-  HINSTANCE wxhInstance = (HINSTANCE)_inst;
-  APPTerminating = 0;
-  wxEntry(wxhInstance, NULL, _cmd, SW_SHOWNORMAL);
-  APPTerminating = 1;
-  /* wxPendingEvents is deleted but not set to NULL -> disaster when restarted from an interpreter */
-#if !defined(WXMAKINGDLL) && !defined(WXUSINGDLL)
-  wxPendingEvents = NULL;
-#endif
-}
-
-}
-
-#else  /* not WIN32 */
-
-#if !wxCHECK_VERSION(2,5,0)
-#ifdef __WXMAC__ /* declare wxEntry explicitly as wxMAC seems to leave it out? */
-void wxEntry( int argc, char** argv, bool enterLoop = true );
-#endif
-#ifdef __WXGTK__ /* declare explicitly or we get link errors? */
-int wxEntry( int argc, char** argv );
-#endif
-#endif
-extern "C"
-{
-
-EWXWEXPORT(void, ELJApp_InitializeC) (wxClosure* closure, int _argc, char** _argv)
-{
-  char* args[] = { "wxc", NULL };
-
-  initClosure = closure;
-  if (_argv == NULL) {
-    /* note: wxGTK crashes when argv == NULL */
-    _argv = args;
-    _argc = 1;
-  }
-  APPTerminating = 0;
-  wxEntry(_argc,_argv);
-  APPTerminating = 1;
-  /* wxPendingEvents is deleted but not set to NULL -> disaster when restarted from an interpreter */
-#if !defined(WXMAKINGDLL) && !defined(WXUSINGDLL)
-  wxPendingEvents = NULL;
-#endif
-}
-
-EWXWEXPORT(void, ELJApp_initialize) (void* _obj, AppInitFunc _func, int _argc, void* _argv)
-{
-  APPTerminating = 0;
-  wxEntry(_argc, (char**)_argv);
-  APPTerminating = 1;
-  /* wxPendingEvents is deleted but not set to NULL -> disaster when restarted from an interpreter */
-#if !defined(WXMAKINGDLL) && !defined(WXUSINGDLL)
-  wxPendingEvents = NULL;
-#endif
-}
-
-}
-#endif
+#include "wrapper.h"
+
+extern int APPTerminating;
+
+
+#ifdef _WIN32
+
+#if (defined(__WXDEBUG__) && defined(_MSC_VER))
+ #include <crtdbg.h>
+#endif
+
+#include <windows.h>
+#include <locale.h>
+
+#if wxCHECK_VERSION(2,5,0)
+ #define wxHANDLE  HINSTANCE
+ extern int WXDLLIMPEXP_BASE wxEntry(wxHANDLE hInstance, wxHANDLE hPrevInstance, char *pCmdLine, int nCmdShow);
+#else
+ #define wxHANDLE  WXHINSTANCE
+#endif
+
+
+extern "C"
+{
+EWXWEXPORT(void, ELJApp_InitializeC) (wxClosure* closure, int _argc, char** _argv)
+{
+  wxHANDLE wxhInstance = GetModuleHandle(NULL);
+
+  /*
+   * Set the locale to "C",
+   * to prevent a wxWidgets assert failure in intl.cpp
+   */
+  setlocale(LC_ALL, "C");
+
+/* check memory leaks with visual C++ */
+#if (defined(__WXDEBUG__) && defined(_MSC_VER))
+  _CrtMemState memStart,memEnd,memDif;
+  _CrtMemCheckpoint( &memStart );
+  _CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_FILE );
+  _CrtSetReportFile( _CRT_WARN, _CRTDBG_FILE_STDOUT );
+  _CrtSetReportMode( _CRT_ERROR, _CRTDBG_MODE_FILE );
+  _CrtSetReportFile( _CRT_ERROR, _CRTDBG_FILE_STDOUT );
+  _CrtSetReportMode( _CRT_ASSERT, _CRTDBG_MODE_FILE );
+  _CrtSetReportFile( _CRT_ASSERT, _CRTDBG_FILE_STDOUT );
+#endif
+
+  initClosure = closure;
+  APPTerminating = 0;
+  wxEntry(wxhInstance, NULL, (_argc > 0 ? _argv[0] : NULL), SW_SHOWNORMAL);
+  APPTerminating = 1;
+
+  /* wxPendingEvents is deleted but not set to NULL -> disaster when restarted from an interpreter */
+#if !defined(WXMAKINGDLL) && !defined(WXUSINGDLL)
+  wxPendingEvents = NULL;
+#endif
+
+#if defined(wxUSE_ODBC) && (wxUSE_ODBC != 0)
+  wxDbCloseConnections();
+#endif
+
+/* check memory leaks with visual C++ */
+#if (defined(__WXDEBUG__) && defined(_MSC_VER))
+  _CrtMemCheckpoint( &memEnd );
+  if (_CrtMemDifference( &memDif, &memStart, &memEnd)
+     && (memDif.lCounts[_NORMAL_BLOCK]>=-2 && memDif.lCounts[_NORMAL_BLOCK] <= 0))
+  {
+    _RPT0(_CRT_WARN,"\n** memory leak detected (**\n" );
+    _CrtMemDumpStatistics(&memDif);
+    /* _CrtMemDumpAllObjectsSince(&memStart);  */
+    _RPT0(_CRT_WARN,"** memory leak report done **\n\n" );
+
+  }
+#endif
+}
+
+EWXWEXPORT(void, ELJApp_initialize)(void* _obj, AppInitFunc _func, char* _cmd, void* _inst)
+{
+  HINSTANCE wxhInstance = (HINSTANCE)_inst;
+  APPTerminating = 0;
+  wxEntry(wxhInstance, NULL, _cmd, SW_SHOWNORMAL);
+  APPTerminating = 1;
+  /* wxPendingEvents is deleted but not set to NULL -> disaster when restarted from an interpreter */
+#if !defined(WXMAKINGDLL) && !defined(WXUSINGDLL)
+  wxPendingEvents = NULL;
+#endif
+}
+
+}
+
+#else  /* not WIN32 */
+
+#if !wxCHECK_VERSION(2,5,0)
+#ifdef __WXMAC__ /* declare wxEntry explicitly as wxMAC seems to leave it out? */
+void wxEntry( int argc, char** argv, bool enterLoop = true );
+#endif
+#ifdef __WXGTK__ /* declare explicitly or we get link errors? */
+int wxEntry( int argc, char** argv );
+#endif
+#endif
+extern "C"
+{
+
+EWXWEXPORT(void, ELJApp_InitializeC) (wxClosure* closure, int _argc, char** _argv)
+{
+  char* args[] = { "wxc", NULL };
+
+  initClosure = closure;
+  if (_argv == NULL) {
+    /* note: wxGTK crashes when argv == NULL */
+    _argv = args;
+    _argc = 1;
+  }
+  APPTerminating = 0;
+  wxEntry(_argc,_argv);
+  APPTerminating = 1;
+  /* wxPendingEvents is deleted but not set to NULL -> disaster when restarted from an interpreter */
+#if !defined(WXMAKINGDLL) && !defined(WXUSINGDLL)
+  wxPendingEvents = NULL;
+#endif
+}
+
+EWXWEXPORT(void, ELJApp_initialize) (void* _obj, AppInitFunc _func, int _argc, void* _argv)
+{
+  APPTerminating = 0;
+  wxEntry(_argc, (char**)_argv);
+  APPTerminating = 1;
+  /* wxPendingEvents is deleted but not set to NULL -> disaster when restarted from an interpreter */
+#if !defined(WXMAKINGDLL) && !defined(WXUSINGDLL)
+  wxPendingEvents = NULL;
+#endif
+}
+
+}
+#endif
diff --git a/src/cpp/extra.cpp b/src/cpp/extra.cpp
--- a/src/cpp/extra.cpp
+++ b/src/cpp/extra.cpp
@@ -1,2555 +1,2553 @@
-#include "wrapper.h"
-#include "wx/process.h"
-#include "wx/textctrl.h"
-#include "wx/progdlg.h"
-#include "wx/listctrl.h"
-#include "wx/grid.h"
-#include "wx/fileconf.h"
-#include "wx/spinctrl.h"
-#include "wx/propgrid/propgrid.h"
-#include "wx/propgrid/advprops.h"
-
-#include <wx/numdlg.h>
-#include <wx/power.h>
-
-////////////////////////////////////////////////////////////////////////////////
-// wxc specific events
-////////////////////////////////////////////////////////////////////////////////
-
-BEGIN_DECLARE_EVENT_TYPES()
-    DECLARE_LOCAL_EVENT_TYPE(wxEVT_DELETE, 1000)
-#if (wxVERSION_NUMBER < 2905)	
-    DECLARE_LOCAL_EVENT_TYPE(wxEVT_HTML_CELL_CLICKED, 1001 )
-#endif
-    DECLARE_LOCAL_EVENT_TYPE(wxEVT_HTML_CELL_MOUSE_HOVER, 1002 )
-#if (wxVERSION_NUMBER < 2905)	
-    DECLARE_LOCAL_EVENT_TYPE(wxEVT_HTML_LINK_CLICKED, 1003 )
-#endif
-    DECLARE_LOCAL_EVENT_TYPE(wxEVT_HTML_SET_TITLE, 1004 )
-    DECLARE_LOCAL_EVENT_TYPE(wxEVT_INPUT_SINK, 1005 )
-    DECLARE_LOCAL_EVENT_TYPE(wxEVT_SORT, 1006 )
-END_DECLARE_EVENT_TYPES()
-
-DEFINE_LOCAL_EVENT_TYPE( wxEVT_DELETE )
-#if (wxVERSION_NUMBER < 2905)	
-DEFINE_LOCAL_EVENT_TYPE( wxEVT_HTML_CELL_CLICKED )
-#endif
-DEFINE_LOCAL_EVENT_TYPE( wxEVT_HTML_CELL_MOUSE_HOVER )
-#if (wxVERSION_NUMBER < 2905)	
-DEFINE_LOCAL_EVENT_TYPE( wxEVT_HTML_LINK_CLICKED )
-#endif
-DEFINE_LOCAL_EVENT_TYPE( wxEVT_HTML_SET_TITLE )
-DEFINE_LOCAL_EVENT_TYPE( wxEVT_INPUT_SINK )
-DEFINE_LOCAL_EVENT_TYPE( wxEVT_SORT )
-
-// Exported wxC event wrappers - must be C linkage
-extern "C" {
-  MAKE_EVENT_WRAPPER(EVT_DELETE)
-  MAKE_EVENT_WRAPPER(EVT_HTML_CELL_CLICKED)
-  MAKE_EVENT_WRAPPER(EVT_HTML_CELL_MOUSE_HOVER)
-  MAKE_EVENT_WRAPPER(EVT_HTML_LINK_CLICKED)
-  MAKE_EVENT_WRAPPER(EVT_HTML_SET_TITLE)
-  MAKE_EVENT_WRAPPER(EVT_INPUT_SINK)
-  MAKE_EVENT_WRAPPER(EVT_SORT)
-}
-
-/*-----------------------------------------------------------------------------
-  Timers
------------------------------------------------------------------------------*/
-class wxTimerEx : public wxTimer
-{
-  private:
-    wxClosure* m_closure;
-
-  public:
-    wxTimerEx();
-    ~wxTimerEx();
-
-    void Connect( wxClosure* closure );
-    wxClosure* GetClosure();
-    void Notify();
-};
-
-wxTimerEx::wxTimerEx()
-{
-  m_closure = NULL;
-}
-
-wxTimerEx::~wxTimerEx()
-{
-  if (m_closure) {
-    m_closure->DecRef();
-    m_closure=NULL;
-  }
-}
-
-void wxTimerEx::Connect( wxClosure* closure )
-{
-  if (m_closure) m_closure->DecRef();
-  m_closure = closure;
-  if (m_closure) m_closure->IncRef();
-}
-
-wxClosure* wxTimerEx::GetClosure()
-{
-  return m_closure;
-}
-
-void wxTimerEx::Notify()
-{
-#if (wxVERSION_NUMBER < 2900)
-  wxTimerEvent timerEvent(0,this->GetInterval());
-#else
-  wxTimerEvent timerEvent(*this);
-#endif
-  if (m_closure)
-    m_closure->Invoke(&timerEvent);
-}
-
-/*-----------------------------------------------------------------------------
-  wxInputSink wrapper: adds non-blocking event driven input channel
------------------------------------------------------------------------------*/
-class wxInputSink;
-
-class wxInputSinkEvent : public wxEvent
-{
-private:
-  char*         m_buffer;
-  size_t        m_bufferLen;
-  size_t        m_lastRead;
-  wxStreamError m_lastError;
-
-  void Read( wxInputStream* input );
-  friend class wxInputSink;
-
-public:
-  wxInputSinkEvent( int id, size_t bufferLen );
-  wxInputSinkEvent( const wxInputSinkEvent& event );  /* copy constructor */
-  ~wxInputSinkEvent();
-
-  wxEvent* Clone() const          { return new wxInputSinkEvent(*this); }
-
-  wxStreamError LastError() const { return m_lastError; }
-  int           LastRead()  const { return m_lastRead; }
-  char*         LastInput() const { return m_buffer;   }
-};
-
-class wxInputSink : public wxThread
-{
-private:
-  wxEvtHandler*    m_evtHandler;
-  wxInputStream*   m_input;
-  wxInputSinkEvent m_event;
-
-protected:
-  ExitCode Entry();
-
-public:
-  wxInputSink( wxInputStream* input, wxEvtHandler* evtHandler, int bufferLen );
-  ~wxInputSink();
-
-  intptr_t GetId();
-  void Start();
-};
-
-
-wxInputSink::wxInputSink( wxInputStream* input, wxEvtHandler* evtHandler, int bufferLen )
-  : wxThread(wxTHREAD_DETACHED), m_event( 0, bufferLen )
-{
-  m_input      = input;
-  m_evtHandler = evtHandler;
-}
-
-wxInputSink::~wxInputSink()
-{
-/* fprintf(stderr, "InputSink is deleted\n"); */
-}
-
-void wxInputSink::Start()
-{
-  wxThreadError result = Create();
-  switch(result) {
-    case wxTHREAD_NO_ERROR:  Run(); break;
-    case wxTHREAD_RUNNING :  break;
-    default               :  Delete(); break;
-  }
-}
-
-intptr_t wxInputSink::GetId()
-{
-  return (intptr_t)m_input;
-}
-
-wxThread::ExitCode wxInputSink::Entry()
-{
-  if (m_input == NULL || m_evtHandler == NULL || m_event.m_buffer == NULL ) return 0;
-
-  m_event.SetId(GetId());
-
-  /* while input && not external destroy */
-  while (!TestDestroy() && m_event.LastError() == wxSTREAM_NO_ERROR)
-  {
-     /* (blocking) read */
-     m_event.Read( m_input );
-
-     /* post the event to the main gui thread (note: event is cloned and thus the input buffer copied)*/
-     m_evtHandler->AddPendingEvent(m_event);
-  }
-
-  /* Process pending events */
-  wxWakeUpIdle();
-
-  /* return */
-  if (m_event.LastError() == wxSTREAM_NO_ERROR || m_event.LastError() == wxSTREAM_EOF)
-     return (ExitCode)0;
-  else
-     return (ExitCode)1;
-}
-
-
-wxInputSinkEvent::wxInputSinkEvent( int id, size_t bufferLen ) : wxEvent( id, wxEVT_INPUT_SINK  )
-{
-  m_lastError = wxSTREAM_NO_ERROR;
-  m_lastRead  = 0;
-  if (bufferLen <= 0) bufferLen = 128;
-  m_buffer    = (char*)malloc( bufferLen + 1 );
-  m_bufferLen = (m_buffer ? bufferLen : 0);
-}
-
-wxInputSinkEvent::wxInputSinkEvent( const wxInputSinkEvent& event ) : wxEvent( event )
-{
-  /* we copy only the exact input buffer, as 'Read' will never be called */
-  m_lastError = event.m_lastError;
-  m_bufferLen = 0;
-  m_lastRead  = 0;
-  m_buffer    = (char*)malloc( event.m_lastRead + 1 );
-  if (m_buffer) {
-    m_bufferLen = event.m_lastRead;
-    m_lastRead  = event.m_lastRead;
-    memcpy( m_buffer, event.m_buffer, m_lastRead );
-    m_buffer[m_lastRead] = 0;
-  }
-}
-
-wxInputSinkEvent::~wxInputSinkEvent()
-{
-  if (m_buffer) free(m_buffer);
-}
-
-void wxInputSinkEvent::Read( wxInputStream* input )
-{
-  /* check */
-  if (input == NULL || m_buffer == NULL || m_bufferLen == 0) {
-    m_lastError = wxSTREAM_READ_ERROR;
-    m_lastRead  = 0;
-    return;
-  }
-
-  /* read */
-  input->Read( m_buffer, m_bufferLen );
-#if wxCHECK_VERSION(2,5,0)
-  m_lastError = input->GetLastError();
-#else
-  m_lastError = input->LastError();
-#endif
-  if (m_lastError == wxSTREAM_NO_ERROR)
-    m_lastRead  = input->LastRead();
-  else
-    m_lastRead  = 0;
-
-
-  /* maintain invariants */
-  if (m_lastRead < 0)           m_lastRead = 0;
-  if (m_lastRead > m_bufferLen) m_lastRead = m_bufferLen;
-
-  /* add zero terminator */
-  m_buffer[m_lastRead] = 0;
-}
-
-
-/*-----------------------------------------------------------------------------
-  wxHtmlWindow wrapper: adds normal events instead of using inheritance
------------------------------------------------------------------------------*/
-class wxcHtmlWindow : public wxHtmlWindow
-{
-private:
-    DECLARE_DYNAMIC_CLASS(wxcHtmlWindow)
-public:
-    wxcHtmlWindow() : wxHtmlWindow() {};   wxcHtmlWindow(wxWindow *, wxWindowID id, const wxPoint&, const wxSize& size, long style, const wxString& );
-
-#if (wxVERSION_NUMBER <= 2800)
-   void OnCellClicked(wxHtmlCell *cell, wxCoord x, wxCoord y, const wxMouseEvent& event);
-#else
-   bool OnCellClicked(wxHtmlCell *cell, wxCoord x, wxCoord y, const wxMouseEvent& event);
-#endif
-   void OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y);
-   void OnLinkClicked(const wxHtmlLinkInfo& link);
-   wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType type,const wxString& url, wxString *redirect);
-   void OnSetTitle(const wxString& title);
-};
-
-IMPLEMENT_DYNAMIC_CLASS(wxcHtmlWindow, wxHtmlWindow)
-
-class wxcHtmlEvent : public wxCommandEvent
-{
-private:
-    DECLARE_DYNAMIC_CLASS(wxcHtmlEvent)
-private:
-    const wxMouseEvent*     m_mouseEvent;
-    const wxHtmlCell*       m_htmlCell;
-    const wxHtmlLinkInfo*   m_linkInfo;
-    wxPoint                 m_logicalPosition;
-
-public:
-    wxcHtmlEvent() : wxCommandEvent() {};
-    wxcHtmlEvent( wxEventType commandType, int id, const wxMouseEvent* mouseEvent, const wxHtmlCell* htmlCell, const wxHtmlLinkInfo* linkInfo, wxPoint logicalPoint );
-    const wxMouseEvent* GetMouseEvent();
-    const wxHtmlCell *  GetHtmlCell();
-    wxString*           GetHtmlCellId();
-    wxString*           GetHref();
-    wxString*           GetTarget();
-    wxPoint             GetLogicalPosition();
-};
-
-IMPLEMENT_DYNAMIC_CLASS(wxcHtmlEvent, wxCommandEvent)
-
-wxcHtmlWindow::wxcHtmlWindow(wxWindow * prt, wxWindowID id, const wxPoint& pt, const wxSize& size, long style, const wxString& title )
-: wxHtmlWindow( prt, id, pt, size, style, title )
-{}
-
-#if (wxVERSION_NUMBER < 2800)
-void wxcHtmlWindow::OnCellClicked(wxHtmlCell *cell, wxCoord x, wxCoord y, const wxMouseEvent& event)
-#else
-bool wxcHtmlWindow::OnCellClicked(wxHtmlCell *cell, wxCoord x, wxCoord y, const wxMouseEvent& event)
-#endif
-{
-    wxHtmlLinkInfo* linkPtr;
-#if (wxVERSION_NUMBER < 2800)
-    if (cell==NULL) return;
-#else
-    if (cell==NULL) return false;
-#endif
-
-    linkPtr = cell->GetLink(x, y);
-    if (linkPtr != NULL)
-    {
-        wxHtmlLinkInfo link(*linkPtr);
-        link.SetEvent(&event);
-        link.SetHtmlCell(cell);
-        {
-          wxcHtmlEvent htmlEvent( wxEVT_HTML_LINK_CLICKED, this->GetId(), &event, cell, &link, wxPoint(x,y) );
-          this->ProcessEvent( htmlEvent );
-        }
-    }
-    else
-    {
-      wxcHtmlEvent htmlEvent( wxEVT_HTML_CELL_CLICKED, this->GetId(), &event, cell, NULL, wxPoint(x,y) );
-      this->ProcessEvent( htmlEvent );
-    }
-#if (wxVERSION_NUMBER >= 2800)
-    return true;
-#endif
-}
-
-void wxcHtmlWindow::OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y)
-{
-    wxcHtmlEvent htmlEvent( wxEVT_HTML_CELL_MOUSE_HOVER, this->GetId(), NULL, cell, NULL, wxPoint(x,y) );
-    this->ProcessEvent( htmlEvent );
-}
-
-void wxcHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link)
-{
-    wxcHtmlEvent htmlEvent( wxEVT_HTML_LINK_CLICKED, this->GetId(), link.GetEvent(), link.GetHtmlCell(), &link, wxPoint(-1,-1) );
-    this->ProcessEvent( htmlEvent );
-}
-
-void wxcHtmlWindow::OnSetTitle(const wxString& title)
-{
-    wxcHtmlEvent htmlEvent( wxEVT_HTML_SET_TITLE, this->GetId(), NULL, NULL, NULL, wxPoint(-1,-1) );
-    htmlEvent.SetString( title );
-    this->ProcessEvent( htmlEvent );
-}
-
-
-wxcHtmlEvent::wxcHtmlEvent( wxEventType commandType, int id, const wxMouseEvent* mouseEvent, const wxHtmlCell* htmlCell, const wxHtmlLinkInfo* linkInfo, wxPoint logicalPoint )
-: wxCommandEvent( commandType, id )
-{
-    m_mouseEvent = mouseEvent;
-    m_htmlCell = htmlCell;
-    m_linkInfo = linkInfo;
-    m_logicalPosition = logicalPoint;
-}
-
-const wxMouseEvent* wxcHtmlEvent::GetMouseEvent()
-{
-    return m_mouseEvent;
-}
-
-const wxHtmlCell *  wxcHtmlEvent::GetHtmlCell()
-{
-    return m_htmlCell;
-}
-
-wxString* wxcHtmlEvent::GetHtmlCellId()
-{
-    if (m_htmlCell)
-        return new wxString(m_htmlCell->GetId());
-    else
-        return new wxString(wxT(""));
-}
-
-wxString* wxcHtmlEvent::GetHref()
-{
-    if (m_linkInfo)
-        return new wxString(m_linkInfo->GetHref());
-    else
-        return new wxString(wxT(""));
-}
-
-wxString* wxcHtmlEvent::GetTarget()
-{
-    if (m_linkInfo)
-        return new wxString (m_linkInfo->GetTarget());
-    else
-        return new wxString(wxT(""));
-}
-
-wxPoint wxcHtmlEvent::GetLogicalPosition()
-{
-    return m_logicalPosition;
-}
-
-/*-----------------------------------------------------------------------------
-  wxGridCellTextEnterEditor
------------------------------------------------------------------------------*/
-class wxGridCellTextEnterEditor : public wxGridCellTextEditor
-{
-public:
-  wxGridCellTextEnterEditor() : wxGridCellTextEditor() {}
-
-  void Create(wxWindow* parent,
-                        wxWindowID id,
-                        wxEvtHandler* evtHandler);
-
-};
-
-void wxGridCellTextEnterEditor::Create(wxWindow* parent,
-                                       wxWindowID id,
-                                       wxEvtHandler* evtHandler)
-{
-    wxGridCellTextEditor::Create(parent, id, evtHandler);
-    
-    {
-      long style = m_control->GetWindowStyle();
-      m_control->SetWindowStyle( style | wxTE_PROCESS_ENTER );
-    }
-}
-
-
-/*-----------------------------------------------------------------------------
-  pre processor definitions
------------------------------------------------------------------------------*/
-static const wxChar* defineDefs[] = {
-#ifdef __WINDOWS__
-  wxT("__WINDOWS__"),
-#endif // any Windows, yom may also use
-#ifdef __WIN16__
-  wxT("__WIN16__"),
-#endif // Win16 API
-#ifdef __WIN32__
-  wxT("__WIN32__"),
-#endif // Win32 API
-#ifdef __WIN95__
-  wxT("__WIN95__"),
-#endif // Windows 95 or NT 4.0 and above system (not NT 3.5x)
-#ifdef __WXGTK__
-  wxT("__WXGTK__"),
-#endif // GTK
-#ifdef __WXGTK12__
-  wxT("__WXGTK12__"),
-#endif // GTK 1.2 or higher
-#ifdef __WXGTK20__
-  wxT("__WXGTK20__"),
-#endif // GTK 2.0 or higher
-#ifdef __WXMOTIF__
-  wxT("__WXMOTIF__"),
-#endif // Motif
-#ifdef __WXMAC__
-  wxT("__WXMAC__"),
-#endif // MacOS
-#ifdef __WXMGL__
-  wxT("__WXMGL__"),
-#endif // SciTech Soft MGL
-#ifdef __WXUNIVERSAL__
-  wxT("__WXUNIVERSAL__"),
-#endif //will be also defined)
-#ifdef __WXMSW__
-  wxT("__WXMSW__"),
-#endif // Any Windows
-#ifdef __WXOS2__
-  wxT("__WXOS2__"),
-#endif // OS/2 native Presentation Manager
-#ifdef __WXPM__
-  wxT("__WXPM__"),
-#endif // OS/2 native Presentation Manager
-#ifdef __WXSTUBS__
-  wxT("__WXSTUBS__"),
-#endif // Stubbed version ('template' wxWin implementation)
-#ifdef __WXXT__
-  wxT("__WXXT__"),
-#endif // Xt; mutually exclusive with WX_MOTIF, not implemented in wxWindows 2.x
-// wxX11
-#ifdef __WXX11__
-  wxT("__WXX11__"),
-#endif
-#ifdef __WXUNIVERSAL__
-  wxT("__WXUNIVERSAL__"),
-#endif //will be also defined)
-#ifdef __WXWINE__
-  wxT("__WXWINE__"),
-#endif // WINE (i.e. Win32 on Unix)
-#ifdef __WXUNIVERSAL__
-  wxT("__WXUNIVERSAL__"),
-#endif // wxUniversal port, always defined in addition to one of the symbols above so this should be tested first.
-#ifdef __X__
-  wxT("__X__"),
-#endif // any X11-based GUI toolkit except GTK+
-
-// any Mac OS version
-#ifdef __APPLE__
-  wxT("__APPLE__"),
-#endif
-// AIX
-#ifdef __AIX__
-  wxT("__AIX__"),
-#endif
-// Any BSD
-#ifdef __BSD__
-  wxT("__BSD__"),
-#endif
-// Cygwin: Unix on Win32
-#ifdef __CYGWIN__
-  wxT("__CYGWIN__"),
-#endif
-// Mac OS X
-#ifdef __DARWIN__
-  wxT("__DARWIN__"),
-#endif
-#ifdef ____DATA_GENERAL____
-  wxT("__DATA_GENERAL__"),
-#endif
-// DOS (used with wxMGL only)
-#ifdef __DOS_GENERAL__
-  wxT("__DOS_GENERAL__"),
-#endif
-// FreeBSD
-#ifdef __FREEBSD__
-  wxT("__FREEBSD__"),
-#endif
-// HP-UX (Unix)
-#ifdef ____HPUX____
-  wxT("__HPUX__"),
-#endif
-// Linux
-#ifdef __LINUX__
-  wxT("__LINUX__"),
-#endif
-// OSF/1
-#ifdef __OSF__
-  wxT("__OSF__"),
-#endif
-// IRIX
-#ifdef __SGI__
-  wxT("__SGI__"),
-#endif
-// Solaris
-#ifdef __SOLARIS__
-  wxT("__SOLARIS__"),
-#endif
-// Any Sun
-#ifdef __SUN__
-  wxT("__SUN__"),
-#endif
-// Sun OS
-#ifdef __SUNOS__
-  wxT("__SUNOS__"),
-#endif
-// SystemV R4
-#ifdef __SVR4__
-  wxT("__SVR4__"),
-#endif
-// SystemV generic
-#ifdef __SYSV__
-  wxT("__SYSV__"),
-#endif
-// Ultrix
-#ifdef __ULTRIX__
-  wxT("__ULTRIX__"),
-#endif
-// any Unix
-#ifdef __UNIX__
-  wxT("__UNIX__"),
-#endif
-// Unix, BeOS or VMS
-#ifdef __UNIX_LIKE__
-  wxT("__UNIX_LIKE__"),
-#endif
-// VMS
-#ifdef __VMS__
-  wxT("__VMS__"),
-#endif
-// any Windows
-#ifdef __WINDOWS__
-  wxT("__WINDOWS__"),
-#endif
-
-// DEC Alpha architecture
-#ifdef __ALPHA__
-  wxT("__ALPHA__"),
-#endif
-// Intel i386 or compatible
-#ifdef __INTEL__
-  wxT("__INTEL__"),
-#endif
-// Motorola Power PC
-#ifdef __POWERPC__
-  wxT("__POWERPC__"),
-#endif
-
-// Borland C++
-#ifdef __BORLANDC__
-  wxT("__BORLANDC__"),
-#endif
-// DJGPP
-#ifdef __DJGPP__
-  wxT("__DJGPP__"),
-#endif
-// Gnu C++ on any platform
-#ifdef __GNUG__
-  wxT("__GNUG__"),
-#endif
-// GnuWin32 compiler
-#ifdef __GNUWIN32__
-  wxT("__GNUWIN32__"),
-#endif
-// CodeWarrior MetroWerks compiler
-#ifdef __MWERKS__
-  wxT("__MWERKS__"),
-#endif
-// Sun CC
-#ifdef __SUNCC__
-  wxT("__SUNCC__"),
-#endif
-// Symantec C++
-#ifdef __SYMANTECC__
-  wxT("__SYMANTECC__"),
-#endif
-// IBM Visual Age (OS/2)
-#ifdef __VISAGECPP__
-  wxT("__VISAGECPP__"),
-#endif
-// Microsoft Visual C++
-#ifdef __VISUALC__
-  wxT("__VISUALC__"),
-#endif
-// AIX compiler
-#ifdef __XLC__
-  wxT("__XLC__"),
-#endif
-// Watcom C++
-#ifdef __WATCOMC__
-  wxT("__WATCOMC__"),
-#endif
-  NULL
-};
-
-static const wxChar* useDefs[] = {
-#ifdef wxUSE_UNIX
-  wxT("UNIX"),
-#endif
-#ifdef wxUSE_NANOX
-  wxT("NANOX"),
-#endif
-#ifdef wxUSE_NATIVE_STATUSBAR
-  wxT("NATIVE_STATUSBAR"),
-#endif
-#ifdef wxUSE_OWNER_DRAWN
-  wxT("OWNER_DRAWN"),
-#endif
-#ifdef wxUSE_OWNER_DRAWN
-  wxT("OWNER_DRAWN"),
-#endif
-#ifdef wxUSE_RICHEDIT
-  wxT("RICHEDIT"),
-#endif
-#ifdef wxUSE_RICHEDIT
-  wxT("RICHEDIT"),
-#endif
-#ifdef wxUSE_REGEX
-  wxT("REGEX"),
-#endif
-#ifdef wxUSE_ZLIB
-  wxT("ZLIB"),
-#endif
-#ifdef wxUSE_LIBPNG
-  wxT("LIBPNG"),
-#endif
-#ifdef wxUSE_LIBJPEG
-  wxT("LIBJPEG"),
-#endif
-#ifdef wxUSE_LIBTIFF
-  wxT("LIBTIFF"),
-#endif
-#ifdef wxUSE_ODBC
-  wxT("ODBC"),
-#endif
-#ifdef wxUSE_FREETYPE
-  wxT("FREETYPE"),
-#endif
-#ifdef wxUSE_THREADS
-  wxT("THREADS"),
-#endif
-#if defined(wxcREFUSE_OPENGL)
-# undef wxUSE_OPENGL
-# undef wxUSE_GLCANVAS
-#endif
-#ifdef wxUSE_OPENGL
-  wxT("OPENGL"),
-#endif
-#ifdef wxUSE_GLCANVAS
-  wxT("GLCANVAS"),
-#endif
-#ifdef wxUSE_GUI
-  wxT("GUI"),
-#endif
-#ifdef wxUSE_NOGUI
-  wxT("NOGUI"),
-#endif
-#ifdef wxUSE_ON_FATAL_EXCEPTION
-  wxT("ON_FATAL_EXCEPTION"),
-#endif
-#ifdef wxUSE_SNGLINST_CHECKER
-  wxT("SNGLINST_CHECKER"),
-#endif
-#ifdef wxUSE_CONSTRAINTS
-  wxT("CONSTRAINTS"),
-#endif
-#ifdef wxUSE_VALIDATORS
-  wxT("VALIDATORS"),
-#endif
-#ifdef wxUSE_CONTROLS
-  wxT("CONTROLS"),
-#endif
-#ifdef wxUSE_POPUPWIN
-  wxT("POPUPWIN"),
-#endif
-#ifdef wxUSE_TIPWINDOW
-  wxT("TIPWINDOW"),
-#endif
-#ifdef wxUSE_ACCEL
-  wxT("ACCEL"),
-#endif
-#ifdef wxUSE_CALENDARCTRL
-  wxT("CALENDARCTRL"),
-#endif
-#ifdef wxUSE_FILEDLG
-  wxT("FILEDLG"),
-#endif
-#ifdef wxUSE_FINDREPLDLG
-  wxT("FINDREPLDLG"),
-#endif
-#ifdef wxUSE_FONTDLG
-  wxT("FONTDLG"),
-#endif
-#ifdef wxUSE_MIMETYPE
-  wxT("MIMETYPE"),
-#endif
-#ifdef wxUSE_SYSTEM_OPTIONS
-  wxT("SYSTEM_OPTIONS"),
-#endif
-#ifdef wxUSE_MSGDLG
-  wxT("MSGDLG"),
-#endif
-#ifdef wxUSE_NUMBERDLG
-  wxT("NUMBERDLG"),
-#endif
-#ifdef wxUSE_TEXTDLG
-  wxT("TEXTDLG"),
-#endif
-#ifdef wxUSE_STARTUP_TIPS
-  wxT("STARTUP_TIPS"),
-#endif
-#ifdef wxUSE_PROGRESSDLG
-  wxT("PROGRESSDLG"),
-#endif
-#ifdef wxUSE_CHOICEDLG
-  wxT("CHOICEDLG"),
-#endif
-#ifdef wxUSE_COLOURDLG
-  wxT("COLOURDLG"),
-#endif
-#ifdef wxUSE_DIRDLG
-  wxT("DIRDLG"),
-#endif
-#ifdef wxUSE_DRAGIMAGE
-  wxT("DRAGIMAGE"),
-#endif
-#ifdef wxUSE_PROPSHEET
-  wxT("PROPSHEET"),
-#endif
-#ifdef wxUSE_WIZARDDLG
-  wxT("WIZARDDLG"),
-#endif
-#ifdef wxUSE_SPLASH
-  wxT("SPLASH"),
-#endif
-#ifdef wxUSE_JOYSTICK
-  wxT("JOYSTICK"),
-#endif
-#ifdef wxUSE_BUTTON
-  wxT("BUTTON"),
-#endif
-#ifdef wxUSE_CARET
-  wxT("CARET"),
-#endif
-#ifdef wxUSE_BMPBUTTON
-  wxT("BMPBUTTON"),
-#endif
-#ifdef wxUSE_CHECKBOX
-  wxT("CHECKBOX"),
-#endif
-#ifdef wxUSE_CHECKLISTBOX
-  wxT("CHECKLISTBOX"),
-#endif
-#ifdef wxUSE_COMBOBOX
-  wxT("COMBOBOX"),
-#endif
-#ifdef wxUSE_CHOICE
-  wxT("CHOICE"),
-#endif
-#ifdef wxUSE_GAUGE
-  wxT("GAUGE"),
-#endif
-#ifdef wxUSE_GRID
-  wxT("GRID"),
-#endif
-#ifdef wxUSE_NEW_GRID
-  wxT("NEW_GRID"),
-#endif
-#ifdef wxUSE_IMAGLIST
-  wxT("IMAGLIST"),
-#endif
-#ifdef wxUSE_LISTBOX
-  wxT("LISTBOX"),
-#endif
-#ifdef wxUSE_LISTCTRL
-  wxT("LISTCTRL"),
-#endif
-#ifdef wxUSE_MENUS
-  wxT("MENUS"),
-#endif
-#ifdef wxUSE_NOTEBOOK
-  wxT("NOTEBOOK"),
-#endif
-#ifdef wxUSE_RADIOBOX
-  wxT("RADIOBOX"),
-#endif
-#ifdef wxUSE_RADIOBTN
-  wxT("RADIOBTN"),
-#endif
-#ifdef wxUSE_SASH
-  wxT("SASH"),
-#endif
-#ifdef wxUSE_SCROLLBAR
-  wxT("SCROLLBAR"),
-#endif
-#ifdef wxUSE_SLIDER
-  wxT("SLIDER"),
-#endif
-#ifdef wxUSE_SPINBTN
-  wxT("SPINBTN"),
-#endif
-#ifdef wxUSE_SPINCTRL
-  wxT("SPINCTRL"),
-#endif
-#ifdef wxUSE_SPLITTER
-  wxT("SPLITTER"),
-#endif
-#ifdef wxUSE_STATBMP
-  wxT("STATBMP"),
-#endif
-#ifdef wxUSE_STATBOX
-  wxT("STATBOX"),
-#endif
-#ifdef wxUSE_STATLINE
-  wxT("STATLINE"),
-#endif
-#ifdef wxUSE_STATTEXT
-  wxT("STATTEXT"),
-#endif
-#ifdef wxUSE_STATUSBAR
-  wxT("STATUSBAR"),
-#endif
-#ifdef wxUSE_TOGGLEBTN
-  wxT("TOGGLEBTN"),
-#endif
-#ifdef wxUSE_TAB_DIALOG
-  wxT("TAB_DIALOG"),
-#endif
-#ifdef wxUSE_TABDIALOG
-  wxT("TABDIALOG"),
-#endif
-#ifdef wxUSE_TEXTCTRL
-  wxT("TEXTCTRL"),
-#endif
-#ifdef wxUSE_TOOLBAR
-  wxT("TOOLBAR"),
-#endif
-#ifdef wxUSE_TOOLBAR_NATIVE
-  wxT("TOOLBAR_NATIVE"),
-#endif
-#ifdef wxUSE_TOOLBAR_SIMPLE
-  wxT("TOOLBAR_SIMPLE"),
-#endif
-#ifdef wxUSE_BUTTONBAR
-  wxT("BUTTONBAR"),
-#endif
-#ifdef wxUSE_TREELAYOUT
-  wxT("TREELAYOUT"),
-#endif
-#ifdef wxUSE_TREECTRL
-  wxT("TREECTRL"),
-#endif
-#ifdef wxUSE_LONGLONG
-  wxT("LONGLONG"),
-#endif
-#ifdef wxUSE_GEOMETRY
-  wxT("GEOMETRY"),
-#endif
-#ifdef wxUSE_CMDLINE_PARSER
-  wxT("CMDLINE_PARSER"),
-#endif
-#ifdef wxUSE_DATETIME
-  wxT("DATETIME"),
-#endif
-#ifdef wxUSE_FILE
-  wxT("FILE"),
-#endif
-#ifdef wxUSE_FFILE
-  wxT("FFILE"),
-#endif
-#ifdef wxUSE_FSVOLUME
-  wxT("FSVOLUME"),
-#endif
-#ifdef wxUSE_TEXTBUFFER
-  wxT("TEXTBUFFER"),
-#endif
-#ifdef wxUSE_TEXTFILE
-  wxT("TEXTFILE"),
-#endif
-#ifdef wxUSE_LOG
-  wxT("LOG"),
-#endif
-#ifdef wxUSE_LOGWINDOW
-  wxT("LOGWINDOW"),
-#endif
-#ifdef wxUSE_LOGGUI
-  wxT("LOGGUI"),
-#endif
-#ifdef wxUSE_LOG_DIALOG
-  wxT("LOG_DIALOG"),
-#endif
-#ifdef wxUSE_STOPWATCH
-  wxT("STOPWATCH"),
-#endif
-#ifdef wxUSE_TIMEDATE
-  wxT("TIMEDATE"),
-#endif
-#ifdef wxUSE_WAVE
-  wxT("WAVE"),
-#endif
-#ifdef wxUSE_SOUND
-  wxT("SOUND"),
-#endif
-#ifdef wxUSE_CONFIG
-  wxT("CONFIG"),
-#endif
-#ifdef wxUSE_FONTMAP
-  wxT("FONTMAP"),
-#endif
-#ifdef wxUSE_INTL
-  wxT("INTL"),
-#endif
-#ifdef wxUSE_PROTOCOL
-  wxT("PROTOCOL"),
-#endif
-#ifdef wxUSE_PROTOCOL_FILE
-  wxT("PROTOCOL_FILE"),
-#endif
-#ifdef wxUSE_PROTOCOL_FTP
-  wxT("PROTOCOL_FTP"),
-#endif
-#ifdef wxUSE_PROTOCOL_HTTP
-  wxT("PROTOCOL_HTTP"),
-#endif
-#ifdef wxUSE_STREAMS
-  wxT("STREAMS"),
-#endif
-#ifdef wxUSE_SOCKETS
-  wxT("SOCKETS"),
-#endif
-#ifdef wxUSE_DIALUP_MANAGER
-  wxT("DIALUP_MANAGER"),
-#endif
-#ifdef wxUSE_STD_IOSTREAM
-  wxT("STD_IOSTREAM"),
-#endif
-#ifdef wxUSE_DYNLIB_CLASS
-  wxT("DYNLIB_CLASS"),
-#endif
-#ifdef wxUSE_DYNAMIC_LOADER
-  wxT("DYNAMIC_LOADER"),
-#endif
-#ifdef wxUSE_TIMER
-  wxT("TIMER"),
-#endif
-#ifdef wxUSE_AFM_FOR_POSTSCRIPT
-  wxT("AFM_FOR_POSTSCRIPT"),
-#endif
-#ifdef wxUSE_NORMALIZED_PS_FONTS
-  wxT("NORMALIZED_PS_FONTS"),
-#endif
-#ifdef wxUSE_POSTSCRIPT
-  wxT("POSTSCRIPT"),
-#endif
-#ifdef wxUSE_WCHAR_T
-  wxT("WCHAR_T"),
-#endif
-#ifdef wxUSE_UNICODE
-  wxT("UNICODE"),
-#endif
-#ifdef wxUSE_UNICODE_MSLU
-  wxT("UNICODE_MSLU"),
-#endif
-#ifdef wxUSE_URL
-  wxT("URL"),
-#endif
-#ifdef wxUSE_WCSRTOMBS
-  wxT("WCSRTOMBS"),
-#endif
-#ifdef wxUSE_EXPERIMENTAL_
-  wxT("EXPERIMENTAL_PRINTF"),
-#endif
-#ifdef wxUSE_IPC
-  wxT("IPC"),
-#endif
-#ifdef wxUSE_X_RESOURCES
-  wxT("X_RESOURCES"),
-#endif
-#ifdef wxUSE_CLIPBOARD
-  wxT("CLIPBOARD"),
-#endif
-#ifdef wxUSE_DATAOBJ
-  wxT("DATAOBJ"),
-#endif
-#ifdef wxUSE_TOOLTIPS
-  wxT("TOOLTIPS"),
-#endif
-#ifdef wxUSE_DRAG_AND_DROP
-  wxT("DRAG_AND_DROP"),
-#endif
-#ifdef wxUSE_OLE
-  wxT("OLE"),
-#endif
-#ifdef wxUSE_SPLINES
-  wxT("SPLINES"),
-#endif
-#ifdef wxUSE_MDI_ARCHITECTURE
-  wxT("MDI_ARCHITECTURE"),
-#endif
-#ifdef wxUSE_DOC_VIEW_ARCHITECTURE
-  wxT("DOC_VIEW_ARCHITECTURE"),
-#endif
-#ifdef wxUSE_PRINTING_ARCHITECTURE
-  wxT("PRINTING_ARCHITECTURE"),
-#endif
-#ifdef wxUSE_PROLOGIO
-  wxT("PROLOGIO"),
-#endif
-#ifdef wxUSE_RESOURCES
-  wxT("RESOURCES"),
-#endif
-#ifdef wxUSE_WX_RESOURCES
-  wxT("WX_RESOURCES"),
-#endif
-#ifdef wxUSE_HELP
-  wxT("HELP"),
-#endif
-#ifdef wxUSE_WXHTML_HELP
-  wxT("WXHTML_HELP"),
-#endif
-#ifdef wxUSE_MS_HTML_HELP
-  wxT("MS_HTML_HELP"),
-#endif
-#ifdef wxUSE_IOSTREAMH
-  wxT("IOSTREAMH"),
-#endif
-#ifdef wxUSE_APPLE_IEEE
-  wxT("APPLE_IEEE"),
-#endif
-#ifdef wxUSE_MEMORY_TRACING
-  wxT("MEMORY_TRACING"),
-#endif
-#ifdef wxUSE_DEBUG_NEW_ALWAYS
-  wxT("DEBUG_NEW_ALWAYS"),
-#endif
-#ifdef wxUSE_DEBUG_CONTEXT
-  wxT("DEBUG_CONTEXT"),
-#endif
-#ifdef wxUSE_GLOBAL_MEMORY_OPERATORS
-  wxT("GLOBAL_MEMORY_OPERATORS"),
-#endif
-#ifdef wxUSE_SPLINES
-  wxT("SPLINES"),
-#endif
-#ifdef wxUSE_DYNAMIC_CLASSES
-  wxT("DYNAMIC_CLASSES"),
-#endif
-#ifdef wxUSE_METAFILE
-  wxT("METAFILE"),
-#endif
-#ifdef wxUSE_ENH_METAFILE
-  wxT("ENH_METAFILE"),
-#endif
-#ifdef wxUSE_MINIFRAME
-  wxT("MINIFRAME"),
-#endif
-#ifdef wxUSE_HTML
-  wxT("HTML"),
-#endif
-#ifdef wxUSE_FILESYSTEM
-  wxT("FILESYSTEM"),
-#endif
-#ifdef wxUSE_FS_INET
-  wxT("FS_INET"),
-#endif
-#ifdef wxUSE_FS_ZIP
-  wxT("FS_ZIP"),
-#endif
-#ifdef wxUSE_BUSYINFO
-  wxT("BUSYINFO"),
-#endif
-#ifdef wxUSE_ZIPSTREAM
-  wxT("ZIPSTREAM"),
-#endif
-#ifdef wxUSE_PALETTE
-  wxT("PALETTE"),
-#endif
-#ifdef wxUSE_IMAGE
-  wxT("IMAGE"),
-#endif
-#ifdef wxUSE_GIF
-  wxT("GIF"),
-#endif
-#ifdef wxUSE_PCX
-  wxT("PCX"),
-#endif
-#ifdef wxUSE_IFF
-  wxT("IFF"),
-#endif
-#ifdef wxUSE_PNM
-  wxT("PNM"),
-#endif
-#ifdef wxUSE_XPM
-  wxT("XPM"),
-#endif
-#ifdef wxUSE_ICO_CUR
-  wxT("ICO_CUR"),
-#endif
-
-// detect using optional libraries in the contrib hierarchy.
-#ifdef wxUSE_STC
-  wxT("STC"),
-#endif
-  NULL
-};
-
-
-static const wxChar* hasDefs[] = {
-#ifdef wxHAS_POWER_EVENTS
-  wxT("POWER_EVENTS"),
-#endif
-#ifdef wxHAS_RADIO_MENU_ITEMS
-  wxT("RADIO_MENU_ITEMS"),
-#endif
-  NULL
-};
-
-/*-----------------------------------------------------------------------------
-  EXTERN C
------------------------------------------------------------------------------*/
-extern "C"
-{
-
-/*-----------------------------------------------------------------------------
-  String
------------------------------------------------------------------------------*/
-typedef char utf8char;
-
-EWXWEXPORT(wxString*,wxString_Create)(wxChar* buffer)
-{
-  return new wxString(buffer);
-}
-
-EWXWEXPORT(wxString*,wxString_CreateUTF8)(utf8char* buffer)
-{
-  return new wxString (buffer,wxConvUTF8);
-}
-
-EWXWEXPORT(wxString*,wxString_CreateLen)(wxChar* buffer,int len)
-{
-  return new wxString(buffer,len);
-}
-
-EWXWEXPORT(void,wxString_Delete)(wxString* s)
-{
-  delete s;
-}
-
-EWXWEXPORT(int,wxString_GetString)(wxString* s,wxChar* buffer)
-{
-  if (buffer) memcpy (buffer, s->wc_str(), s->Length() * sizeof(wxChar));
-  return s->Length();
-}
-
-EWXWEXPORT(size_t,wxString_Length)(wxString* s)
-{
-  return s->length();
-}
-
-EWXWEXPORT(wxCharBuffer*,wxString_GetUtf8)(wxString* s)
-{
-  wxCharBuffer *cb = new wxCharBuffer;
-  *cb = s->utf8_str();
-  return cb;
-}
-
-EWXWEXPORT(utf8char*,wxCharBuffer_DataUtf8)(wxCharBuffer* cb)
-{
-  return (utf8char*)cb->data();
-}
-
-EWXWEXPORT(void,wxCharBuffer_Delete)(wxCharBuffer* cb)
-{
-  delete cb;
-}
-/*-----------------------------------------------------------------------------
-  Point
------------------------------------------------------------------------------*/
-EWXWEXPORT(void*,wxPoint_Create)(int x,int y)
-{
-  return new wxPoint(x,y);
-}
-
-EWXWEXPORT(void,wxPoint_Delete)(void* p)
-{
-  delete (wxPoint*)p;
-}
-
-EWXWEXPORT(int,wxPoint_GetX)(void* p)
-{
-  return ((wxPoint*)p)->x;
-}
-
-EWXWEXPORT(int,wxPoint_GetY)(void* p)
-{
-  return ((wxPoint*)p)->y;
-}
-
-EWXWEXPORT(void,wxPoint_SetX)(void* p,int x)
-{
-  ((wxPoint*)p)->x = x;
-}
-
-EWXWEXPORT(void,wxPoint_SetY)(void* p,int y)
-{
-  ((wxPoint*)p)->y = y;
-}
-
-/*-----------------------------------------------------------------------------
-  Size
------------------------------------------------------------------------------*/
-EWXWEXPORT(void*,wxSize_Create)(int w,int h)
-{
-  return new wxSize(w,h);
-}
-
-EWXWEXPORT(void,wxSize_Delete)(void* s)
-{
-  delete (wxSize*)s;
-}
-
-EWXWEXPORT(int,wxSize_GetWidth)(void* s)
-{
-  return ((wxSize*)s)->GetWidth();
-}
-
-EWXWEXPORT(int,wxSize_GetHeight)(void* s)
-{
-  return ((wxSize*)s)->GetHeight();
-}
-
-EWXWEXPORT(void,wxSize_SetWidth)(wxSize* s,int w)
-{
-  s->SetWidth(w);
-}
-
-EWXWEXPORT(void,wxSize_SetHeight)(wxSize* s,int h)
-{
-  s->SetHeight(h);
-}
-
-/*-----------------------------------------------------------------------------
-  Rect
------------------------------------------------------------------------------*/
-EWXWEXPORT(void*,wxRect_Create)(int x,int y,int w,int h)
-{
-  return new wxRect(x,y,w,h);
-}
-
-EWXWEXPORT(void,wxRect_Delete)(void* r)
-{
-  delete (wxRect*)r;
-}
-
-EWXWEXPORT(int,wxRect_GetX)(wxRect* r)
-{
-  return r->GetX();
-}
-
-EWXWEXPORT(int,wxRect_GetY)(wxRect* r)
-{
-  return r->GetY();
-}
-
-EWXWEXPORT(int,wxRect_GetWidth)(wxRect* r)
-{
-  return r->GetWidth();
-}
-
-EWXWEXPORT(int,wxRect_GetHeight)(wxRect* r)
-{
-  return r->GetHeight();
-}
-
-EWXWEXPORT(void,wxRect_SetX)(wxRect* r,int x)
-{
-  r->SetX(x);
-}
-
-EWXWEXPORT(void,wxRect_SetY)(wxRect* r,int y)
-{
-  r->SetY(y);
-}
-
-EWXWEXPORT(void,wxRect_SetWidth)(wxRect* r,int w)
-{
-  r->SetWidth(w);
-}
-
-EWXWEXPORT(void,wxRect_SetHeight)(wxRect* r,int h)
-{
-  r->SetHeight(h);
-}
-
-/*-----------------------------------------------------------------------------
-  pre-processor
------------------------------------------------------------------------------*/
-EWXWEXPORT(int,wxVersionNumber)()
-{
-  return wxVERSION_NUMBER;
-}
-
-EWXWEXPORT(wxString*,wxVersionString)()
-{
-  return new wxString(wxVERSION_STRING);
-}
-
-EWXWEXPORT(int,wxIsDefined)(wxChar* s)
-{
-  int i;
-  if (s==NULL) return 0;
-  /* check define */
-  for( i=0; defineDefs[i] != NULL; i++ ) {
-    if (wxStrcmp(s,defineDefs[i]) == 0) return 1;
-  }
-  /* check wxUSE_XXX */
-  if (wxStrncmp(s,wxT("wxUSE_"),6) == 0) {
-    const wxChar* t = s+6;
-    for( i=0; useDefs[i] != NULL; i++ ) {
-      if (wxStrcmp(t,useDefs[i]) == 0) return 1;
-    }
-  }
-  /* check wxHAS_XXX */
-  if (wxStrncmp(s,wxT("wxHAS_"),6) == 0) {
-    const wxChar* t = s+6;
-    for( i=0; hasDefs[i] != NULL; i++ ) {
-      if (wxStrcmp(t,hasDefs[i]) == 0) return 1;
-    }
-  }
-  return 0;
-}
-
-EWXWEXPORT(void*,wxcMalloc)(int size)
-{
-  return malloc(size);
-}
-
-EWXWEXPORT(void,wxcFree)(void* p)
-{
-  if (p!=NULL) free(p);
-}
-
-EWXWEXPORT(wxColour*,wxcSystemSettingsGetColour)(int systemColour)
-{
-   wxColour* colour = new wxColour();
-   *colour = wxSystemSettings::GetColour( (wxSystemColour)systemColour );
-   return colour;
-}
-
-EWXWEXPORT(void,wxcWakeUpIdle)(void)
-{
-  wxWakeUpIdle();
-}
-
-/*-----------------------------------------------------------------------------
-  delete
------------------------------------------------------------------------------*/
-EWXWEXPORT(void,wxCursor_Delete)(wxCursor* self)
-{
-  delete self;
-}
-
-EWXWEXPORT(void,wxDateTime_Delete)(wxDateTime* self)
-{
-  delete self;
-}
-
-/*-----------------------------------------------------------------------------
-  frame
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxString*,wxFrame_GetTitle)(wxFrame* self)
-{
-  wxString *result = new wxString();
-  *result = self->GetTitle();
-  return result;
-}
-
-EWXWEXPORT(void,wxFrame_SetTitle)(wxFrame* self,wxString* _txt)
-{
-  self->SetTitle(*_txt);
-}
-
-EWXWEXPORT(bool,wxFrame_SetShape)(wxFrame* self,wxRegion* region)
-{
-  return self->SetShape( *region );
-}
-
-EWXWEXPORT(bool,wxFrame_ShowFullScreen)(wxFrame* self,bool show,int style)
-{
-  return self->ShowFullScreen( show, style );
-}
-
-EWXWEXPORT(bool,wxFrame_IsFullScreen)(wxFrame* self)
-{
-  return self->IsFullScreen();
-}
-
-EWXWEXPORT(void,wxFrame_Centre)(wxFrame* self,int orientation)
-{
-  self->Centre();
-}
-
-
-EWXWEXPORT(void,wxNotebook_AssignImageList)(wxNotebook* self,wxImageList* imageList)
-{
-  self->AssignImageList(imageList);
-}
-
-/*-----------------------------------------------------------------------------
-  menu & toolbar
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxMenuBar*,wxMenu_GetMenuBar)(wxMenu* self)
-{
-  return self->GetMenuBar();
-}
-
-
-EWXWEXPORT(wxFrame*,wxMenuBar_GetFrame)(wxMenuBar* self)
-{
-  return self->GetFrame();
-}
-
-EWXWEXPORT(void,wxToolBar_AddTool2)(wxToolBar* self,int toolId,wxString* label,wxBitmap* bmp,wxBitmap* bmpDisabled,int itemKind,wxString* shortHelp,wxString* longHelp)
-{
-  self->AddTool(toolId,*label,*bmp,*bmpDisabled,(wxItemKind)itemKind,*shortHelp,*longHelp,NULL);
-}
-
-/*-----------------------------------------------------------------------------
-  listctrl
------------------------------------------------------------------------------*/
-EWXWEXPORT(int,wxListEvent_GetCacheFrom)(wxListEvent* self)
-{
-  return self->GetCacheFrom();
-}
-
-EWXWEXPORT(int,wxListEvent_GetCacheTo)(wxListEvent* self)
-{
-  return self->GetCacheTo();
-}
-
-
-EWXWEXPORT(void,wxListCtrl_AssignImageList)(wxListCtrl* self,wxImageList* images,int which)
-{
-  self->AssignImageList(images,which);
-}
-
-
-
-EWXWEXPORT(void,wxListCtrl_GetColumn2)(wxListCtrl* self,int col,wxListItem* item)
-{
-  bool success = self->GetColumn(col,*item);
-  if (!success) item->SetId(-1);
-}
-
-EWXWEXPORT(void,wxListCtrl_GetItem2)(wxListCtrl* self,wxListItem* info)
-{
-  bool success = self->GetItem(*info);
-  if (!success) info->SetId(-1);
-}
-
-EWXWEXPORT(wxPoint*,wxListCtrl_GetItemPosition2)(wxListCtrl* self,int item)
-{
-	wxPoint* pos = new wxPoint();
-	bool success = self->GetItemPosition((long)item, *pos);
-	if (success) {
-		return pos;
-	}
-	else {
-		delete pos;
-		wxPoint* pt = new wxPoint(-1,-1);
-		return pt;
-	}
-}
-
-
-struct SortData {
-  long id;
-  wxClosure* closure;
-};
-
-int wxCALLBACK sortCallBack( long item1, long item2, long data )
-{
-  wxClosure* closure = ((SortData*)data)->closure;
-  long       id      = ((SortData*)data)->id;
-
-  wxCommandEvent event( wxEVT_SORT, id );
-  event.SetInt(item1);
-  event.SetExtraLong(item2);
-  closure->Invoke(&event);
-  return event.GetInt();
-}
-
-EWXWEXPORT(bool,wxListCtrl_SortItems2)(wxListCtrl* self,wxClosure* closure)
-{
-  SortData sortData = { self->GetId(), closure };
-  return self->SortItems( sortCallBack, (long)&sortData );
-}
-
-
-
-/*-----------------------------------------------------------------------------
-  DC
------------------------------------------------------------------------------*/
-EWXWEXPORT(void,wxDC_GetPixel2)(wxDC* self,int x,int y,wxColour* col)
-{
-  bool success = self->GetPixel((wxCoord)x, (wxCoord)y, col);
-  if (!success) *col = wxNullColour;
-}
-
-
-/*-----------------------------------------------------------------------------
-  Object & static ClassInfo
------------------------------------------------------------------------------*/
-EWXWEXPORT(bool,wxObject_IsKindOf)(wxObject* self,wxClassInfo* classInfo)
-{
-  return self->IsKindOf(classInfo);
-}
-
-EWXWEXPORT(wxClassInfo*,wxObject_GetClassInfo)(wxObject* self)
-{
-  return self->GetClassInfo();
-}
-
-/* optimize */
-EWXWEXPORT(bool,wxObject_IsScrolledWindow)(wxObject* self)
-{
-  return self->IsKindOf(CLASSINFO(wxScrolledWindow));
-}
-
-EWXWEXPORT(void,wxObject_Delete)(wxObject* self)
-{
-  delete self;
-}
-
-/*-----------------------------------------------------------------------------
-  classinfo
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxClassInfo*,wxClassInfo_FindClass)(wxString* name)
-{
-  return wxClassInfo::FindClass(*name);
-}
-
-EWXWEXPORT(wxString*,wxClassInfo_GetClassNameEx)(wxClassInfo* self)
-{
-  wxString *result = new wxString();
-  *result = self->GetClassName();
-  return result;
-}
-
-EWXWEXPORT(wxString*,wxClassInfo_GetBaseClassName1)(wxClassInfo* self)
-{
-  wxString *result = new wxString();
-  *result = self->GetBaseClassName1();
-  return result;
-}
-
-EWXWEXPORT(wxString*,wxClassInfo_GetBaseClassName2)(wxClassInfo* self)
-{
-  wxString *result = new wxString();
-  *result = self->GetBaseClassName2();
-  return result;
-}
-
-EWXWEXPORT(bool,wxClassInfo_IsKindOfEx)(wxClassInfo* self,wxClassInfo* classInfo)
-{
-  return self->IsKindOf(classInfo);
-}
-
-EWXWEXPORT(int,wxClassInfo_GetSize)(wxClassInfo* self)
-{
-  return (self)->GetSize();
-}
-
-/*-----------------------------------------------------------------------------
-  window
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxPoint*,wxWindow_ConvertPixelsToDialogEx)(wxWindow* self,int x,int y)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->ConvertPixelsToDialog( wxPoint(x, y) );
-	return pt;
-}
-
-EWXWEXPORT(wxPoint*,wxWindow_ConvertDialogToPixelsEx)(wxWindow* self,int x,int y)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->ConvertDialogToPixels( wxPoint(x, y) );
-	return pt;
-}
-
-
-EWXWEXPORT(void,wxWindow_SetClientObject)(wxWindow* self,wxClientData* obj)
-{
-	self->SetClientObject(obj);
-}
-
-
-EWXWEXPORT(wxPoint*,wxWindow_ScreenToClient2)(wxWindow* self,int x,int y)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->ScreenToClient( wxPoint(x, y) );
-	return pt;
-}
-
-
-
-EWXWEXPORT(wxPoint*,wxcGetMousePosition)()
-{
-	wxPoint* pt = new wxPoint();
-	*pt = wxGetMousePosition();
-	return pt;
-}
-
-/*-----------------------------------------------------------------------------
-  scrolledwindow
------------------------------------------------------------------------------*/
-EWXWEXPORT(void,wxScrolledWindow_SetScrollRate)(wxScrolledWindow* self,int xstep,int ystep)
-{
-  self->SetScrollRate(xstep,ystep);
-}
-
-/*-----------------------------------------------------------------------------
-  mouse
------------------------------------------------------------------------------*/
-EWXWEXPORT(int,wxMouseEvent_GetWheelDelta)(wxMouseEvent* self)
-{
-  return self->GetWheelDelta();
-}
-
-EWXWEXPORT(int,wxMouseEvent_GetWheelRotation)(wxMouseEvent* self)
-{
-  return self->GetWheelRotation();
-}
-
-EWXWEXPORT(int,wxMouseEvent_GetButton)(wxMouseEvent* self)
-{
-  return self->GetButton();
-}
-
-/*-----------------------------------------------------------------------------
-  DC
------------------------------------------------------------------------------*/
-EWXWEXPORT(double,wxDC_GetUserScaleX)(wxDC* dc)
-{
-  double x = 1.0;
-  double y = 1.0;
-  dc->GetUserScale(&x,&y);
-  return x;
-}
-
-
-EWXWEXPORT(double,wxDC_GetUserScaleY)(wxDC* dc)
-{
-  double x = 1.0;
-  double y = 1.0;
-  dc->GetUserScale(&x,&y);
-  return y;
-}
-
-
-/*-----------------------------------------------------------------------------
-  timers
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxTimerEx*,wxTimerEx_Create)()
-{
-  return new wxTimerEx();
-}
-
-EWXWEXPORT(void,wxTimerEx_Connect)(wxTimerEx* self,wxClosure* _closure)
-{
-  self->Connect(_closure);
-}
-
-EWXWEXPORT(wxClosure*,wxTimerEx_GetClosure)(wxTimerEx* self)
-{
-  return self->GetClosure();
-}
-
-
-/*-----------------------------------------------------------------------------
-  menu items
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxMenuItem*,wxMenuItem_CreateSeparator)()
-{
-  return new wxMenuItem( NULL, wxID_SEPARATOR, wxT(""), wxT(""), wxITEM_SEPARATOR, NULL );
-}
-
-
-EWXWEXPORT(wxMenuItem*,wxMenuItem_CreateEx)(int id,wxString* text,wxString* helpstr,int itemkind,wxMenu* submenu)
-{
-  return new wxMenuItem( NULL, id,*text,*helpstr, (wxItemKind)itemkind, submenu );
-}
-
-
-EWXWEXPORT(void,wxMenu_AppendRadioItem)(wxMenu* self,int id,wxString* text,wxString* help)
-{
-#ifdef wxHAS_RADIO_MENU_ITEMS
-  self->AppendRadioItem(id,*text,*help);
-#else
-  self->AppendCheckItem(id,*text,*help);
-#endif
-}
-
-
-/*------------------------------------------------------------------------------
-  process
-------------------------------------------------------------------------------*/
-EWXWEXPORT(bool,wxProcess_IsErrorAvailable)(wxProcess* self)
-{
-    return self->IsErrorAvailable();
-}
-
-EWXWEXPORT(bool,wxProcess_IsInputAvailable)(wxProcess* self)
-{
-    return self->IsInputAvailable();
-}
-
-EWXWEXPORT(bool,wxProcess_IsInputOpened)(wxProcess* self)
-{
-    return self->IsInputOpened();
-}
-
-EWXWEXPORT(wxProcess*,wxProcess_Open)(wxString* cmd,int flags)
-{
-    return wxProcess::Open( *cmd, ((flags | wxEXEC_ASYNC) & ~wxEXEC_SYNC) );
-}
-
-EWXWEXPORT(wxKillError,wxKill)(int pid,wxSignal signal)
-{
-  return wxProcess::Kill(pid,signal);
-}
-
-EWXWEXPORT(void,wxStreamBase_Delete)(wxStreamBase* stream)
-{
-  if (stream) delete stream;
-}
-
-/*------------------------------------------------------------------------------
-  TextCtrl
-------------------------------------------------------------------------------*/
-EWXWEXPORT(int,wxTextCtrl_EmulateKeyPress)(wxTextCtrl* self,wxKeyEvent* keyevent)
-{
-    return self->EmulateKeyPress(*keyevent);
-}
-
-
-EWXWEXPORT(void*,wxTextCtrl_GetDefaultStyle)(wxTextCtrl* self)
-{
-    return (void*)& self->GetDefaultStyle();
-}
-
-EWXWEXPORT(wxString*,wxTextCtrl_GetRange)(wxTextCtrl* self,long from,long to)
-{
-    wxString *result = new wxString();
-    *result = self->GetRange(from, to);
-    return result;
-}
-
-EWXWEXPORT(wxString*,wxTextCtrl_GetStringSelection)(wxTextCtrl* self)
-{
-    wxString *result = new wxString();
-    *result = self->GetStringSelection();
-    return result;
-}
-
-EWXWEXPORT(bool,wxTextCtrl_IsMultiLine)(wxTextCtrl* self)
-{
-    return  self->IsMultiLine();
-}
-
-EWXWEXPORT(bool,wxTextCtrl_IsSingleLine)(wxTextCtrl* self)
-{
-    return self->IsSingleLine(   );
-}
-
-
-EWXWEXPORT(bool,wxTextCtrl_SetDefaultStyle)(wxTextCtrl* self,wxTextAttr* style)
-{
-    return self->SetDefaultStyle(*style);
-}
-
-EWXWEXPORT(void,wxTextCtrl_SetMaxLength)(wxTextCtrl* self,long len)
-{
-    self->SetMaxLength( len  );
-}
-
-EWXWEXPORT(bool,wxTextCtrl_SetStyle)(wxTextCtrl* self,long start,long end,wxTextAttr* style)
-{
-    return self->SetStyle(start, end,*style);
-}
-
-/*------------------------------------------------------------------------------
-  TextAttr
-------------------------------------------------------------------------------*/
-EWXWEXPORT(wxTextAttr*,wxTextAttr_CreateDefault)()
-{
-  return new wxTextAttr();
-}
-
-EWXWEXPORT(wxTextAttr*,wxTextAttr_Create)(wxColour* colText,wxColour* colBack,wxFont* font)
-{
-    return new wxTextAttr( *colText,*colBack,*font );
-}
-
-EWXWEXPORT(void,wxTextAttr_Delete)(wxTextAttr* self)
-{
-    delete self;
-}
-
-EWXWEXPORT(void,wxTextAttr_GetBackgroundColour)(wxTextAttr* self,wxColour* colour)
-{
-    *colour = self->GetBackgroundColour();
-}
-
-EWXWEXPORT(void,wxTextAttr_GetFont)(wxTextAttr* self,wxFont* font)
-{
-    *font = self->GetFont();
-}
-
-EWXWEXPORT(void,wxTextAttr_GetTextColour)(wxTextAttr* self,wxColour* colour)
-{
-    *colour = self->GetTextColour();
-}
-
-EWXWEXPORT(bool,wxTextAttr_HasBackgroundColour)(wxTextAttr* self)
-{
-    return  self->HasBackgroundColour();
-}
-
-EWXWEXPORT(bool,wxTextAttr_HasFont)(wxTextAttr* self)
-{
-    return self->HasFont();
-}
-
-EWXWEXPORT(bool,wxTextAttr_HasTextColour)(wxTextAttr* self)
-{
-    return  self->HasTextColour();
-}
-
-EWXWEXPORT(bool,wxTextAttr_IsDefault)(wxTextAttr* self)
-{
-    return  self->IsDefault(   );
-}
-
-EWXWEXPORT(void,wxTextAttr_SetTextColour)(wxTextAttr* self,wxColour* colour)
-{
-   self->SetTextColour(*colour);
-}
-
-EWXWEXPORT(void,wxTextAttr_SetBackgroundColour)(wxTextAttr* self,wxColour* colour)
-{
-   self->SetBackgroundColour(*colour);
-}
-
-EWXWEXPORT(void,wxTextAttr_SetFont)(wxTextAttr* self,wxFont* font)
-{
-   self->SetFont(*font);
-}
-
-/*------------------------------------------------------------------------------
-  progress dialog
-------------------------------------------------------------------------------*/
-EWXWEXPORT(wxProgressDialog*,wxProgressDialog_Create)(wxString* title,wxString* message,int max,wxWindow* parent,int style)
-{
-  return new wxProgressDialog( *title, *message, max, parent, style );
-}
-
-EWXWEXPORT(bool,wxProgressDialog_Update)(wxProgressDialog* self,int value)
-{
-  return self->Update(value);
-}
-
-EWXWEXPORT(bool,wxProgressDialog_UpdateWithMessage)(wxProgressDialog* self,int value,wxString* message)
-{
-  return self->Update(value,*message);
-}
-
-EWXWEXPORT(void,wxProgressDialog_Resume)(wxProgressDialog* self)
-{
-  self->Resume();
-}
-
-
-/*------------------------------------------------------------------------------
-  standard dialogs
-------------------------------------------------------------------------------*/
-EWXWEXPORT(void,wxGetColourFromUser)(wxWindow* parent,wxColour* colInit,wxColour* colour)
-{
-  *colour = wxGetColourFromUser(parent, *colInit);
-}
-
-EWXWEXPORT(void,wxGetFontFromUser)(wxWindow* parent,wxFont* fontInit,wxFont* font)
-{
-  *font = wxGetFontFromUser(parent, *fontInit);
-}
-
-EWXWEXPORT(int, wxGetPasswordFromUser)(wxChar* message, wxChar* caption, wxChar* defaultText, wxWindow* parent, wxChar* _buf )
-{
-/* we use a complicated caching method as we don't want to call getpassword twice :-) */
-  static wxChar* resultBuffer = NULL;
-  if (_buf==NULL) {
-    if (resultBuffer) { free(resultBuffer); resultBuffer = NULL; }
-    wxString result = wxGetPasswordFromUser( message, caption, defaultText, parent );
-    resultBuffer = (wxChar*)malloc( (result.Length() + 1) * sizeof(wxChar) );
-    if (resultBuffer) {
-      wxStrcpy( resultBuffer, result.c_str() ); /* save result */
-      return result.Length();
-    }
-    else {
-      return 0;
-    }
-  }
-  else if (resultBuffer) {
-    int len = wxStrlen(resultBuffer);
-    memcpy(_buf, resultBuffer, len * sizeof(wxChar) );  /* copy saved result */
-    free(resultBuffer);
-    resultBuffer = NULL;
-    return len;
-  }
-  else {
-    return 0;
-  }
-}
-
-EWXWEXPORT(int, wxGetTextFromUser)(wxChar* message, wxChar* caption, wxChar* defaultText, wxWindow* parent, int x, int y, int center, wxChar* _buf )
-{
-/* we use a complicated caching method as we don't want to call gettext twice :-) */
-  static wxChar* resultBuffer = NULL;
-  if (_buf==NULL) {
-    if (resultBuffer) { free(resultBuffer); resultBuffer = NULL; }
-    wxString result = wxGetTextFromUser( message, caption, defaultText, parent, x, y, center!=0 );
-    resultBuffer = (wxChar*)malloc( (result.Length() + 1) * sizeof(wxChar) );
-    if (resultBuffer) {
-      wxStrcpy( resultBuffer, result.c_str() ); /* save result */
-      return result.Length();
-    }
-    else {
-      return 0;
-    }
-  }
-  else if (resultBuffer) {
-    int len = wxStrlen(resultBuffer);
-    memcpy(_buf, resultBuffer, len * sizeof(wxChar) );  /* copy saved result */
-    free(resultBuffer);
-    resultBuffer = NULL;
-    return len;
-  }
-  else {
-    return 0;
-  }
-}
-
-EWXWEXPORT(long,wxGetNumberFromUser)(wxString* message,wxString* prompt,wxString* caption,long value,long min,long max,wxWindow* parent,int x,int y)
-{
-  return wxGetNumberFromUser(*message, *prompt, *caption, value, min, max, parent, wxPoint(x, y) );
-}
-
-EWXWEXPORT(void,wxcBell)(void)
-{
-  wxBell();
-}
-
-EWXWEXPORT(void,wxcBeginBusyCursor)(void)
-{
-  wxBeginBusyCursor();
-}
-
-EWXWEXPORT(int,wxcIsBusy)(void)
-{
-  return (wxIsBusy());
-}
-
-EWXWEXPORT(void,wxcEndBusyCursor)(void)
-{
-  wxEndBusyCursor();
-}
-
-/*-----------------------------------------------------------------------------
-  wxInputSink
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxInputSink*,wxInputSink_Create)(wxInputStream* input,wxEvtHandler* evtHandler,int bufferLen)
-{
-  return new wxInputSink(input,evtHandler,bufferLen);
-}
-
-EWXWEXPORT(int,wxInputSink_GetId)(wxInputSink* self)
-{
-  return self->GetId();
-}
-
-EWXWEXPORT(void,wxInputSink_Start)(wxInputSink* self)
-{
-  self->Start();
-}
-
-
-EWXWEXPORT(int,wxInputSinkEvent_LastError)(wxInputSinkEvent* self)
-{
-  return self->LastError();
-}
-
-EWXWEXPORT(int,wxInputSinkEvent_LastRead)(wxInputSinkEvent* self)
-{
-  return self->LastRead();
-}
-
-EWXWEXPORT(char*,wxInputSinkEvent_LastInput)(wxInputSinkEvent* self)
-{
-  return self->LastInput();
-}
-
-
-/*-----------------------------------------------------------------------------
-  html window
------------------------------------------------------------------------------*/
-EWXWEXPORT(void*,wxcHtmlEvent_GetMouseEvent)(wxcHtmlEvent* self)
-{
-    return (void*)(self->GetMouseEvent());
-}
-
-EWXWEXPORT(void*,wxcHtmlEvent_GetHtmlCell)(wxcHtmlEvent* self)
-{
-    return (void*)(self->GetHtmlCell());
-}
-
-EWXWEXPORT(wxString*,wxcHtmlEvent_GetHtmlCellId)(wxcHtmlEvent* self)
-{
-    return self->GetHtmlCellId();
-}
-
-EWXWEXPORT(wxString*,wxcHtmlEvent_GetHref)(wxcHtmlEvent* self)
-{
-    return self->GetHref();
-}
-
-EWXWEXPORT(wxString*,wxcHtmlEvent_GetTarget)(wxcHtmlEvent* self)
-{
-    return self->GetTarget();
-}
-
-EWXWEXPORT(wxPoint*,wxcHtmlEvent_GetLogicalPosition)(wxcHtmlEvent* self)
-{
-	wxPoint* pt = new wxPoint();
-	*pt = self->GetLogicalPosition();
-	return pt;
-}
-
-
-/*-----------------------------------------------------------------------------
-  html window
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxHtmlWindow*,wxHtmlWindow_Create)(wxWindow* _prt,int _id,int _lft,int _top,int _wdt,int _hgt,long _stl, wxString* _txt)
-{
-    return new wxHtmlWindow(_prt, _id, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl, *_txt );
-}
-
-EWXWEXPORT(wxHtmlWindow*, wxcHtmlWindow_Create)(wxWindow* _prt,int _id,int _lft,int _top,int _wdt,int _hgt,long _stl, wxString* _txt)
-{
-    return new wxcHtmlWindow(_prt, _id, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl, *_txt );
-}
-
-
-EWXWEXPORT(bool,wxHtmlWindow_AppendToPage)(wxHtmlWindow* self,wxString* source)
-{
-    return self->AppendToPage(*source);
-}
-
-EWXWEXPORT(void*,wxHtmlWindow_GetInternalRepresentation)(wxHtmlWindow* self)
-{
-    return (void*)self->GetInternalRepresentation();
-}
-
-EWXWEXPORT(wxString*,wxHtmlWindow_GetOpenedAnchor)(wxHtmlWindow* self)
-{
-	wxString *result = new wxString();
-	*result = self->GetOpenedAnchor();
-	return result;
-}
-
-EWXWEXPORT(wxString*,wxHtmlWindow_GetOpenedPage)(wxHtmlWindow* self)
-{
-	wxString *result = new wxString();
-	*result = self->GetOpenedPage();
-	return result;
-}
-
-EWXWEXPORT(wxString*,wxHtmlWindow_GetOpenedPageTitle)(wxHtmlWindow* self)
-{
-	wxString *result = new wxString();
-	*result = self->GetOpenedPageTitle();
-	return result;
-}
-
-
-EWXWEXPORT(void*,wxHtmlWindow_GetRelatedFrame)(wxHtmlWindow* self)
-{
-    return (void*)self->GetRelatedFrame(   );
-}
-
-EWXWEXPORT(bool,wxHtmlWindow_HistoryBack)(wxHtmlWindow* self)
-{
-    return self->HistoryBack();
-}
-
-EWXWEXPORT(bool,wxHtmlWindow_HistoryCanBack)(wxHtmlWindow* self)
-{
-    return self->HistoryCanBack();
-}
-
-EWXWEXPORT(bool,wxHtmlWindow_HistoryCanForward)(wxHtmlWindow* self)
-{
-    return self->HistoryCanForward();
-}
-
-EWXWEXPORT(void,wxHtmlWindow_HistoryClear)(wxHtmlWindow* self)
-{
-    self->HistoryClear(   );
-}
-
-EWXWEXPORT(bool,wxHtmlWindow_HistoryForward)(wxHtmlWindow* self)
-{
-    return self->HistoryForward();
-}
-
-EWXWEXPORT(bool,wxHtmlWindow_LoadPage)(wxHtmlWindow* self,wxString* location)
-{
-    return self->LoadPage(*location );
-}
-
-
-EWXWEXPORT(void,wxHtmlWindow_ReadCustomization)(wxHtmlWindow* self,wxConfigBase* cfg,wxString* path)
-{
-    self->ReadCustomization(  cfg,*path );
-}
-
-EWXWEXPORT(void,wxHtmlWindow_SetBorders)(wxHtmlWindow* self,int b)
-{
-    self->SetBorders( b );
-}
-
-EWXWEXPORT(void,wxHtmlWindow_SetFonts)(wxHtmlWindow* self,wxString* normal_face,wxString* fixed_face,int* sizes)
-{
-    self->SetFonts(*normal_face,*fixed_face, sizes );
-}
-
-EWXWEXPORT(int,wxHtmlWindow_SetPage)(wxHtmlWindow* self,wxString* source)
-{
-    return self->SetPage( *source );
-}
-
-EWXWEXPORT(void,wxHtmlWindow_SetRelatedFrame)(wxHtmlWindow* self,wxFrame* frame,wxString* format)
-{
-    self->SetRelatedFrame(frame,*format);
-}
-
-EWXWEXPORT(void,wxHtmlWindow_SetRelatedStatusBar)(wxHtmlWindow* self,int bar)
-{
-    self->SetRelatedStatusBar(bar);
-}
-
-EWXWEXPORT(void,wxHtmlWindow_WriteCustomization)(wxHtmlWindow* self,wxConfigBase* cfg,wxString* path)
-{
-    self->WriteCustomization(cfg,*path );
-}
-
-/*-----------------------------------------------------------------------------
-  LOGGER
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxLogStderr*,wxLogStderr_Create)()
-{
-	return new wxLogStderr();
-}
-
-EWXWEXPORT(wxLogStderr*,wxLogStderr_CreateStdOut)()
-{
-	return new wxLogStderr(stdout);
-}
-
-EWXWEXPORT(wxLogNull*,wxLogNull_Create)()
-{
-	return new wxLogNull();
-}
-
-EWXWEXPORT(wxLogTextCtrl*,wxLogTextCtrl_Create)(wxTextCtrl* text)
-{
-	return new wxLogTextCtrl(text);
-}
-
-EWXWEXPORT(wxLogWindow*,wxLogWindow_Create)(wxFrame* parent,wxString* title,bool showit,bool passthrough)
-{
-	return new wxLogWindow(parent,*title,showit,passthrough);
-}
-
-EWXWEXPORT(wxFrame*,wxLogWindow_GetFrame)(wxLogWindow* self)
-{
-	return self->GetFrame();
-}
-
-EWXWEXPORT(void,wxLog_Delete)(wxLog* self)
-{
-	delete self;
-}
-
-EWXWEXPORT(void,wxLog_OnLog)(wxLog* self,int level,void* szString,int t)
-{
-	self->OnLog((wxLogLevel)level, (const wxChar*)szString, (time_t)t);
-}
-
-EWXWEXPORT(void,wxLog_Flush)(wxLog* self)
-{
-	self->Flush();
-}
-
-EWXWEXPORT(bool,wxLog_HasPendingMessages)(wxLog* self)
-{
-	return self->HasPendingMessages();
-}
-
-EWXWEXPORT(void,wxLog_FlushActive)(wxLog* self)
-{
-	self->FlushActive();
-}
-
-EWXWEXPORT(void*,wxLog_GetActiveTarget)()
-{
-	return (void*)wxLog::GetActiveTarget();
-}
-
-EWXWEXPORT(void*,wxLog_SetActiveTarget)(wxLog* pLogger)
-{
-	return (void*)wxLog::SetActiveTarget(pLogger);
-}
-
-EWXWEXPORT(void,wxLog_Suspend)(wxLog* self)
-{
-	self->Suspend();
-}
-
-EWXWEXPORT(void,wxLog_Resume)(wxLog* self)
-{
-	self->Resume();
-}
-
-EWXWEXPORT(void,wxLog_SetVerbose)(wxLog* self,bool bVerbose)
-{
-	self->SetVerbose(bVerbose);
-}
-
-EWXWEXPORT(void,wxLog_DontCreateOnDemand)(wxLog* self)
-{
-	self->DontCreateOnDemand();
-}
-
-EWXWEXPORT(void,wxLog_SetTraceMask)(wxLog* self,int ulMask)
-{
-	self->SetTraceMask((wxTraceMask)ulMask);
-}
-
-EWXWEXPORT(void,wxLog_AddTraceMask)(wxLog* self,void* str)
-{
-	self->AddTraceMask((const wxChar*)str);
-}
-
-EWXWEXPORT(void,wxLog_RemoveTraceMask)(wxLog* self,void* str)
-{
-	self->RemoveTraceMask((const wxChar*)str);
-}
-
-EWXWEXPORT(void,wxLog_SetTimestamp)(wxLog* self,void* ts)
-{
-	self->SetTimestamp((const wxChar*)ts);
-}
-
-EWXWEXPORT(bool,wxLog_GetVerbose)(wxLog* self)
-{
-	return self->GetVerbose();
-}
-
-EWXWEXPORT(int,wxLog_GetTraceMask)(wxLog* self)
-{
-	return (int)self->GetTraceMask();
-}
-
-EWXWEXPORT(bool,wxLog_IsAllowedTraceMask)(wxLog* self,void* mask)
-{
-	return self->IsAllowedTraceMask((const wxChar*)mask);
-}
-
-EWXWEXPORT(void*,wxLog_GetTimestamp)(wxLog* self)
-{
-# if (wxVERSION_NUMBER >= 2900)
-  return (void*)wxStrdup((self->GetTimestamp()).wchar_str());
-#else
-  return (void*)wxStrdup(self->GetTimestamp());
-#endif
-}
-
-
-EWXWEXPORT(void,LogError)(wxString* _msg)
-{
-	wxLogError(*_msg);
-}
-
-EWXWEXPORT(void,LogFatalError)(wxString* _msg)
-{
-	wxLogFatalError(*_msg);
-}
-
-EWXWEXPORT(void,LogWarning)(wxString* _msg)
-{
-	wxLogWarning(*_msg);
-}
-
-EWXWEXPORT(void,LogMessage)(wxString* _msg)
-{
-	wxLogMessage(*_msg);
-}
-
-EWXWEXPORT(void,LogVerbose)(wxString* _msg)
-{
-	wxLogVerbose(*_msg);
-}
-
-EWXWEXPORT(void,LogStatus)(wxString* _msg)
-{
-	wxLogStatus(*_msg);
-}
-
-EWXWEXPORT(void,LogSysError)(wxString* _msg)
-{
-	wxLogSysError(*_msg);
-}
-
-EWXWEXPORT(void,LogDebug)(wxString* _msg)
-{
-	wxLogDebug(*_msg);
-}
-
-EWXWEXPORT(void,LogTrace)(wxString* mask,wxString* _msg)
-{
-	wxLogTrace(*mask,*_msg);
-}
-
-/*-----------------------------------------------------------------------------
-  Grid text editor
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxGridCellTextEnterEditor*,wxGridCellTextEnterEditor_Ctor)()
-{
-	return new wxGridCellTextEnterEditor();
-}
-
-/*-----------------------------------------------------------------------------
-  ConfigBase
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxConfigBase*,wxConfigBase_Get)()
-{
-	return wxConfigBase::Get();
-}
-
-EWXWEXPORT(void,wxConfigBase_Set)(wxConfigBase* self)
-{
-	wxConfigBase::Set( self );
-}
-
-EWXWEXPORT(wxFileConfig*,wxFileConfig_Create)(wxInputStream* inp)
-{
-	return new wxFileConfig( *inp );
-}
-
-/*-----------------------------------------------------------------------------
-  PropertyGrid
------------------------------------------------------------------------------*/
-EWXWEXPORT(void*,wxPropertyGrid_Append)(wxPropertyGrid* self, wxPGProperty * property)
-{
-        return (void*) self->Append(property);
-}
-
-EWXWEXPORT(void*,wxPropertyGrid_Create)(wxWindow* _prt,int _id, int _lft,int _top,int _wdt,int _hgt,int _stl)
-{
-        return (void*) new wxPropertyGrid (_prt, _id,wxPoint(_lft, _top),wxSize(_wdt, _hgt), _stl);
-}
-
-EWXWEXPORT(bool,wxPropertyGrid_DisableProperty)(wxPropertyGrid* self, wxString const * propName)
-{
-        return self->DisableProperty(*propName);
-}
-
-/*-----------------------------------------------------------------------------
-  wxPropertyGridEvent 
-  Defined within eljevent.cpp
------------------------------------------------------------------------------*/
-
-/*-----------------------------------------------------------------------------
-  PGProperty
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxString*,wxPGProperty_GetLabel)(wxPGProperty* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetLabel();
-        return result;
-}
-
-EWXWEXPORT(wxString*,wxPGProperty_GetName)(wxPGProperty* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetName();
-        return result;
-}
-
-EWXWEXPORT(wxString*,wxPGProperty_GetValueAsString)(wxPGProperty* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetValueAsString();
-        return result;
-}
-
-EWXWEXPORT(wxString*,wxPGProperty_GetValueType)(wxPGProperty* self)
-{
-        wxString *result = new wxString();
-        *result = self->GetValueType();
-        return result;
-}
-
-EWXWEXPORT(void,wxPGProperty_SetHelpString)(wxPGProperty* self, wxString const* helpString)
-{
-        self->SetHelpString(*helpString);
-}
-
-/*-----------------------------------------------------------------------------
-  wxStringProperty
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxStringProperty*,wxStringProperty_Create)(wxString const* label, wxString const* name, wxString const* value)
-{
-        return new wxStringProperty(*label, *name, *value);
-}
-
-/*-----------------------------------------------------------------------------
-  wxIntProperty
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxIntProperty*,wxIntProperty_Create)(wxString const* label, wxString const* name, int value)
-{
-        return new wxIntProperty(*label, *name, value);
-}
-
-/*-----------------------------------------------------------------------------
-  wxBoolProperty
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxBoolProperty*,wxBoolProperty_Create)(wxString const* label, wxString const* name, bool value)
-{
-        return new wxBoolProperty(*label, *name, value);
-}
-
-/*-----------------------------------------------------------------------------
-  wxFloatProperty
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxFloatProperty*,wxFloatProperty_Create)(wxString const* label, wxString const* name, float value)
-{
-        return new wxFloatProperty(*label, *name, value);
-}
-
-/*-----------------------------------------------------------------------------
-  wxDateProperty
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxDateProperty*,wxDateProperty_Create)(wxString const* label, wxString const* name, wxDateTime const* value)
-{
-        return new wxDateProperty(*label, *name, *value);
-}
-
-/*-----------------------------------------------------------------------------
-  wxFileProperty
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxFileProperty*,wxFileProperty_Create)(wxString const* label, wxString const* name, wxString const* value)
-{
-        return new wxFileProperty(*label, *name, *value);
-}
-
-/*-----------------------------------------------------------------------------
-  wxPropertyCategory
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxPropertyCategory*,wxPropertyCategory_Create)(wxString const* label)
-{
-        return new wxPropertyCategory(*label);
-}
-
-} /* extern "C" */
+#include "wrapper.h"
+#include "wx/process.h"
+#include "wx/textctrl.h"
+#include "wx/progdlg.h"
+#include "wx/listctrl.h"
+#include "wx/grid.h"
+#include "wx/fileconf.h"
+#include "wx/spinctrl.h"
+#include "wx/propgrid/propgrid.h"
+#include "wx/propgrid/advprops.h"
+
+#include <wx/numdlg.h>
+#include <wx/power.h>
+
+////////////////////////////////////////////////////////////////////////////////
+// wxc specific events
+////////////////////////////////////////////////////////////////////////////////
+
+BEGIN_DECLARE_EVENT_TYPES()
+    DECLARE_LOCAL_EVENT_TYPE(wxEVT_DELETE, 1000)
+#if (wxVERSION_NUMBER < 2905)	
+    DECLARE_LOCAL_EVENT_TYPE(wxEVT_HTML_CELL_CLICKED, 1001 )
+#endif
+    DECLARE_LOCAL_EVENT_TYPE(wxEVT_HTML_CELL_MOUSE_HOVER, 1002 )
+#if (wxVERSION_NUMBER < 2905)	
+    DECLARE_LOCAL_EVENT_TYPE(wxEVT_HTML_LINK_CLICKED, 1003 )
+#endif
+    DECLARE_LOCAL_EVENT_TYPE(wxEVT_HTML_SET_TITLE, 1004 )
+    DECLARE_LOCAL_EVENT_TYPE(wxEVT_INPUT_SINK, 1005 )
+    DECLARE_LOCAL_EVENT_TYPE(wxEVT_SORT, 1006 )
+END_DECLARE_EVENT_TYPES()
+
+DEFINE_LOCAL_EVENT_TYPE( wxEVT_DELETE )
+#if (wxVERSION_NUMBER < 2905)	
+DEFINE_LOCAL_EVENT_TYPE( wxEVT_HTML_CELL_CLICKED )
+#endif
+DEFINE_LOCAL_EVENT_TYPE( wxEVT_HTML_CELL_MOUSE_HOVER )
+#if (wxVERSION_NUMBER < 2905)	
+DEFINE_LOCAL_EVENT_TYPE( wxEVT_HTML_LINK_CLICKED )
+#endif
+DEFINE_LOCAL_EVENT_TYPE( wxEVT_HTML_SET_TITLE )
+DEFINE_LOCAL_EVENT_TYPE( wxEVT_INPUT_SINK )
+DEFINE_LOCAL_EVENT_TYPE( wxEVT_SORT )
+
+// Exported wxC event wrappers - must be C linkage
+extern "C" {
+  MAKE_EVENT_WRAPPER(EVT_DELETE)
+  MAKE_EVENT_WRAPPER(EVT_HTML_CELL_CLICKED)
+  MAKE_EVENT_WRAPPER(EVT_HTML_CELL_MOUSE_HOVER)
+  MAKE_EVENT_WRAPPER(EVT_HTML_LINK_CLICKED)
+  MAKE_EVENT_WRAPPER(EVT_HTML_SET_TITLE)
+  MAKE_EVENT_WRAPPER(EVT_INPUT_SINK)
+  MAKE_EVENT_WRAPPER(EVT_SORT)
+}
+
+/*-----------------------------------------------------------------------------
+  Timers
+-----------------------------------------------------------------------------*/
+class wxTimerEx : public wxTimer
+{
+  private:
+    wxClosure* m_closure;
+
+  public:
+    wxTimerEx();
+    ~wxTimerEx();
+
+    void Connect( wxClosure* closure );
+    wxClosure* GetClosure();
+    void Notify();
+};
+
+wxTimerEx::wxTimerEx()
+{
+  m_closure = NULL;
+}
+
+wxTimerEx::~wxTimerEx()
+{
+  if (m_closure) {
+    m_closure->DecRef();
+    m_closure=NULL;
+  }
+}
+
+void wxTimerEx::Connect( wxClosure* closure )
+{
+  if (m_closure) m_closure->DecRef();
+  m_closure = closure;
+  if (m_closure) m_closure->IncRef();
+}
+
+wxClosure* wxTimerEx::GetClosure()
+{
+  return m_closure;
+}
+
+void wxTimerEx::Notify()
+{
+#if (wxVERSION_NUMBER < 2900)
+  wxTimerEvent timerEvent(0,this->GetInterval());
+#else
+  wxTimerEvent timerEvent(*this);
+#endif
+  if (m_closure)
+    m_closure->Invoke(&timerEvent);
+}
+
+/*-----------------------------------------------------------------------------
+  wxInputSink wrapper: adds non-blocking event driven input channel
+-----------------------------------------------------------------------------*/
+class wxInputSink;
+
+class wxInputSinkEvent : public wxEvent
+{
+private:
+  char*         m_buffer;
+  size_t        m_bufferLen;
+  size_t        m_lastRead;
+  wxStreamError m_lastError;
+
+  void Read( wxInputStream* input );
+  friend class wxInputSink;
+
+public:
+  wxInputSinkEvent( int id, size_t bufferLen );
+  wxInputSinkEvent( const wxInputSinkEvent& event );  /* copy constructor */
+  ~wxInputSinkEvent();
+
+  wxEvent* Clone() const          { return new wxInputSinkEvent(*this); }
+
+  wxStreamError LastError() const { return m_lastError; }
+  int           LastRead()  const { return m_lastRead; }
+  char*         LastInput() const { return m_buffer;   }
+};
+
+class wxInputSink : public wxThread
+{
+private:
+  wxEvtHandler*    m_evtHandler;
+  wxInputStream*   m_input;
+  wxInputSinkEvent m_event;
+
+protected:
+  ExitCode Entry();
+
+public:
+  wxInputSink( wxInputStream* input, wxEvtHandler* evtHandler, int bufferLen );
+  ~wxInputSink();
+
+  intptr_t GetId();
+  void Start();
+};
+
+
+wxInputSink::wxInputSink( wxInputStream* input, wxEvtHandler* evtHandler, int bufferLen )
+  : wxThread(wxTHREAD_DETACHED), m_event( 0, bufferLen )
+{
+  m_input      = input;
+  m_evtHandler = evtHandler;
+}
+
+wxInputSink::~wxInputSink()
+{
+/* fprintf(stderr, "InputSink is deleted\n"); */
+}
+
+void wxInputSink::Start()
+{
+  wxThreadError result = Create();
+  switch(result) {
+    case wxTHREAD_NO_ERROR:  Run(); break;
+    case wxTHREAD_RUNNING :  break;
+    default               :  Delete(); break;
+  }
+}
+
+intptr_t wxInputSink::GetId()
+{
+  return (intptr_t)m_input;
+}
+
+wxThread::ExitCode wxInputSink::Entry()
+{
+  if (m_input == NULL || m_evtHandler == NULL || m_event.m_buffer == NULL ) return 0;
+
+  m_event.SetId(GetId());
+
+  /* while input && not external destroy */
+  while (!TestDestroy() && m_event.LastError() == wxSTREAM_NO_ERROR)
+  {
+     /* (blocking) read */
+     m_event.Read( m_input );
+
+     /* post the event to the main gui thread (note: event is cloned and thus the input buffer copied)*/
+     m_evtHandler->AddPendingEvent(m_event);
+  }
+
+  /* Process pending events */
+  wxWakeUpIdle();
+
+  /* return */
+  if (m_event.LastError() == wxSTREAM_NO_ERROR || m_event.LastError() == wxSTREAM_EOF)
+     return (ExitCode)0;
+  else
+     return (ExitCode)1;
+}
+
+
+wxInputSinkEvent::wxInputSinkEvent( int id, size_t bufferLen ) : wxEvent( id, wxEVT_INPUT_SINK  )
+{
+  m_lastError = wxSTREAM_NO_ERROR;
+  m_lastRead  = 0;
+  if (bufferLen <= 0) bufferLen = 128;
+  m_buffer    = (char*)malloc( bufferLen + 1 );
+  m_bufferLen = (m_buffer ? bufferLen : 0);
+}
+
+wxInputSinkEvent::wxInputSinkEvent( const wxInputSinkEvent& event ) : wxEvent( event )
+{
+  /* we copy only the exact input buffer, as 'Read' will never be called */
+  m_lastError = event.m_lastError;
+  m_bufferLen = 0;
+  m_lastRead  = 0;
+  m_buffer    = (char*)malloc( event.m_lastRead + 1 );
+  if (m_buffer) {
+    m_bufferLen = event.m_lastRead;
+    m_lastRead  = event.m_lastRead;
+    memcpy( m_buffer, event.m_buffer, m_lastRead );
+    m_buffer[m_lastRead] = 0;
+  }
+}
+
+wxInputSinkEvent::~wxInputSinkEvent()
+{
+  if (m_buffer) free(m_buffer);
+}
+
+void wxInputSinkEvent::Read( wxInputStream* input )
+{
+  /* check */
+  if (input == NULL || m_buffer == NULL || m_bufferLen == 0) {
+    m_lastError = wxSTREAM_READ_ERROR;
+    m_lastRead  = 0;
+    return;
+  }
+
+  /* read */
+  input->Read( m_buffer, m_bufferLen );
+#if wxCHECK_VERSION(2,5,0)
+  m_lastError = input->GetLastError();
+#else
+  m_lastError = input->LastError();
+#endif
+  if (m_lastError == wxSTREAM_NO_ERROR)
+    m_lastRead  = input->LastRead();
+  else
+    m_lastRead  = 0;
+
+
+  /* maintain invariants */
+  if (m_lastRead < 0)           m_lastRead = 0;
+  if (m_lastRead > m_bufferLen) m_lastRead = m_bufferLen;
+
+  /* add zero terminator */
+  m_buffer[m_lastRead] = 0;
+}
+
+
+/*-----------------------------------------------------------------------------
+  wxHtmlWindow wrapper: adds normal events instead of using inheritance
+-----------------------------------------------------------------------------*/
+class wxcHtmlWindow : public wxHtmlWindow
+{
+private:
+    DECLARE_DYNAMIC_CLASS(wxcHtmlWindow)
+public:
+    wxcHtmlWindow() : wxHtmlWindow() {};   wxcHtmlWindow(wxWindow *, wxWindowID id, const wxPoint&, const wxSize& size, long style, const wxString& );
+
+#if (wxVERSION_NUMBER <= 2800)
+   void OnCellClicked(wxHtmlCell *cell, wxCoord x, wxCoord y, const wxMouseEvent& event);
+#else
+   bool OnCellClicked(wxHtmlCell *cell, wxCoord x, wxCoord y, const wxMouseEvent& event);
+#endif
+   void OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y);
+   void OnLinkClicked(const wxHtmlLinkInfo& link);
+   wxHtmlOpeningStatus OnOpeningURL(wxHtmlURLType type,const wxString& url, wxString *redirect);
+   void OnSetTitle(const wxString& title);
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxcHtmlWindow, wxHtmlWindow)
+
+class wxcHtmlEvent : public wxCommandEvent
+{
+private:
+    DECLARE_DYNAMIC_CLASS(wxcHtmlEvent)
+private:
+    const wxMouseEvent*     m_mouseEvent;
+    const wxHtmlCell*       m_htmlCell;
+    const wxHtmlLinkInfo*   m_linkInfo;
+    wxPoint                 m_logicalPosition;
+
+public:
+    wxcHtmlEvent() : wxCommandEvent() {};
+    wxcHtmlEvent( wxEventType commandType, int id, const wxMouseEvent* mouseEvent, const wxHtmlCell* htmlCell, const wxHtmlLinkInfo* linkInfo, wxPoint logicalPoint );
+    const wxMouseEvent* GetMouseEvent();
+    const wxHtmlCell *  GetHtmlCell();
+    wxString*           GetHtmlCellId();
+    wxString*           GetHref();
+    wxString*           GetTarget();
+    wxPoint             GetLogicalPosition();
+};
+
+IMPLEMENT_DYNAMIC_CLASS(wxcHtmlEvent, wxCommandEvent)
+
+wxcHtmlWindow::wxcHtmlWindow(wxWindow * prt, wxWindowID id, const wxPoint& pt, const wxSize& size, long style, const wxString& title )
+: wxHtmlWindow( prt, id, pt, size, style, title )
+{}
+
+#if (wxVERSION_NUMBER < 2800)
+void wxcHtmlWindow::OnCellClicked(wxHtmlCell *cell, wxCoord x, wxCoord y, const wxMouseEvent& event)
+#else
+bool wxcHtmlWindow::OnCellClicked(wxHtmlCell *cell, wxCoord x, wxCoord y, const wxMouseEvent& event)
+#endif
+{
+    wxHtmlLinkInfo* linkPtr;
+#if (wxVERSION_NUMBER < 2800)
+    if (cell==NULL) return;
+#else
+    if (cell==NULL) return false;
+#endif
+
+    linkPtr = cell->GetLink(x, y);
+    if (linkPtr != NULL)
+    {
+        wxHtmlLinkInfo link(*linkPtr);
+        link.SetEvent(&event);
+        link.SetHtmlCell(cell);
+        {
+          wxcHtmlEvent htmlEvent( wxEVT_HTML_LINK_CLICKED, this->GetId(), &event, cell, &link, wxPoint(x,y) );
+          this->ProcessEvent( htmlEvent );
+        }
+    }
+    else
+    {
+      wxcHtmlEvent htmlEvent( wxEVT_HTML_CELL_CLICKED, this->GetId(), &event, cell, NULL, wxPoint(x,y) );
+      this->ProcessEvent( htmlEvent );
+    }
+#if (wxVERSION_NUMBER >= 2800)
+    return true;
+#endif
+}
+
+void wxcHtmlWindow::OnCellMouseHover(wxHtmlCell *cell, wxCoord x, wxCoord y)
+{
+    wxcHtmlEvent htmlEvent( wxEVT_HTML_CELL_MOUSE_HOVER, this->GetId(), NULL, cell, NULL, wxPoint(x,y) );
+    this->ProcessEvent( htmlEvent );
+}
+
+void wxcHtmlWindow::OnLinkClicked(const wxHtmlLinkInfo& link)
+{
+    wxcHtmlEvent htmlEvent( wxEVT_HTML_LINK_CLICKED, this->GetId(), link.GetEvent(), link.GetHtmlCell(), &link, wxPoint(-1,-1) );
+    this->ProcessEvent( htmlEvent );
+}
+
+void wxcHtmlWindow::OnSetTitle(const wxString& title)
+{
+    wxcHtmlEvent htmlEvent( wxEVT_HTML_SET_TITLE, this->GetId(), NULL, NULL, NULL, wxPoint(-1,-1) );
+    htmlEvent.SetString( title );
+    this->ProcessEvent( htmlEvent );
+}
+
+
+wxcHtmlEvent::wxcHtmlEvent( wxEventType commandType, int id, const wxMouseEvent* mouseEvent, const wxHtmlCell* htmlCell, const wxHtmlLinkInfo* linkInfo, wxPoint logicalPoint )
+: wxCommandEvent( commandType, id )
+{
+    m_mouseEvent = mouseEvent;
+    m_htmlCell = htmlCell;
+    m_linkInfo = linkInfo;
+    m_logicalPosition = logicalPoint;
+}
+
+const wxMouseEvent* wxcHtmlEvent::GetMouseEvent()
+{
+    return m_mouseEvent;
+}
+
+const wxHtmlCell *  wxcHtmlEvent::GetHtmlCell()
+{
+    return m_htmlCell;
+}
+
+wxString* wxcHtmlEvent::GetHtmlCellId()
+{
+    if (m_htmlCell)
+        return new wxString(m_htmlCell->GetId());
+    else
+        return new wxString(wxT(""));
+}
+
+wxString* wxcHtmlEvent::GetHref()
+{
+    if (m_linkInfo)
+        return new wxString(m_linkInfo->GetHref());
+    else
+        return new wxString(wxT(""));
+}
+
+wxString* wxcHtmlEvent::GetTarget()
+{
+    if (m_linkInfo)
+        return new wxString (m_linkInfo->GetTarget());
+    else
+        return new wxString(wxT(""));
+}
+
+wxPoint wxcHtmlEvent::GetLogicalPosition()
+{
+    return m_logicalPosition;
+}
+
+/*-----------------------------------------------------------------------------
+  wxGridCellTextEnterEditor
+-----------------------------------------------------------------------------*/
+class wxGridCellTextEnterEditor : public wxGridCellTextEditor
+{
+public:
+  wxGridCellTextEnterEditor() : wxGridCellTextEditor() {}
+
+  void Create(wxWindow* parent,
+                        wxWindowID id,
+                        wxEvtHandler* evtHandler);
+
+};
+
+void wxGridCellTextEnterEditor::Create(wxWindow* parent,
+                                       wxWindowID id,
+                                       wxEvtHandler* evtHandler)
+{
+    wxGridCellTextEditor::Create(parent, id, evtHandler);
+    
+    {
+      long style = m_control->GetWindowStyle();
+      m_control->SetWindowStyle( style | wxTE_PROCESS_ENTER );
+    }
+}
+
+
+/*-----------------------------------------------------------------------------
+  pre processor definitions
+-----------------------------------------------------------------------------*/
+static const wxChar* defineDefs[] = {
+#ifdef __WINDOWS__
+  wxT("__WINDOWS__"),
+#endif // any Windows, yom may also use
+#ifdef __WIN16__
+  wxT("__WIN16__"),
+#endif // Win16 API
+#ifdef __WIN32__
+  wxT("__WIN32__"),
+#endif // Win32 API
+#ifdef __WIN95__
+  wxT("__WIN95__"),
+#endif // Windows 95 or NT 4.0 and above system (not NT 3.5x)
+#ifdef __WXGTK__
+  wxT("__WXGTK__"),
+#endif // GTK
+#ifdef __WXGTK12__
+  wxT("__WXGTK12__"),
+#endif // GTK 1.2 or higher
+#ifdef __WXGTK20__
+  wxT("__WXGTK20__"),
+#endif // GTK 2.0 or higher
+#ifdef __WXMOTIF__
+  wxT("__WXMOTIF__"),
+#endif // Motif
+#ifdef __WXMAC__
+  wxT("__WXMAC__"),
+#endif // MacOS
+#ifdef __WXMGL__
+  wxT("__WXMGL__"),
+#endif // SciTech Soft MGL
+#ifdef __WXUNIVERSAL__
+  wxT("__WXUNIVERSAL__"),
+#endif //will be also defined)
+#ifdef __WXMSW__
+  wxT("__WXMSW__"),
+#endif // Any Windows
+#ifdef __WXOS2__
+  wxT("__WXOS2__"),
+#endif // OS/2 native Presentation Manager
+#ifdef __WXPM__
+  wxT("__WXPM__"),
+#endif // OS/2 native Presentation Manager
+#ifdef __WXSTUBS__
+  wxT("__WXSTUBS__"),
+#endif // Stubbed version ('template' wxWin implementation)
+#ifdef __WXXT__
+  wxT("__WXXT__"),
+#endif // Xt; mutually exclusive with WX_MOTIF, not implemented in wxWindows 2.x
+// wxX11
+#ifdef __WXX11__
+  wxT("__WXX11__"),
+#endif
+#ifdef __WXUNIVERSAL__
+  wxT("__WXUNIVERSAL__"),
+#endif //will be also defined)
+#ifdef __WXWINE__
+  wxT("__WXWINE__"),
+#endif // WINE (i.e. Win32 on Unix)
+#ifdef __WXUNIVERSAL__
+  wxT("__WXUNIVERSAL__"),
+#endif // wxUniversal port, always defined in addition to one of the symbols above so this should be tested first.
+#ifdef __X__
+  wxT("__X__"),
+#endif // any X11-based GUI toolkit except GTK+
+
+// any Mac OS version
+#ifdef __APPLE__
+  wxT("__APPLE__"),
+#endif
+// AIX
+#ifdef __AIX__
+  wxT("__AIX__"),
+#endif
+// Any BSD
+#ifdef __BSD__
+  wxT("__BSD__"),
+#endif
+// Cygwin: Unix on Win32
+#ifdef __CYGWIN__
+  wxT("__CYGWIN__"),
+#endif
+// Mac OS X
+#ifdef __DARWIN__
+  wxT("__DARWIN__"),
+#endif
+#ifdef ____DATA_GENERAL____
+  wxT("__DATA_GENERAL__"),
+#endif
+// DOS (used with wxMGL only)
+#ifdef __DOS_GENERAL__
+  wxT("__DOS_GENERAL__"),
+#endif
+// FreeBSD
+#ifdef __FREEBSD__
+  wxT("__FREEBSD__"),
+#endif
+// HP-UX (Unix)
+#ifdef ____HPUX____
+  wxT("__HPUX__"),
+#endif
+// Linux
+#ifdef __LINUX__
+  wxT("__LINUX__"),
+#endif
+// OSF/1
+#ifdef __OSF__
+  wxT("__OSF__"),
+#endif
+// IRIX
+#ifdef __SGI__
+  wxT("__SGI__"),
+#endif
+// Solaris
+#ifdef __SOLARIS__
+  wxT("__SOLARIS__"),
+#endif
+// Any Sun
+#ifdef __SUN__
+  wxT("__SUN__"),
+#endif
+// Sun OS
+#ifdef __SUNOS__
+  wxT("__SUNOS__"),
+#endif
+// SystemV R4
+#ifdef __SVR4__
+  wxT("__SVR4__"),
+#endif
+// SystemV generic
+#ifdef __SYSV__
+  wxT("__SYSV__"),
+#endif
+// Ultrix
+#ifdef __ULTRIX__
+  wxT("__ULTRIX__"),
+#endif
+// any Unix
+#ifdef __UNIX__
+  wxT("__UNIX__"),
+#endif
+// Unix, BeOS or VMS
+#ifdef __UNIX_LIKE__
+  wxT("__UNIX_LIKE__"),
+#endif
+// VMS
+#ifdef __VMS__
+  wxT("__VMS__"),
+#endif
+// any Windows
+#ifdef __WINDOWS__
+  wxT("__WINDOWS__"),
+#endif
+
+// DEC Alpha architecture
+#ifdef __ALPHA__
+  wxT("__ALPHA__"),
+#endif
+// Intel i386 or compatible
+#ifdef __INTEL__
+  wxT("__INTEL__"),
+#endif
+// Motorola Power PC
+#ifdef __POWERPC__
+  wxT("__POWERPC__"),
+#endif
+
+// Borland C++
+#ifdef __BORLANDC__
+  wxT("__BORLANDC__"),
+#endif
+// DJGPP
+#ifdef __DJGPP__
+  wxT("__DJGPP__"),
+#endif
+// Gnu C++ on any platform
+#ifdef __GNUG__
+  wxT("__GNUG__"),
+#endif
+// GnuWin32 compiler
+#ifdef __GNUWIN32__
+  wxT("__GNUWIN32__"),
+#endif
+// CodeWarrior MetroWerks compiler
+#ifdef __MWERKS__
+  wxT("__MWERKS__"),
+#endif
+// Sun CC
+#ifdef __SUNCC__
+  wxT("__SUNCC__"),
+#endif
+// Symantec C++
+#ifdef __SYMANTECC__
+  wxT("__SYMANTECC__"),
+#endif
+// IBM Visual Age (OS/2)
+#ifdef __VISAGECPP__
+  wxT("__VISAGECPP__"),
+#endif
+// Microsoft Visual C++
+#ifdef __VISUALC__
+  wxT("__VISUALC__"),
+#endif
+// AIX compiler
+#ifdef __XLC__
+  wxT("__XLC__"),
+#endif
+// Watcom C++
+#ifdef __WATCOMC__
+  wxT("__WATCOMC__"),
+#endif
+  NULL
+};
+
+static const wxChar* useDefs[] = {
+#ifdef wxUSE_UNIX
+  wxT("UNIX"),
+#endif
+#ifdef wxUSE_NANOX
+  wxT("NANOX"),
+#endif
+#ifdef wxUSE_NATIVE_STATUSBAR
+  wxT("NATIVE_STATUSBAR"),
+#endif
+#ifdef wxUSE_OWNER_DRAWN
+  wxT("OWNER_DRAWN"),
+#endif
+#ifdef wxUSE_OWNER_DRAWN
+  wxT("OWNER_DRAWN"),
+#endif
+#ifdef wxUSE_RICHEDIT
+  wxT("RICHEDIT"),
+#endif
+#ifdef wxUSE_RICHEDIT
+  wxT("RICHEDIT"),
+#endif
+#ifdef wxUSE_REGEX
+  wxT("REGEX"),
+#endif
+#ifdef wxUSE_ZLIB
+  wxT("ZLIB"),
+#endif
+#ifdef wxUSE_LIBPNG
+  wxT("LIBPNG"),
+#endif
+#ifdef wxUSE_LIBJPEG
+  wxT("LIBJPEG"),
+#endif
+#ifdef wxUSE_LIBTIFF
+  wxT("LIBTIFF"),
+#endif
+#ifdef wxUSE_ODBC
+  wxT("ODBC"),
+#endif
+#ifdef wxUSE_FREETYPE
+  wxT("FREETYPE"),
+#endif
+#ifdef wxUSE_THREADS
+  wxT("THREADS"),
+#endif
+#if defined(wxcREFUSE_OPENGL)
+# undef wxUSE_OPENGL
+# undef wxUSE_GLCANVAS
+#endif
+#ifdef wxUSE_OPENGL
+  wxT("OPENGL"),
+#endif
+#ifdef wxUSE_GLCANVAS
+  wxT("GLCANVAS"),
+#endif
+#ifdef wxUSE_GUI
+  wxT("GUI"),
+#endif
+#ifdef wxUSE_NOGUI
+  wxT("NOGUI"),
+#endif
+#ifdef wxUSE_ON_FATAL_EXCEPTION
+  wxT("ON_FATAL_EXCEPTION"),
+#endif
+#ifdef wxUSE_SNGLINST_CHECKER
+  wxT("SNGLINST_CHECKER"),
+#endif
+#ifdef wxUSE_CONSTRAINTS
+  wxT("CONSTRAINTS"),
+#endif
+#ifdef wxUSE_VALIDATORS
+  wxT("VALIDATORS"),
+#endif
+#ifdef wxUSE_CONTROLS
+  wxT("CONTROLS"),
+#endif
+#ifdef wxUSE_POPUPWIN
+  wxT("POPUPWIN"),
+#endif
+#ifdef wxUSE_TIPWINDOW
+  wxT("TIPWINDOW"),
+#endif
+#ifdef wxUSE_ACCEL
+  wxT("ACCEL"),
+#endif
+#ifdef wxUSE_CALENDARCTRL
+  wxT("CALENDARCTRL"),
+#endif
+#ifdef wxUSE_FILEDLG
+  wxT("FILEDLG"),
+#endif
+#ifdef wxUSE_FINDREPLDLG
+  wxT("FINDREPLDLG"),
+#endif
+#ifdef wxUSE_FONTDLG
+  wxT("FONTDLG"),
+#endif
+#ifdef wxUSE_MIMETYPE
+  wxT("MIMETYPE"),
+#endif
+#ifdef wxUSE_SYSTEM_OPTIONS
+  wxT("SYSTEM_OPTIONS"),
+#endif
+#ifdef wxUSE_MSGDLG
+  wxT("MSGDLG"),
+#endif
+#ifdef wxUSE_NUMBERDLG
+  wxT("NUMBERDLG"),
+#endif
+#ifdef wxUSE_TEXTDLG
+  wxT("TEXTDLG"),
+#endif
+#ifdef wxUSE_STARTUP_TIPS
+  wxT("STARTUP_TIPS"),
+#endif
+#ifdef wxUSE_PROGRESSDLG
+  wxT("PROGRESSDLG"),
+#endif
+#ifdef wxUSE_CHOICEDLG
+  wxT("CHOICEDLG"),
+#endif
+#ifdef wxUSE_COLOURDLG
+  wxT("COLOURDLG"),
+#endif
+#ifdef wxUSE_DIRDLG
+  wxT("DIRDLG"),
+#endif
+#ifdef wxUSE_DRAGIMAGE
+  wxT("DRAGIMAGE"),
+#endif
+#ifdef wxUSE_PROPSHEET
+  wxT("PROPSHEET"),
+#endif
+#ifdef wxUSE_WIZARDDLG
+  wxT("WIZARDDLG"),
+#endif
+#ifdef wxUSE_SPLASH
+  wxT("SPLASH"),
+#endif
+#ifdef wxUSE_JOYSTICK
+  wxT("JOYSTICK"),
+#endif
+#ifdef wxUSE_BUTTON
+  wxT("BUTTON"),
+#endif
+#ifdef wxUSE_CARET
+  wxT("CARET"),
+#endif
+#ifdef wxUSE_BMPBUTTON
+  wxT("BMPBUTTON"),
+#endif
+#ifdef wxUSE_CHECKBOX
+  wxT("CHECKBOX"),
+#endif
+#ifdef wxUSE_CHECKLISTBOX
+  wxT("CHECKLISTBOX"),
+#endif
+#ifdef wxUSE_COMBOBOX
+  wxT("COMBOBOX"),
+#endif
+#ifdef wxUSE_CHOICE
+  wxT("CHOICE"),
+#endif
+#ifdef wxUSE_GAUGE
+  wxT("GAUGE"),
+#endif
+#ifdef wxUSE_GRID
+  wxT("GRID"),
+#endif
+#ifdef wxUSE_NEW_GRID
+  wxT("NEW_GRID"),
+#endif
+#ifdef wxUSE_IMAGLIST
+  wxT("IMAGLIST"),
+#endif
+#ifdef wxUSE_LISTBOX
+  wxT("LISTBOX"),
+#endif
+#ifdef wxUSE_LISTCTRL
+  wxT("LISTCTRL"),
+#endif
+#ifdef wxUSE_MENUS
+  wxT("MENUS"),
+#endif
+#ifdef wxUSE_NOTEBOOK
+  wxT("NOTEBOOK"),
+#endif
+#ifdef wxUSE_RADIOBOX
+  wxT("RADIOBOX"),
+#endif
+#ifdef wxUSE_RADIOBTN
+  wxT("RADIOBTN"),
+#endif
+#ifdef wxUSE_SASH
+  wxT("SASH"),
+#endif
+#ifdef wxUSE_SCROLLBAR
+  wxT("SCROLLBAR"),
+#endif
+#ifdef wxUSE_SLIDER
+  wxT("SLIDER"),
+#endif
+#ifdef wxUSE_SPINBTN
+  wxT("SPINBTN"),
+#endif
+#ifdef wxUSE_SPINCTRL
+  wxT("SPINCTRL"),
+#endif
+#ifdef wxUSE_SPLITTER
+  wxT("SPLITTER"),
+#endif
+#ifdef wxUSE_STATBMP
+  wxT("STATBMP"),
+#endif
+#ifdef wxUSE_STATBOX
+  wxT("STATBOX"),
+#endif
+#ifdef wxUSE_STATLINE
+  wxT("STATLINE"),
+#endif
+#ifdef wxUSE_STATTEXT
+  wxT("STATTEXT"),
+#endif
+#ifdef wxUSE_STATUSBAR
+  wxT("STATUSBAR"),
+#endif
+#ifdef wxUSE_TOGGLEBTN
+  wxT("TOGGLEBTN"),
+#endif
+#ifdef wxUSE_TAB_DIALOG
+  wxT("TAB_DIALOG"),
+#endif
+#ifdef wxUSE_TABDIALOG
+  wxT("TABDIALOG"),
+#endif
+#ifdef wxUSE_TEXTCTRL
+  wxT("TEXTCTRL"),
+#endif
+#ifdef wxUSE_TOOLBAR
+  wxT("TOOLBAR"),
+#endif
+#ifdef wxUSE_TOOLBAR_NATIVE
+  wxT("TOOLBAR_NATIVE"),
+#endif
+#ifdef wxUSE_TOOLBAR_SIMPLE
+  wxT("TOOLBAR_SIMPLE"),
+#endif
+#ifdef wxUSE_BUTTONBAR
+  wxT("BUTTONBAR"),
+#endif
+#ifdef wxUSE_TREELAYOUT
+  wxT("TREELAYOUT"),
+#endif
+#ifdef wxUSE_TREECTRL
+  wxT("TREECTRL"),
+#endif
+#ifdef wxUSE_LONGLONG
+  wxT("LONGLONG"),
+#endif
+#ifdef wxUSE_GEOMETRY
+  wxT("GEOMETRY"),
+#endif
+#ifdef wxUSE_CMDLINE_PARSER
+  wxT("CMDLINE_PARSER"),
+#endif
+#ifdef wxUSE_DATETIME
+  wxT("DATETIME"),
+#endif
+#ifdef wxUSE_FILE
+  wxT("FILE"),
+#endif
+#ifdef wxUSE_FFILE
+  wxT("FFILE"),
+#endif
+#ifdef wxUSE_FSVOLUME
+  wxT("FSVOLUME"),
+#endif
+#ifdef wxUSE_TEXTBUFFER
+  wxT("TEXTBUFFER"),
+#endif
+#ifdef wxUSE_TEXTFILE
+  wxT("TEXTFILE"),
+#endif
+#ifdef wxUSE_LOG
+  wxT("LOG"),
+#endif
+#ifdef wxUSE_LOGWINDOW
+  wxT("LOGWINDOW"),
+#endif
+#ifdef wxUSE_LOGGUI
+  wxT("LOGGUI"),
+#endif
+#ifdef wxUSE_LOG_DIALOG
+  wxT("LOG_DIALOG"),
+#endif
+#ifdef wxUSE_STOPWATCH
+  wxT("STOPWATCH"),
+#endif
+#ifdef wxUSE_TIMEDATE
+  wxT("TIMEDATE"),
+#endif
+#ifdef wxUSE_WAVE
+  wxT("WAVE"),
+#endif
+#ifdef wxUSE_SOUND
+  wxT("SOUND"),
+#endif
+#ifdef wxUSE_CONFIG
+  wxT("CONFIG"),
+#endif
+#ifdef wxUSE_FONTMAP
+  wxT("FONTMAP"),
+#endif
+#ifdef wxUSE_INTL
+  wxT("INTL"),
+#endif
+#ifdef wxUSE_PROTOCOL
+  wxT("PROTOCOL"),
+#endif
+#ifdef wxUSE_PROTOCOL_FILE
+  wxT("PROTOCOL_FILE"),
+#endif
+#ifdef wxUSE_PROTOCOL_FTP
+  wxT("PROTOCOL_FTP"),
+#endif
+#ifdef wxUSE_PROTOCOL_HTTP
+  wxT("PROTOCOL_HTTP"),
+#endif
+#ifdef wxUSE_STREAMS
+  wxT("STREAMS"),
+#endif
+#ifdef wxUSE_SOCKETS
+  wxT("SOCKETS"),
+#endif
+#ifdef wxUSE_DIALUP_MANAGER
+  wxT("DIALUP_MANAGER"),
+#endif
+#ifdef wxUSE_STD_IOSTREAM
+  wxT("STD_IOSTREAM"),
+#endif
+#ifdef wxUSE_DYNLIB_CLASS
+  wxT("DYNLIB_CLASS"),
+#endif
+#ifdef wxUSE_DYNAMIC_LOADER
+  wxT("DYNAMIC_LOADER"),
+#endif
+#ifdef wxUSE_TIMER
+  wxT("TIMER"),
+#endif
+#ifdef wxUSE_AFM_FOR_POSTSCRIPT
+  wxT("AFM_FOR_POSTSCRIPT"),
+#endif
+#ifdef wxUSE_NORMALIZED_PS_FONTS
+  wxT("NORMALIZED_PS_FONTS"),
+#endif
+#ifdef wxUSE_POSTSCRIPT
+  wxT("POSTSCRIPT"),
+#endif
+#ifdef wxUSE_WCHAR_T
+  wxT("WCHAR_T"),
+#endif
+#ifdef wxUSE_UNICODE
+  wxT("UNICODE"),
+#endif
+#ifdef wxUSE_UNICODE_MSLU
+  wxT("UNICODE_MSLU"),
+#endif
+#ifdef wxUSE_URL
+  wxT("URL"),
+#endif
+#ifdef wxUSE_WCSRTOMBS
+  wxT("WCSRTOMBS"),
+#endif
+#ifdef wxUSE_EXPERIMENTAL_
+  wxT("EXPERIMENTAL_PRINTF"),
+#endif
+#ifdef wxUSE_IPC
+  wxT("IPC"),
+#endif
+#ifdef wxUSE_X_RESOURCES
+  wxT("X_RESOURCES"),
+#endif
+#ifdef wxUSE_CLIPBOARD
+  wxT("CLIPBOARD"),
+#endif
+#ifdef wxUSE_DATAOBJ
+  wxT("DATAOBJ"),
+#endif
+#ifdef wxUSE_TOOLTIPS
+  wxT("TOOLTIPS"),
+#endif
+#ifdef wxUSE_DRAG_AND_DROP
+  wxT("DRAG_AND_DROP"),
+#endif
+#ifdef wxUSE_OLE
+  wxT("OLE"),
+#endif
+#ifdef wxUSE_SPLINES
+  wxT("SPLINES"),
+#endif
+#ifdef wxUSE_MDI_ARCHITECTURE
+  wxT("MDI_ARCHITECTURE"),
+#endif
+#ifdef wxUSE_DOC_VIEW_ARCHITECTURE
+  wxT("DOC_VIEW_ARCHITECTURE"),
+#endif
+#ifdef wxUSE_PRINTING_ARCHITECTURE
+  wxT("PRINTING_ARCHITECTURE"),
+#endif
+#ifdef wxUSE_PROLOGIO
+  wxT("PROLOGIO"),
+#endif
+#ifdef wxUSE_RESOURCES
+  wxT("RESOURCES"),
+#endif
+#ifdef wxUSE_WX_RESOURCES
+  wxT("WX_RESOURCES"),
+#endif
+#ifdef wxUSE_HELP
+  wxT("HELP"),
+#endif
+#ifdef wxUSE_WXHTML_HELP
+  wxT("WXHTML_HELP"),
+#endif
+#ifdef wxUSE_MS_HTML_HELP
+  wxT("MS_HTML_HELP"),
+#endif
+#ifdef wxUSE_IOSTREAMH
+  wxT("IOSTREAMH"),
+#endif
+#ifdef wxUSE_APPLE_IEEE
+  wxT("APPLE_IEEE"),
+#endif
+#ifdef wxUSE_MEMORY_TRACING
+  wxT("MEMORY_TRACING"),
+#endif
+#ifdef wxUSE_DEBUG_NEW_ALWAYS
+  wxT("DEBUG_NEW_ALWAYS"),
+#endif
+#ifdef wxUSE_DEBUG_CONTEXT
+  wxT("DEBUG_CONTEXT"),
+#endif
+#ifdef wxUSE_GLOBAL_MEMORY_OPERATORS
+  wxT("GLOBAL_MEMORY_OPERATORS"),
+#endif
+#ifdef wxUSE_SPLINES
+  wxT("SPLINES"),
+#endif
+#ifdef wxUSE_DYNAMIC_CLASSES
+  wxT("DYNAMIC_CLASSES"),
+#endif
+#ifdef wxUSE_METAFILE
+  wxT("METAFILE"),
+#endif
+#ifdef wxUSE_ENH_METAFILE
+  wxT("ENH_METAFILE"),
+#endif
+#ifdef wxUSE_MINIFRAME
+  wxT("MINIFRAME"),
+#endif
+#ifdef wxUSE_HTML
+  wxT("HTML"),
+#endif
+#ifdef wxUSE_FILESYSTEM
+  wxT("FILESYSTEM"),
+#endif
+#ifdef wxUSE_FS_INET
+  wxT("FS_INET"),
+#endif
+#ifdef wxUSE_FS_ZIP
+  wxT("FS_ZIP"),
+#endif
+#ifdef wxUSE_BUSYINFO
+  wxT("BUSYINFO"),
+#endif
+#ifdef wxUSE_ZIPSTREAM
+  wxT("ZIPSTREAM"),
+#endif
+#ifdef wxUSE_PALETTE
+  wxT("PALETTE"),
+#endif
+#ifdef wxUSE_IMAGE
+  wxT("IMAGE"),
+#endif
+#ifdef wxUSE_GIF
+  wxT("GIF"),
+#endif
+#ifdef wxUSE_PCX
+  wxT("PCX"),
+#endif
+#ifdef wxUSE_IFF
+  wxT("IFF"),
+#endif
+#ifdef wxUSE_PNM
+  wxT("PNM"),
+#endif
+#ifdef wxUSE_XPM
+  wxT("XPM"),
+#endif
+#ifdef wxUSE_ICO_CUR
+  wxT("ICO_CUR"),
+#endif
+
+// detect using optional libraries in the contrib hierarchy.
+#ifdef wxUSE_STC
+  wxT("STC"),
+#endif
+  NULL
+};
+
+
+static const wxChar* hasDefs[] = {
+#ifdef wxHAS_POWER_EVENTS
+  wxT("POWER_EVENTS"),
+#endif
+#ifdef wxHAS_RADIO_MENU_ITEMS
+  wxT("RADIO_MENU_ITEMS"),
+#endif
+  NULL
+};
+
+/*-----------------------------------------------------------------------------
+  EXTERN C
+-----------------------------------------------------------------------------*/
+extern "C"
+{
+
+/*-----------------------------------------------------------------------------
+  String
+-----------------------------------------------------------------------------*/
+typedef char utf8char;
+
+EWXWEXPORT(wxString*,wxString_Create)(wxChar* buffer)
+{
+  return new wxString(buffer);
+}
+
+EWXWEXPORT(wxString*,wxString_CreateUTF8)(utf8char* buffer)
+{
+  return new wxString (buffer,wxConvUTF8);
+}
+
+EWXWEXPORT(wxString*,wxString_CreateLen)(wxChar* buffer,int len)
+{
+  return new wxString(buffer,len);
+}
+
+EWXWEXPORT(void,wxString_Delete)(wxString* s)
+{
+  delete s;
+}
+
+EWXWEXPORT(int,wxString_GetString)(wxString* s,wxChar* buffer)
+{
+  if (buffer) memcpy (buffer, s->wc_str(), s->Length() * sizeof(wxChar));
+  return s->Length();
+}
+
+EWXWEXPORT(size_t,wxString_Length)(wxString* s)
+{
+  return s->length();
+}
+
+EWXWEXPORT(wxCharBuffer*,wxString_GetUtf8)(wxString* s)
+{
+  wxCharBuffer *cb = new wxCharBuffer;
+  *cb = s->utf8_str();
+  return cb;
+}
+
+EWXWEXPORT(utf8char*,wxCharBuffer_DataUtf8)(wxCharBuffer* cb)
+{
+  return (utf8char*)cb->data();
+}
+
+EWXWEXPORT(void,wxCharBuffer_Delete)(wxCharBuffer* cb)
+{
+  delete cb;
+}
+/*-----------------------------------------------------------------------------
+  Point
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(void*,wxPoint_Create)(int x,int y)
+{
+  return new wxPoint(x,y);
+}
+
+EWXWEXPORT(void,wxPoint_Delete)(void* p)
+{
+  delete (wxPoint*)p;
+}
+
+EWXWEXPORT(int,wxPoint_GetX)(void* p)
+{
+  return ((wxPoint*)p)->x;
+}
+
+EWXWEXPORT(int,wxPoint_GetY)(void* p)
+{
+  return ((wxPoint*)p)->y;
+}
+
+EWXWEXPORT(void,wxPoint_SetX)(void* p,int x)
+{
+  ((wxPoint*)p)->x = x;
+}
+
+EWXWEXPORT(void,wxPoint_SetY)(void* p,int y)
+{
+  ((wxPoint*)p)->y = y;
+}
+
+/*-----------------------------------------------------------------------------
+  Size
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(void*,wxSize_Create)(int w,int h)
+{
+  return new wxSize(w,h);
+}
+
+EWXWEXPORT(void,wxSize_Delete)(void* s)
+{
+  delete (wxSize*)s;
+}
+
+EWXWEXPORT(int,wxSize_GetWidth)(void* s)
+{
+  return ((wxSize*)s)->GetWidth();
+}
+
+EWXWEXPORT(int,wxSize_GetHeight)(void* s)
+{
+  return ((wxSize*)s)->GetHeight();
+}
+
+EWXWEXPORT(void,wxSize_SetWidth)(wxSize* s,int w)
+{
+  s->SetWidth(w);
+}
+
+EWXWEXPORT(void,wxSize_SetHeight)(wxSize* s,int h)
+{
+  s->SetHeight(h);
+}
+
+/*-----------------------------------------------------------------------------
+  Rect
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(void*,wxRect_Create)(int x,int y,int w,int h)
+{
+  return new wxRect(x,y,w,h);
+}
+
+EWXWEXPORT(void,wxRect_Delete)(void* r)
+{
+  delete (wxRect*)r;
+}
+
+EWXWEXPORT(int,wxRect_GetX)(wxRect* r)
+{
+  return r->GetX();
+}
+
+EWXWEXPORT(int,wxRect_GetY)(wxRect* r)
+{
+  return r->GetY();
+}
+
+EWXWEXPORT(int,wxRect_GetWidth)(wxRect* r)
+{
+  return r->GetWidth();
+}
+
+EWXWEXPORT(int,wxRect_GetHeight)(wxRect* r)
+{
+  return r->GetHeight();
+}
+
+EWXWEXPORT(void,wxRect_SetX)(wxRect* r,int x)
+{
+  r->SetX(x);
+}
+
+EWXWEXPORT(void,wxRect_SetY)(wxRect* r,int y)
+{
+  r->SetY(y);
+}
+
+EWXWEXPORT(void,wxRect_SetWidth)(wxRect* r,int w)
+{
+  r->SetWidth(w);
+}
+
+EWXWEXPORT(void,wxRect_SetHeight)(wxRect* r,int h)
+{
+  r->SetHeight(h);
+}
+
+/*-----------------------------------------------------------------------------
+  pre-processor
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(int,wxVersionNumber)()
+{
+  return wxVERSION_NUMBER;
+}
+
+EWXWEXPORT(wxString*,wxVersionString)()
+{
+  return new wxString(wxVERSION_STRING);
+}
+
+EWXWEXPORT(int,wxIsDefined)(wxChar* s)
+{
+  int i;
+  if (s==NULL) return 0;
+  /* check define */
+  for( i=0; defineDefs[i] != NULL; i++ ) {
+    if (wxStrcmp(s,defineDefs[i]) == 0) return 1;
+  }
+  /* check wxUSE_XXX */
+  if (wxStrncmp(s,wxT("wxUSE_"),6) == 0) {
+    const wxChar* t = s+6;
+    for( i=0; useDefs[i] != NULL; i++ ) {
+      if (wxStrcmp(t,useDefs[i]) == 0) return 1;
+    }
+  }
+  /* check wxHAS_XXX */
+  if (wxStrncmp(s,wxT("wxHAS_"),6) == 0) {
+    const wxChar* t = s+6;
+    for( i=0; hasDefs[i] != NULL; i++ ) {
+      if (wxStrcmp(t,hasDefs[i]) == 0) return 1;
+    }
+  }
+  return 0;
+}
+
+EWXWEXPORT(void*,wxcMalloc)(int size)
+{
+  return malloc(size);
+}
+
+EWXWEXPORT(void,wxcFree)(void* p)
+{
+  if (p!=NULL) free(p);
+}
+
+EWXWEXPORT(wxColour*,wxcSystemSettingsGetColour)(int systemColour)
+{
+   wxColour* colour = new wxColour();
+   *colour = wxSystemSettings::GetColour( (wxSystemColour)systemColour );
+   return colour;
+}
+
+EWXWEXPORT(void,wxcWakeUpIdle)(void)
+{
+  wxWakeUpIdle();
+}
+
+/*-----------------------------------------------------------------------------
+  delete
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(void,wxCursor_Delete)(wxCursor* self)
+{
+  delete self;
+}
+
+EWXWEXPORT(void,wxDateTime_Delete)(wxDateTime* self)
+{
+  delete self;
+}
+
+/*-----------------------------------------------------------------------------
+  frame
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxString*,wxFrame_GetTitle)(wxFrame* self)
+{
+  wxString *result = new wxString();
+  *result = self->GetTitle();
+  return result;
+}
+
+EWXWEXPORT(void,wxFrame_SetTitle)(wxFrame* self,wxString* _txt)
+{
+  self->SetTitle(*_txt);
+}
+
+EWXWEXPORT(bool,wxFrame_SetShape)(wxFrame* self,wxRegion* region)
+{
+  return self->SetShape( *region );
+}
+
+EWXWEXPORT(bool,wxFrame_ShowFullScreen)(wxFrame* self,bool show,int style)
+{
+  return self->ShowFullScreen( show, style );
+}
+
+EWXWEXPORT(bool,wxFrame_IsFullScreen)(wxFrame* self)
+{
+  return self->IsFullScreen();
+}
+
+EWXWEXPORT(void,wxFrame_Centre)(wxFrame* self,int orientation)
+{
+  self->Centre();
+}
+
+
+EWXWEXPORT(void,wxNotebook_AssignImageList)(wxNotebook* self,wxImageList* imageList)
+{
+  self->AssignImageList(imageList);
+}
+
+/*-----------------------------------------------------------------------------
+  menu & toolbar
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxMenuBar*,wxMenu_GetMenuBar)(wxMenu* self)
+{
+  return self->GetMenuBar();
+}
+
+
+EWXWEXPORT(wxFrame*,wxMenuBar_GetFrame)(wxMenuBar* self)
+{
+  return self->GetFrame();
+}
+
+EWXWEXPORT(void,wxToolBar_AddTool2)(wxToolBar* self,int toolId,wxString* label,wxBitmap* bmp,wxBitmap* bmpDisabled,int itemKind,wxString* shortHelp,wxString* longHelp)
+{
+  self->AddTool(toolId,*label,*bmp,*bmpDisabled,(wxItemKind)itemKind,*shortHelp,*longHelp,NULL);
+}
+
+/*-----------------------------------------------------------------------------
+  listctrl
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(int,wxListEvent_GetCacheFrom)(wxListEvent* self)
+{
+  return self->GetCacheFrom();
+}
+
+EWXWEXPORT(int,wxListEvent_GetCacheTo)(wxListEvent* self)
+{
+  return self->GetCacheTo();
+}
+
+
+EWXWEXPORT(void,wxListCtrl_AssignImageList)(wxListCtrl* self,wxImageList* images,int which)
+{
+  self->AssignImageList(images,which);
+}
+
+
+
+EWXWEXPORT(void,wxListCtrl_GetColumn2)(wxListCtrl* self,int col,wxListItem* item)
+{
+  bool success = self->GetColumn(col,*item);
+  if (!success) item->SetId(-1);
+}
+
+EWXWEXPORT(void,wxListCtrl_GetItem2)(wxListCtrl* self,wxListItem* info)
+{
+  bool success = self->GetItem(*info);
+  if (!success) info->SetId(-1);
+}
+
+EWXWEXPORT(wxPoint*,wxListCtrl_GetItemPosition2)(wxListCtrl* self,int item)
+{
+	wxPoint* pos = new wxPoint();
+	bool success = self->GetItemPosition((long)item, *pos);
+	if (success) {
+		return pos;
+	}
+	else {
+		delete pos;
+		wxPoint* pt = new wxPoint(-1,-1);
+		return pt;
+	}
+}
+
+
+struct SortData {
+  long id;
+  wxClosure* closure;
+};
+
+int wxCALLBACK sortCallBack( long item1, long item2, long data )
+{
+  wxClosure* closure = ((SortData*)data)->closure;
+  long       id      = ((SortData*)data)->id;
+
+  wxCommandEvent event( wxEVT_SORT, id );
+  event.SetInt(item1);
+  event.SetExtraLong(item2);
+  closure->Invoke(&event);
+  return event.GetInt();
+}
+
+EWXWEXPORT(bool,wxListCtrl_SortItems2)(wxListCtrl* self,wxClosure* closure)
+{
+  SortData sortData = { self->GetId(), closure };
+  return self->SortItems( sortCallBack, (long)&sortData );
+}
+
+
+
+/*-----------------------------------------------------------------------------
+  DC
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(void,wxDC_GetPixel2)(wxDC* self,int x,int y,wxColour* col)
+{
+  bool success = self->GetPixel((wxCoord)x, (wxCoord)y, col);
+  if (!success) *col = wxNullColour;
+}
+
+
+/*-----------------------------------------------------------------------------
+  Object & static ClassInfo
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(bool,wxObject_IsKindOf)(wxObject* self,wxClassInfo* classInfo)
+{
+  return self->IsKindOf(classInfo);
+}
+
+EWXWEXPORT(wxClassInfo*,wxObject_GetClassInfo)(wxObject* self)
+{
+  return self->GetClassInfo();
+}
+
+/* optimize */
+EWXWEXPORT(bool,wxObject_IsScrolledWindow)(wxObject* self)
+{
+  return self->IsKindOf(CLASSINFO(wxScrolledWindow));
+}
+
+EWXWEXPORT(void,wxObject_Delete)(wxObject* self)
+{
+  delete self;
+}
+
+/*-----------------------------------------------------------------------------
+  classinfo
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxClassInfo*,wxClassInfo_FindClass)(wxString* name)
+{
+  return wxClassInfo::FindClass(*name);
+}
+
+EWXWEXPORT(wxString*,wxClassInfo_GetClassNameEx)(wxClassInfo* self)
+{
+  wxString *result = new wxString();
+  *result = self->GetClassName();
+  return result;
+}
+
+EWXWEXPORT(wxString*,wxClassInfo_GetBaseClassName1)(wxClassInfo* self)
+{
+  wxString *result = new wxString();
+  *result = self->GetBaseClassName1();
+  return result;
+}
+
+EWXWEXPORT(wxString*,wxClassInfo_GetBaseClassName2)(wxClassInfo* self)
+{
+  wxString *result = new wxString();
+  *result = self->GetBaseClassName2();
+  return result;
+}
+
+EWXWEXPORT(bool,wxClassInfo_IsKindOfEx)(wxClassInfo* self,wxClassInfo* classInfo)
+{
+  return self->IsKindOf(classInfo);
+}
+
+EWXWEXPORT(int,wxClassInfo_GetSize)(wxClassInfo* self)
+{
+  return (self)->GetSize();
+}
+
+/*-----------------------------------------------------------------------------
+  window
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxPoint*,wxWindow_ConvertPixelsToDialogEx)(wxWindow* self,int x,int y)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->ConvertPixelsToDialog( wxPoint(x, y) );
+	return pt;
+}
+
+EWXWEXPORT(wxPoint*,wxWindow_ConvertDialogToPixelsEx)(wxWindow* self,int x,int y)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->ConvertDialogToPixels( wxPoint(x, y) );
+	return pt;
+}
+
+
+EWXWEXPORT(void,wxWindow_SetClientObject)(wxWindow* self,wxClientData* obj)
+{
+	self->SetClientObject(obj);
+}
+
+
+EWXWEXPORT(wxPoint*,wxWindow_ScreenToClient2)(wxWindow* self,int x,int y)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->ScreenToClient( wxPoint(x, y) );
+	return pt;
+}
+
+
+
+EWXWEXPORT(wxPoint*,wxcGetMousePosition)()
+{
+	wxPoint* pt = new wxPoint();
+	*pt = wxGetMousePosition();
+	return pt;
+}
+
+/*-----------------------------------------------------------------------------
+  scrolledwindow
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(void,wxScrolledWindow_SetScrollRate)(wxScrolledWindow* self,int xstep,int ystep)
+{
+  self->SetScrollRate(xstep,ystep);
+}
+
+/*-----------------------------------------------------------------------------
+  mouse
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(int,wxMouseEvent_GetWheelDelta)(wxMouseEvent* self)
+{
+  return self->GetWheelDelta();
+}
+
+EWXWEXPORT(int,wxMouseEvent_GetWheelRotation)(wxMouseEvent* self)
+{
+  return self->GetWheelRotation();
+}
+
+EWXWEXPORT(int,wxMouseEvent_GetButton)(wxMouseEvent* self)
+{
+  return self->GetButton();
+}
+
+/*-----------------------------------------------------------------------------
+  DC
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(double,wxDC_GetUserScaleX)(wxDC* dc)
+{
+  double x = 1.0;
+  double y = 1.0;
+  dc->GetUserScale(&x,&y);
+  return x;
+}
+
+
+EWXWEXPORT(double,wxDC_GetUserScaleY)(wxDC* dc)
+{
+  double x = 1.0;
+  double y = 1.0;
+  dc->GetUserScale(&x,&y);
+  return y;
+}
+
+
+/*-----------------------------------------------------------------------------
+  timers
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxTimerEx*,wxTimerEx_Create)()
+{
+  return new wxTimerEx();
+}
+
+EWXWEXPORT(void,wxTimerEx_Connect)(wxTimerEx* self,wxClosure* _closure)
+{
+  self->Connect(_closure);
+}
+
+EWXWEXPORT(wxClosure*,wxTimerEx_GetClosure)(wxTimerEx* self)
+{
+  return self->GetClosure();
+}
+
+
+/*-----------------------------------------------------------------------------
+  menu items
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxMenuItem*,wxMenuItem_CreateSeparator)()
+{
+  return new wxMenuItem( NULL, wxID_SEPARATOR, wxT(""), wxT(""), wxITEM_SEPARATOR, NULL );
+}
+
+
+EWXWEXPORT(wxMenuItem*,wxMenuItem_CreateEx)(int id,wxString* text,wxString* helpstr,int itemkind,wxMenu* submenu)
+{
+  return new wxMenuItem( NULL, id,*text,*helpstr, (wxItemKind)itemkind, submenu );
+}
+
+
+EWXWEXPORT(void,wxMenu_AppendRadioItem)(wxMenu* self,int id,wxString* text,wxString* help)
+{
+#ifdef wxHAS_RADIO_MENU_ITEMS
+  self->AppendRadioItem(id,*text,*help);
+#else
+  self->AppendCheckItem(id,*text,*help);
+#endif
+}
+
+
+/*------------------------------------------------------------------------------
+  process
+------------------------------------------------------------------------------*/
+EWXWEXPORT(bool,wxProcess_IsErrorAvailable)(wxProcess* self)
+{
+    return self->IsErrorAvailable();
+}
+
+EWXWEXPORT(bool,wxProcess_IsInputAvailable)(wxProcess* self)
+{
+    return self->IsInputAvailable();
+}
+
+EWXWEXPORT(bool,wxProcess_IsInputOpened)(wxProcess* self)
+{
+    return self->IsInputOpened();
+}
+
+EWXWEXPORT(wxProcess*,wxProcess_Open)(wxString* cmd,int flags)
+{
+    return wxProcess::Open( *cmd, ((flags | wxEXEC_ASYNC) & ~wxEXEC_SYNC) );
+}
+
+EWXWEXPORT(wxKillError,wxKill)(int pid,wxSignal signal)
+{
+  return wxProcess::Kill(pid,signal);
+}
+
+EWXWEXPORT(void,wxStreamBase_Delete)(wxStreamBase* stream)
+{
+  if (stream) delete stream;
+}
+
+/*------------------------------------------------------------------------------
+  TextCtrl
+------------------------------------------------------------------------------*/
+EWXWEXPORT(int,wxTextCtrl_EmulateKeyPress)(wxTextCtrl* self,wxKeyEvent* keyevent)
+{
+    return self->EmulateKeyPress(*keyevent);
+}
+
+
+EWXWEXPORT(void*,wxTextCtrl_GetDefaultStyle)(wxTextCtrl* self)
+{
+    return (void*)& self->GetDefaultStyle();
+}
+
+EWXWEXPORT(wxString*,wxTextCtrl_GetRange)(wxTextCtrl* self,long from,long to)
+{
+    wxString *result = new wxString();
+    *result = self->GetRange(from, to);
+    return result;
+}
+
+EWXWEXPORT(wxString*,wxTextCtrl_GetStringSelection)(wxTextCtrl* self)
+{
+    wxString *result = new wxString();
+    *result = self->GetStringSelection();
+    return result;
+}
+
+EWXWEXPORT(bool,wxTextCtrl_IsMultiLine)(wxTextCtrl* self)
+{
+    return  self->IsMultiLine();
+}
+
+EWXWEXPORT(bool,wxTextCtrl_IsSingleLine)(wxTextCtrl* self)
+{
+    return self->IsSingleLine(   );
+}
+
+
+EWXWEXPORT(bool,wxTextCtrl_SetDefaultStyle)(wxTextCtrl* self,wxTextAttr* style)
+{
+    return self->SetDefaultStyle(*style);
+}
+
+EWXWEXPORT(void,wxTextCtrl_SetMaxLength)(wxTextCtrl* self,long len)
+{
+    self->SetMaxLength( len  );
+}
+
+EWXWEXPORT(bool,wxTextCtrl_SetStyle)(wxTextCtrl* self,long start,long end,wxTextAttr* style)
+{
+    return self->SetStyle(start, end,*style);
+}
+
+/*------------------------------------------------------------------------------
+  TextAttr
+------------------------------------------------------------------------------*/
+EWXWEXPORT(wxTextAttr*,wxTextAttr_CreateDefault)()
+{
+  return new wxTextAttr();
+}
+
+EWXWEXPORT(wxTextAttr*,wxTextAttr_Create)(wxColour* colText,wxColour* colBack,wxFont* font)
+{
+    return new wxTextAttr( *colText,*colBack,*font );
+}
+
+EWXWEXPORT(void,wxTextAttr_Delete)(wxTextAttr* self)
+{
+    delete self;
+}
+
+EWXWEXPORT(void,wxTextAttr_GetBackgroundColour)(wxTextAttr* self,wxColour* colour)
+{
+    *colour = self->GetBackgroundColour();
+}
+
+EWXWEXPORT(void,wxTextAttr_GetFont)(wxTextAttr* self,wxFont* font)
+{
+    *font = self->GetFont();
+}
+
+EWXWEXPORT(void,wxTextAttr_GetTextColour)(wxTextAttr* self,wxColour* colour)
+{
+    *colour = self->GetTextColour();
+}
+
+EWXWEXPORT(bool,wxTextAttr_HasBackgroundColour)(wxTextAttr* self)
+{
+    return  self->HasBackgroundColour();
+}
+
+EWXWEXPORT(bool,wxTextAttr_HasFont)(wxTextAttr* self)
+{
+    return self->HasFont();
+}
+
+EWXWEXPORT(bool,wxTextAttr_HasTextColour)(wxTextAttr* self)
+{
+    return  self->HasTextColour();
+}
+
+EWXWEXPORT(bool,wxTextAttr_IsDefault)(wxTextAttr* self)
+{
+    return  self->IsDefault(   );
+}
+
+EWXWEXPORT(void,wxTextAttr_SetTextColour)(wxTextAttr* self,wxColour* colour)
+{
+   self->SetTextColour(*colour);
+}
+
+EWXWEXPORT(void,wxTextAttr_SetBackgroundColour)(wxTextAttr* self,wxColour* colour)
+{
+   self->SetBackgroundColour(*colour);
+}
+
+EWXWEXPORT(void,wxTextAttr_SetFont)(wxTextAttr* self,wxFont* font)
+{
+   self->SetFont(*font);
+}
+
+/*------------------------------------------------------------------------------
+  progress dialog
+------------------------------------------------------------------------------*/
+EWXWEXPORT(wxProgressDialog*,wxProgressDialog_Create)(wxString* title,wxString* message,int max,wxWindow* parent,int style)
+{
+  return new wxProgressDialog( *title, *message, max, parent, style );
+}
+
+EWXWEXPORT(bool,wxProgressDialog_Update)(wxProgressDialog* self,int value)
+{
+  return self->Update(value);
+}
+
+EWXWEXPORT(bool,wxProgressDialog_UpdateWithMessage)(wxProgressDialog* self,int value,wxString* message)
+{
+  return self->Update(value,*message);
+}
+
+EWXWEXPORT(void,wxProgressDialog_Resume)(wxProgressDialog* self)
+{
+  self->Resume();
+}
+
+
+/*------------------------------------------------------------------------------
+  standard dialogs
+------------------------------------------------------------------------------*/
+EWXWEXPORT(void,wxGetColourFromUser)(wxWindow* parent,wxColour* colInit,wxColour* colour)
+{
+  *colour = wxGetColourFromUser(parent, *colInit);
+}
+
+EWXWEXPORT(void,wxGetFontFromUser)(wxWindow* parent,wxFont* fontInit,wxFont* font)
+{
+  *font = wxGetFontFromUser(parent, *fontInit);
+}
+
+EWXWEXPORT(int, wxGetPasswordFromUser)(wxChar* message, wxChar* caption, wxChar* defaultText, wxWindow* parent, wxChar* _buf )
+{
+/* we use a complicated caching method as we don't want to call getpassword twice :-) */
+  static wxChar* resultBuffer = NULL;
+  if (_buf==NULL) {
+    if (resultBuffer) { free(resultBuffer); resultBuffer = NULL; }
+    wxString result = wxGetPasswordFromUser( message, caption, defaultText, parent );
+    resultBuffer = (wxChar*)malloc( (result.Length() + 1) * sizeof(wxChar) );
+    if (resultBuffer) {
+      wxStrcpy( resultBuffer, result.c_str() ); /* save result */
+      return result.Length();
+    }
+    else {
+      return 0;
+    }
+  }
+  else if (resultBuffer) {
+    int len = wxStrlen(resultBuffer);
+    memcpy(_buf, resultBuffer, len * sizeof(wxChar) );  /* copy saved result */
+    free(resultBuffer);
+    resultBuffer = NULL;
+    return len;
+  }
+  else {
+    return 0;
+  }
+}
+
+EWXWEXPORT(int, wxGetTextFromUser)(wxChar* message, wxChar* caption, wxChar* defaultText, wxWindow* parent, int x, int y, int center, wxChar* _buf )
+{
+/* we use a complicated caching method as we don't want to call gettext twice :-) */
+  static wxChar* resultBuffer = NULL;
+  if (_buf==NULL) {
+    if (resultBuffer) { free(resultBuffer); resultBuffer = NULL; }
+    wxString result = wxGetTextFromUser( message, caption, defaultText, parent, x, y, center!=0 );
+    resultBuffer = (wxChar*)malloc( (result.Length() + 1) * sizeof(wxChar) );
+    if (resultBuffer) {
+      wxStrcpy( resultBuffer, result.c_str() ); /* save result */
+      return result.Length();
+    }
+    else {
+      return 0;
+    }
+  }
+  else if (resultBuffer) {
+    int len = wxStrlen(resultBuffer);
+    memcpy(_buf, resultBuffer, len * sizeof(wxChar) );  /* copy saved result */
+    free(resultBuffer);
+    resultBuffer = NULL;
+    return len;
+  }
+  else {
+    return 0;
+  }
+}
+
+EWXWEXPORT(long,wxGetNumberFromUser)(wxString* message,wxString* prompt,wxString* caption,long value,long min,long max,wxWindow* parent,int x,int y)
+{
+  return wxGetNumberFromUser(*message, *prompt, *caption, value, min, max, parent, wxPoint(x, y) );
+}
+
+EWXWEXPORT(void,wxcBell)(void)
+{
+  wxBell();
+}
+
+EWXWEXPORT(void,wxcBeginBusyCursor)(void)
+{
+  wxBeginBusyCursor();
+}
+
+EWXWEXPORT(int,wxcIsBusy)(void)
+{
+  return (wxIsBusy());
+}
+
+EWXWEXPORT(void,wxcEndBusyCursor)(void)
+{
+  wxEndBusyCursor();
+}
+
+/*-----------------------------------------------------------------------------
+  wxInputSink
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxInputSink*,wxInputSink_Create)(wxInputStream* input,wxEvtHandler* evtHandler,int bufferLen)
+{
+  return new wxInputSink(input,evtHandler,bufferLen);
+}
+
+EWXWEXPORT(int,wxInputSink_GetId)(wxInputSink* self)
+{
+  return self->GetId();
+}
+
+EWXWEXPORT(void,wxInputSink_Start)(wxInputSink* self)
+{
+  self->Start();
+}
+
+
+EWXWEXPORT(int,wxInputSinkEvent_LastError)(wxInputSinkEvent* self)
+{
+  return self->LastError();
+}
+
+EWXWEXPORT(int,wxInputSinkEvent_LastRead)(wxInputSinkEvent* self)
+{
+  return self->LastRead();
+}
+
+EWXWEXPORT(char*,wxInputSinkEvent_LastInput)(wxInputSinkEvent* self)
+{
+  return self->LastInput();
+}
+
+
+/*-----------------------------------------------------------------------------
+  html window
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(void*,wxcHtmlEvent_GetMouseEvent)(wxcHtmlEvent* self)
+{
+    return (void*)(self->GetMouseEvent());
+}
+
+EWXWEXPORT(void*,wxcHtmlEvent_GetHtmlCell)(wxcHtmlEvent* self)
+{
+    return (void*)(self->GetHtmlCell());
+}
+
+EWXWEXPORT(wxString*,wxcHtmlEvent_GetHtmlCellId)(wxcHtmlEvent* self)
+{
+    return self->GetHtmlCellId();
+}
+
+EWXWEXPORT(wxString*,wxcHtmlEvent_GetHref)(wxcHtmlEvent* self)
+{
+    return self->GetHref();
+}
+
+EWXWEXPORT(wxString*,wxcHtmlEvent_GetTarget)(wxcHtmlEvent* self)
+{
+    return self->GetTarget();
+}
+
+EWXWEXPORT(wxPoint*,wxcHtmlEvent_GetLogicalPosition)(wxcHtmlEvent* self)
+{
+	wxPoint* pt = new wxPoint();
+	*pt = self->GetLogicalPosition();
+	return pt;
+}
+
+
+/*-----------------------------------------------------------------------------
+  html window
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxHtmlWindow*,wxHtmlWindow_Create)(wxWindow* _prt,int _id,int _lft,int _top,int _wdt,int _hgt,long _stl, wxString* _txt)
+{
+    return new wxHtmlWindow(_prt, _id, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl, *_txt );
+}
+
+EWXWEXPORT(wxHtmlWindow*, wxcHtmlWindow_Create)(wxWindow* _prt,int _id,int _lft,int _top,int _wdt,int _hgt,long _stl, wxString* _txt)
+{
+    return new wxcHtmlWindow(_prt, _id, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl, *_txt );
+}
+
+
+EWXWEXPORT(bool,wxHtmlWindow_AppendToPage)(wxHtmlWindow* self,wxString* source)
+{
+    return self->AppendToPage(*source);
+}
+
+EWXWEXPORT(void*,wxHtmlWindow_GetInternalRepresentation)(wxHtmlWindow* self)
+{
+    return (void*)self->GetInternalRepresentation();
+}
+
+EWXWEXPORT(wxString*,wxHtmlWindow_GetOpenedAnchor)(wxHtmlWindow* self)
+{
+	wxString *result = new wxString();
+	*result = self->GetOpenedAnchor();
+	return result;
+}
+
+EWXWEXPORT(wxString*,wxHtmlWindow_GetOpenedPage)(wxHtmlWindow* self)
+{
+	wxString *result = new wxString();
+	*result = self->GetOpenedPage();
+	return result;
+}
+
+EWXWEXPORT(wxString*,wxHtmlWindow_GetOpenedPageTitle)(wxHtmlWindow* self)
+{
+	wxString *result = new wxString();
+	*result = self->GetOpenedPageTitle();
+	return result;
+}
+
+
+EWXWEXPORT(void*,wxHtmlWindow_GetRelatedFrame)(wxHtmlWindow* self)
+{
+    return (void*)self->GetRelatedFrame(   );
+}
+
+EWXWEXPORT(bool,wxHtmlWindow_HistoryBack)(wxHtmlWindow* self)
+{
+    return self->HistoryBack();
+}
+
+EWXWEXPORT(bool,wxHtmlWindow_HistoryCanBack)(wxHtmlWindow* self)
+{
+    return self->HistoryCanBack();
+}
+
+EWXWEXPORT(bool,wxHtmlWindow_HistoryCanForward)(wxHtmlWindow* self)
+{
+    return self->HistoryCanForward();
+}
+
+EWXWEXPORT(void,wxHtmlWindow_HistoryClear)(wxHtmlWindow* self)
+{
+    self->HistoryClear(   );
+}
+
+EWXWEXPORT(bool,wxHtmlWindow_HistoryForward)(wxHtmlWindow* self)
+{
+    return self->HistoryForward();
+}
+
+EWXWEXPORT(bool,wxHtmlWindow_LoadPage)(wxHtmlWindow* self,wxString* location)
+{
+    return self->LoadPage(*location );
+}
+
+
+EWXWEXPORT(void,wxHtmlWindow_ReadCustomization)(wxHtmlWindow* self,wxConfigBase* cfg,wxString* path)
+{
+    self->ReadCustomization(  cfg,*path );
+}
+
+EWXWEXPORT(void,wxHtmlWindow_SetBorders)(wxHtmlWindow* self,int b)
+{
+    self->SetBorders( b );
+}
+
+EWXWEXPORT(void,wxHtmlWindow_SetFonts)(wxHtmlWindow* self,wxString* normal_face,wxString* fixed_face,int* sizes)
+{
+    self->SetFonts(*normal_face,*fixed_face, sizes );
+}
+
+EWXWEXPORT(int,wxHtmlWindow_SetPage)(wxHtmlWindow* self,wxString* source)
+{
+    return self->SetPage( *source );
+}
+
+EWXWEXPORT(void,wxHtmlWindow_SetRelatedFrame)(wxHtmlWindow* self,wxFrame* frame,wxString* format)
+{
+    self->SetRelatedFrame(frame,*format);
+}
+
+EWXWEXPORT(void,wxHtmlWindow_SetRelatedStatusBar)(wxHtmlWindow* self,int bar)
+{
+    self->SetRelatedStatusBar(bar);
+}
+
+EWXWEXPORT(void,wxHtmlWindow_WriteCustomization)(wxHtmlWindow* self,wxConfigBase* cfg,wxString* path)
+{
+    self->WriteCustomization(cfg,*path );
+}
+
+/*-----------------------------------------------------------------------------
+  LOGGER
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxLogStderr*,wxLogStderr_Create)()
+{
+	return new wxLogStderr();
+}
+
+EWXWEXPORT(wxLogStderr*,wxLogStderr_CreateStdOut)()
+{
+	return new wxLogStderr(stdout);
+}
+
+EWXWEXPORT(wxLogNull*,wxLogNull_Create)()
+{
+	return new wxLogNull();
+}
+
+EWXWEXPORT(wxLogTextCtrl*,wxLogTextCtrl_Create)(wxTextCtrl* text)
+{
+	return new wxLogTextCtrl(text);
+}
+
+EWXWEXPORT(wxLogWindow*,wxLogWindow_Create)(wxFrame* parent,wxString* title,bool showit,bool passthrough)
+{
+	return new wxLogWindow(parent,*title,showit,passthrough);
+}
+
+EWXWEXPORT(wxFrame*,wxLogWindow_GetFrame)(wxLogWindow* self)
+{
+	return self->GetFrame();
+}
+
+EWXWEXPORT(void,wxLog_Delete)(wxLog* self)
+{
+	delete self;
+}
+
+EWXWEXPORT(void,wxLog_OnLog)(wxLog* self,int level,void* szString,int t)
+{
+	self->OnLog((wxLogLevel)level, (const wxChar*)szString, (time_t)t);
+}
+
+EWXWEXPORT(void,wxLog_Flush)(wxLog* self)
+{
+	self->Flush();
+}
+
+EWXWEXPORT(bool,wxLog_HasPendingMessages)(wxLog* self)
+{
+	return self->HasPendingMessages();
+}
+
+EWXWEXPORT(void,wxLog_FlushActive)(wxLog* self)
+{
+	self->FlushActive();
+}
+
+EWXWEXPORT(void*,wxLog_GetActiveTarget)()
+{
+	return (void*)wxLog::GetActiveTarget();
+}
+
+EWXWEXPORT(void*,wxLog_SetActiveTarget)(wxLog* pLogger)
+{
+	return (void*)wxLog::SetActiveTarget(pLogger);
+}
+
+EWXWEXPORT(void,wxLog_Suspend)(wxLog* self)
+{
+	self->Suspend();
+}
+
+EWXWEXPORT(void,wxLog_Resume)(wxLog* self)
+{
+	self->Resume();
+}
+
+EWXWEXPORT(void,wxLog_SetVerbose)(wxLog* self,bool bVerbose)
+{
+	self->SetVerbose(bVerbose);
+}
+
+EWXWEXPORT(void,wxLog_DontCreateOnDemand)(wxLog* self)
+{
+	self->DontCreateOnDemand();
+}
+
+// Obsolete
+// EWXWEXPORT(void,wxLog_SetTraceMask)(wxLog* self,int ulMask)
+
+EWXWEXPORT(void,wxLog_AddTraceMask)(wxLog* self,void* str)
+{
+	self->AddTraceMask((const wxChar*)str);
+}
+
+EWXWEXPORT(void,wxLog_RemoveTraceMask)(wxLog* self,void* str)
+{
+	self->RemoveTraceMask((const wxChar*)str);
+}
+
+EWXWEXPORT(void,wxLog_SetTimestamp)(wxLog* self,void* ts)
+{
+	self->SetTimestamp((const wxChar*)ts);
+}
+
+EWXWEXPORT(bool,wxLog_GetVerbose)(wxLog* self)
+{
+	return self->GetVerbose();
+}
+
+EWXWEXPORT(int,wxLog_GetTraceMask)(wxLog* self)
+{
+	return (int)self->GetTraceMask();
+}
+
+EWXWEXPORT(bool,wxLog_IsAllowedTraceMask)(wxLog* self,void* mask)
+{
+	return self->IsAllowedTraceMask((const wxChar*)mask);
+}
+
+EWXWEXPORT(void*,wxLog_GetTimestamp)(wxLog* self)
+{
+# if (wxVERSION_NUMBER >= 2900)
+  return (void*)wxStrdup((self->GetTimestamp()).wchar_str());
+#else
+  return (void*)wxStrdup(self->GetTimestamp());
+#endif
+}
+
+
+EWXWEXPORT(void,LogError)(wxString* _msg)
+{
+	wxLogError(*_msg);
+}
+
+EWXWEXPORT(void,LogFatalError)(wxString* _msg)
+{
+	wxLogFatalError(*_msg);
+}
+
+EWXWEXPORT(void,LogWarning)(wxString* _msg)
+{
+	wxLogWarning(*_msg);
+}
+
+EWXWEXPORT(void,LogMessage)(wxString* _msg)
+{
+	wxLogMessage(*_msg);
+}
+
+EWXWEXPORT(void,LogVerbose)(wxString* _msg)
+{
+	wxLogVerbose(*_msg);
+}
+
+EWXWEXPORT(void,LogStatus)(wxString* _msg)
+{
+	wxLogStatus(*_msg);
+}
+
+EWXWEXPORT(void,LogSysError)(wxString* _msg)
+{
+	wxLogSysError(*_msg);
+}
+
+EWXWEXPORT(void,LogDebug)(wxString* _msg)
+{
+	wxLogDebug(*_msg);
+}
+
+EWXWEXPORT(void,LogTrace)(wxString* mask,wxString* _msg)
+{
+	wxLogTrace(*mask,*_msg);
+}
+
+/*-----------------------------------------------------------------------------
+  Grid text editor
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxGridCellTextEnterEditor*,wxGridCellTextEnterEditor_Ctor)()
+{
+	return new wxGridCellTextEnterEditor();
+}
+
+/*-----------------------------------------------------------------------------
+  ConfigBase
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxConfigBase*,wxConfigBase_Get)()
+{
+	return wxConfigBase::Get();
+}
+
+EWXWEXPORT(void,wxConfigBase_Set)(wxConfigBase* self)
+{
+	wxConfigBase::Set( self );
+}
+
+EWXWEXPORT(wxFileConfig*,wxFileConfig_Create)(wxInputStream* inp)
+{
+	return new wxFileConfig( *inp );
+}
+
+/*-----------------------------------------------------------------------------
+  PropertyGrid
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(void*,wxPropertyGrid_Append)(wxPropertyGrid* self, wxPGProperty * property)
+{
+        return (void*) self->Append(property);
+}
+
+EWXWEXPORT(void*,wxPropertyGrid_Create)(wxWindow* _prt,int _id, int _lft,int _top,int _wdt,int _hgt,int _stl)
+{
+        return (void*) new wxPropertyGrid (_prt, _id,wxPoint(_lft, _top),wxSize(_wdt, _hgt), _stl);
+}
+
+EWXWEXPORT(bool,wxPropertyGrid_DisableProperty)(wxPropertyGrid* self, wxString const * propName)
+{
+        return self->DisableProperty(*propName);
+}
+
+/*-----------------------------------------------------------------------------
+  wxPropertyGridEvent 
+  Defined within eljevent.cpp
+-----------------------------------------------------------------------------*/
+
+/*-----------------------------------------------------------------------------
+  PGProperty
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxString*,wxPGProperty_GetLabel)(wxPGProperty* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetLabel();
+        return result;
+}
+
+EWXWEXPORT(wxString*,wxPGProperty_GetName)(wxPGProperty* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetName();
+        return result;
+}
+
+EWXWEXPORT(wxString*,wxPGProperty_GetValueAsString)(wxPGProperty* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetValueAsString();
+        return result;
+}
+
+EWXWEXPORT(wxString*,wxPGProperty_GetValueType)(wxPGProperty* self)
+{
+        wxString *result = new wxString();
+        *result = self->GetValueType();
+        return result;
+}
+
+EWXWEXPORT(void,wxPGProperty_SetHelpString)(wxPGProperty* self, wxString const* helpString)
+{
+        self->SetHelpString(*helpString);
+}
+
+/*-----------------------------------------------------------------------------
+  wxStringProperty
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxStringProperty*,wxStringProperty_Create)(wxString const* label, wxString const* name, wxString const* value)
+{
+        return new wxStringProperty(*label, *name, *value);
+}
+
+/*-----------------------------------------------------------------------------
+  wxIntProperty
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxIntProperty*,wxIntProperty_Create)(wxString const* label, wxString const* name, int value)
+{
+        return new wxIntProperty(*label, *name, value);
+}
+
+/*-----------------------------------------------------------------------------
+  wxBoolProperty
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxBoolProperty*,wxBoolProperty_Create)(wxString const* label, wxString const* name, bool value)
+{
+        return new wxBoolProperty(*label, *name, value);
+}
+
+/*-----------------------------------------------------------------------------
+  wxFloatProperty
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxFloatProperty*,wxFloatProperty_Create)(wxString const* label, wxString const* name, float value)
+{
+        return new wxFloatProperty(*label, *name, value);
+}
+
+/*-----------------------------------------------------------------------------
+  wxDateProperty
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxDateProperty*,wxDateProperty_Create)(wxString const* label, wxString const* name, wxDateTime const* value)
+{
+        return new wxDateProperty(*label, *name, *value);
+}
+
+/*-----------------------------------------------------------------------------
+  wxFileProperty
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxFileProperty*,wxFileProperty_Create)(wxString const* label, wxString const* name, wxString const* value)
+{
+        return new wxFileProperty(*label, *name, *value);
+}
+
+/*-----------------------------------------------------------------------------
+  wxPropertyCategory
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxPropertyCategory*,wxPropertyCategory_Create)(wxString const* label)
+{
+        return new wxPropertyCategory(*label);
+}
+
+} /* extern "C" */
diff --git a/src/cpp/graphicscontext.cpp b/src/cpp/graphicscontext.cpp
--- a/src/cpp/graphicscontext.cpp
+++ b/src/cpp/graphicscontext.cpp
@@ -1,948 +1,968 @@
-#include "wrapper.h"
-
-/* testing */
-// #define wxUSE_GRAPHICS_CONTEXT 0
-
-/*-----------------------------------------------------------------------------
-  We want to include the function signatures always -- even on 
-  systems that don't support wxGraphicsContext. This means that every function body is
-  surrounded by #ifdef wxUSE_GRAPHICS_CONTEXT directives :-(
------------------------------------------------------------------------------*/
-
-#if defined(wxUSE_GRAPHICS_CONTEXT) && (wxUSE_GRAPHICS_CONTEXT==0)
-# undef wxUSE_GRAPHICS_CONTEXT
-#endif
-
-#ifdef wxUSE_GRAPHICS_CONTEXT
-#include "wx/graphics.h"
-#endif
-
-#ifndef wxUSE_GRAPHICS_CONTEXT
-# define wxPoint2DDouble        void
-# define wxGraphicsBrush        void
-# define wxGraphicsContext      void
-# define wxGraphicsFont         void
-# define wxGraphicsMatrix       void
-# define wxGraphicsObject       void
-# define wxGraphicsPath         void
-# define wxGraphicsPen          void
-# define wxGraphicsRenderer     void
-#endif
-
-extern "C" {
-
-/*-----------------------------------------------------------------------------
-  GraphicsContext
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxGraphicsContext*,wxGraphicsContext_Create)( const wxWindowDC* dc )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return wxGraphicsContext::Create(*dc);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsContext*,wxGraphicsContext_CreateFromWindow)( wxWindow* window )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return wxGraphicsContext::Create(window);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsContext*,wxGraphicsContext_CreateFromNative)( void * context )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return wxGraphicsContext::CreateFromNative(context);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsContext*,wxGraphicsContext_CreateFromNativeWindow)( void * window )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return wxGraphicsContext::CreateFromNativeWindow(window);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_Delete)(wxGraphicsContext* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  if (self) delete self;
-#endif
-}
-
-/*
-EWXWEXPORT(wxGraphicsPen*,wxGraphicsContext_CreatePen)( wxGraphicsContext* self, const wxPen& pen )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreatePen(pen);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsBrush*,wxGraphicsContext_CreateBrush)( wxGraphicsContext* self, const wxBrush& brush )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateBrush(brush);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsBrush*,wxGraphicsContext_CreateRadialGradientBrush)( wxGraphicsContext* self,
-                                                                          wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc
-                                                                          wxDouble radius,
-                                                                          const wxColour& oColor, const wxColour& cColor )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateRadialGradientBrush(xo, yo, xc, yc, radius, oColor, cColor);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsBrush*,wxGraphicsContext_CreateLinearGradientBrush)( wxGraphicsContext* self,
-                                                                          wxDouble x1, wxDouble y1,
-                                                                          wxDouble x2, wxDouble y2,
-                                                                          const wxColour& c1, const wxColour& c2 )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateRadialGradientBrush(x1, y1, x2, y2, c1, c2);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsFont*,wxGraphicsContext_CreateFont)( wxGraphicsContext* self, const wxFont& font )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateFont(font);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsFont*,wxGraphicsContext_CreateFontWithColour)( wxGraphicsContext* self,
-                                                                    const wxFont& font, const wxColour& col  )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateFont(font, col);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsMatrix*,wxGraphicsContext_CreateMatrix)( wxGraphicsContext* self,
-                                                              wxDouble a, wxDouble b, wxDouble c, wxDouble d,
-                                                              wxDouble tx , wxDouble ty )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateMatrix(a, b, c, d, tx, ty);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsMatrix*,wxGraphicsContext_CreateDefaultMatrix)( wxGraphicsContext* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateMatrix(1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsPath*,wxGraphicsContext_CreatePath)( wxGraphicsContext* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreatePath();
-#else
-  return NULL;
-#endif
-}
-*/
-
-EWXWEXPORT(void,wxGraphicsContext_Clip)( wxGraphicsContext* self, const wxRegion* region )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Clip(*region);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_ClipByRectangle)( wxGraphicsContext* self, wxDouble x, wxDouble y, wxDouble w, wxDouble h )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Clip(x, y, w, h);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_ResetClip)( wxGraphicsContext* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->ResetClip();
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_DrawBitmap)( wxGraphicsContext* self, const wxBitmap* bmp,
-                                               wxDouble x, wxDouble y, wxDouble w, wxDouble h )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->DrawBitmap(*bmp, x, y, w, h);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_DrawEllipse)( wxGraphicsContext* self,
-                                                wxDouble x, wxDouble y, wxDouble w, wxDouble h )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->DrawEllipse(x, y, w, h);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_DrawIcon)( wxGraphicsContext* self, const wxIcon* icon,
-                                             wxDouble x, wxDouble y, wxDouble w, wxDouble h )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->DrawIcon(*icon, x, y, w, h);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_DrawLines)( wxGraphicsContext* self, size_t n,
-                                              wxDouble* x, wxDouble* y, wxPolygonFillMode fillStyle )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  wxPoint2DDouble* points = (wxPoint2DDouble*)malloc (n * sizeof(wxPoint2DDouble));
-
-  for (size_t i = 0; i < n; i++)
-    points[i] = wxPoint2DDouble(x[i], y[i]);
-
-  #if (wxVERSION_NUMBER >= 2900)
-      wxPolygonFillMode pfm_fillStyle = (wxPolygonFillMode) fillStyle;
-  #else
-      int pfm_fillStyle = fillStyle;
-  #endif
-
-  self->DrawLines(n, points, pfm_fillStyle);
-
-  free (points);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_DrawPath)( wxGraphicsContext* self,
-                                             const wxGraphicsPath* path, wxPolygonFillMode fillStyle )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  #if (wxVERSION_NUMBER >= 2900)
-      wxPolygonFillMode pfm_fillStyle = (wxPolygonFillMode) fillStyle;
-  #else
-      int pfm_fillStyle = fillStyle;
-  #endif
-
-  self->DrawPath(*path, pfm_fillStyle);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_DrawRectangle)( wxGraphicsContext* self,
-                                                  wxDouble x, wxDouble y, wxDouble w, wxDouble h )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->DrawRectangle(x, y, w, h);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_DrawRoundedRectangle)( wxGraphicsContext* self,
-                                                         wxDouble x, wxDouble y, wxDouble w, wxDouble h,
-                                                         wxDouble radius )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->DrawRoundedRectangle(x, y, w, h, radius);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_DrawText)( wxGraphicsContext* self,
-                                             const wxString* str, wxDouble x, wxDouble y )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->DrawText((str ? *str : wxString(wxT(""))), x, y);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_DrawTextWithAngle)( wxGraphicsContext* self,
-                                                      const wxString* str, wxDouble x, wxDouble y, wxDouble angle)
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->DrawText((str ? *str : wxString(wxT(""))), x, y, angle);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_FillPath)( wxGraphicsContext* self,
-                                             const wxGraphicsPath* path, wxPolygonFillMode fillStyle )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  #if (wxVERSION_NUMBER >= 2900)
-      wxPolygonFillMode pfm_fillStyle = (wxPolygonFillMode) fillStyle;
-  #else
-      int pfm_fillStyle = fillStyle;
-  #endif
-
-  self->FillPath(*path, pfm_fillStyle);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_StrokePath)( wxGraphicsContext* self, const wxGraphicsPath* path )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->StrokePath(*path);
-#endif
-}
-
-EWXWEXPORT(void*,wxGraphicsContext_GetNativeContext)( wxGraphicsContext* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->GetNativeContext();
-#else
-  return NULL;
-#endif
-}
-
-/*
-TODO: Implement wrapper function of wxGraphicsContext::GetPartialTextExtents.
-*/
-
-EWXWEXPORT(void,wxGraphicsContext_GetTextExtent)( wxGraphicsContext* self, const wxString* text,
-                                                  wxDouble* width, wxDouble* height, wxDouble* descent,
-                                                  wxDouble* externalLeading )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->GetTextExtent(*text, width, height, descent, externalLeading);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_Rotate)( wxGraphicsContext* self, wxDouble angle )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Rotate(angle);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_Scale)( wxGraphicsContext* self, wxDouble xScale, wxDouble yScale )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Scale(xScale, yScale);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_Translate)( wxGraphicsContext* self, wxDouble dx, wxDouble dy )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Translate(dx, dy);
-#endif
-}
-
-/*
-EWXWEXPORT(wxGraphicsMatrix,wxGraphicsContext_GetTransform)( wxGraphicsContext* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->GetTransform();
-#else
-  return NULL;
-#endif
-}
-*/
-
-EWXWEXPORT(void,wxGraphicsContext_SetTransform)( wxGraphicsContext* self, const wxGraphicsMatrix* matrix )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->SetTransform(*matrix);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_ConcatTransform)( wxGraphicsContext* self, const wxGraphicsMatrix* matrix )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->ConcatTransform(*matrix);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_SetBrush)( wxGraphicsContext* self, const wxBrush* brush )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->SetBrush(*brush);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_SetGraphicsBrush)( wxGraphicsContext* self, const wxGraphicsBrush* brush )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->SetBrush(*brush);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_SetFont)( wxGraphicsContext* self, const wxFont* font, const wxColour* colour )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->SetFont(*font, *colour);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_SetGraphicsFont)( wxGraphicsContext* self, const wxGraphicsFont* font )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->SetFont(*font);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_SetPen)( wxGraphicsContext* self, const wxPen* pen )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->SetPen(*pen);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_SetGraphicsPen)( wxGraphicsContext* self, const wxGraphicsPen* pen )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->SetPen(*pen);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_StrokeLine)( wxGraphicsContext* self, wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2 )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->StrokeLine(x1, y1, x2, y2);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_StrokeLines)( wxGraphicsContext* self, size_t n,
-                                                wxDouble* x, wxDouble* y, wxPolygonFillMode fillStyle )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  wxPoint2DDouble* points = (wxPoint2DDouble*)malloc (n * sizeof(wxPoint2DDouble));
-
-  for (size_t i = 0; i < n; i++)
-    points[i] = wxPoint2DDouble(x[i], y[i]);
-
-  self->StrokeLines(n, points);
-
-  free (points);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsContext_StrokeLinesStartAndEnd)( wxGraphicsContext* self, size_t n,
-                                                           const wxPoint2DDouble* beginPoints, const wxPoint2DDouble* endPoints )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->StrokeLines(n, beginPoints, endPoints);
-#endif
-}
-
-/*-----------------------------------------------------------------------------
-  GraphicsObject
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxGraphicsObject*,wxGraphicsObject_Create)( )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return new wxGraphicsObject;
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsObject_Delete)(wxGraphicsObject* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  if (self) delete self;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsRenderer*,wxGraphicsObject_GetRenderer)(wxGraphicsObject* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->GetRenderer();
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(bool,wxGraphicsObject_IsNull)(wxGraphicsObject* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->IsNull();
-#else
-  return false;
-#endif
-}
-
-/*-----------------------------------------------------------------------------
-  GraphicsBrush
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxGraphicsBrush*,wxGraphicsBrush_Create)( )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return new wxGraphicsBrush;
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsBrush_Delete)(wxGraphicsBrush* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  if (self) delete self;
-#endif
-}
-
-/*-----------------------------------------------------------------------------
-  GraphicsFont
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxGraphicsFont*,wxGraphicsFont_Create)( )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return new wxGraphicsFont;
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsFont_Delete)(wxGraphicsFont* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  if (self) delete self;
-#endif
-}
-
-/*-----------------------------------------------------------------------------
-  GraphicsMatrix
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxGraphicsMatrix*,wxGraphicsMatrix_Create)( )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return new wxGraphicsMatrix;
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsMatrix_Delete)(wxGraphicsMatrix* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  if (self) delete self;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsMatrix_Concat)( wxGraphicsMatrix* self, const wxGraphicsMatrix* matrix )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Concat(matrix);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsMatrix_Get)( wxGraphicsMatrix* self,
-                                       wxDouble* a, wxDouble* b, wxDouble* c, wxDouble* d, wxDouble* tx, wxDouble* ty )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Get(a, b, c, d, tx, ty);
-#endif
-}
-
-EWXWEXPORT(void*,wxGraphicsMatrix_GetNativeMatrix)(wxGraphicsMatrix* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->GetNativeMatrix();
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsMatrix_Invert)( wxGraphicsMatrix* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Invert();
-#endif
-}
-
-EWXWEXPORT(bool,wxGraphicsMatrix_IsEqual)( wxGraphicsMatrix* self, const wxGraphicsMatrix* t )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->IsEqual(*t);
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxGraphicsMatrix_IsIdentity)( wxGraphicsMatrix* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->IsIdentity();
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsMatrix_Rotate)( wxGraphicsMatrix* self, wxDouble angle )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Rotate(angle);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsMatrix_Scale)( wxGraphicsMatrix* self, wxDouble xScale, wxDouble yScale )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Scale(xScale, yScale);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsMatrix_Translate)( wxGraphicsMatrix* self, wxDouble dx, wxDouble dy )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Translate(dx, dy);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsMatrix_Set)( wxGraphicsMatrix* self,
-                                       wxDouble a, wxDouble b, wxDouble c, wxDouble d, wxDouble tx, wxDouble ty )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Set(a, b, c, d, tx, ty);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsMatrix_TransformPoint)( wxGraphicsMatrix* self, wxDouble* x, wxDouble* y )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->TransformPoint(x, y);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsMatrix_TransformDistance)( wxGraphicsMatrix* self, wxDouble* dx, wxDouble* dy )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->TransformDistance(dx, dy);
-#endif
-}
-
-/*-----------------------------------------------------------------------------
-  GraphicsPath
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxGraphicsPath*,wxGraphicsPath_Create)( )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return new wxGraphicsPath;
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_Delete)(wxGraphicsPath* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  if (self) delete self;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_MoveToPoint)( wxGraphicsPath* self, wxDouble x, wxDouble y )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->MoveToPoint(x, y);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_AddArc)( wxGraphicsPath* self, wxDouble x, wxDouble y,
-                                        wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->AddArc(x, y, r, startAngle, endAngle, clockwise);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_AddArcToPoint)( wxGraphicsPath* self,
-                                               wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2, wxDouble r )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->AddArcToPoint(x1, y1, x2, y2, r);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_AddCircle)( wxGraphicsPath* self, wxDouble x, wxDouble y, wxDouble r )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->AddCircle(x, y, r);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_AddCurveToPoint)( wxGraphicsPath* self, wxDouble cx1, wxDouble cy1,
-                                                 wxDouble cx2, wxDouble cy2, wxDouble x, wxDouble y )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->AddCurveToPoint(cx1, cy1, cx2, cy2, x, y);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_AddEllipse)( wxGraphicsPath* self, wxDouble x, wxDouble y, wxDouble w, wxDouble h )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->AddEllipse(x, y, w, h);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_AddLineToPoint)( wxGraphicsPath* self, wxDouble x, wxDouble y )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->AddLineToPoint(x, y);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_AddPath)( wxGraphicsPath* self, const wxGraphicsPath* path )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->AddPath(*path);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_AddQuadCurveToPoint)( wxGraphicsPath* self,
-                                                     wxDouble cx, wxDouble cy, wxDouble x, wxDouble y )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->AddQuadCurveToPoint(cx, cy, x, y);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_AddRectangle)( wxGraphicsPath* self, wxDouble x, wxDouble y, wxDouble w, wxDouble h )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->AddRectangle(x, y, w, h);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_AddRoundedRectangle)( wxGraphicsPath* self, wxDouble x, wxDouble y,
-                                                     wxDouble w, wxDouble h, wxDouble radius )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->AddRoundedRectangle(x, y, w, h, radius);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_CloseSubpath)( wxGraphicsPath* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->CloseSubpath();
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_Contains)( wxGraphicsPath* self, wxDouble x, wxDouble y, wxPolygonFillMode fillStyle )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  #if (wxVERSION_NUMBER >= 2900)
-      wxPolygonFillMode pfm_fillStyle = (wxPolygonFillMode) fillStyle;
-  #else
-      int pfm_fillStyle = fillStyle;
-  #endif
-
-  self->Contains(x, y, pfm_fillStyle);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_GetBox)( wxGraphicsPath* self, wxDouble* x, wxDouble* y, wxDouble* w, wxDouble* h )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->GetBox(x, y, w, h);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_GetCurrentPoint)( wxGraphicsPath* self, wxDouble* x, wxDouble* y )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->GetCurrentPoint(x, y);
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_Transform)( wxGraphicsPath* self, const wxGraphicsMatrix* matrix )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->Transform(*matrix);
-#endif
-}
-
-EWXWEXPORT(void*,wxGraphicsPath_GetNativePath)( wxGraphicsPath* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->GetNativePath();
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPath_UnGetNativePath)( wxGraphicsPath* self, void* p )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  self->UnGetNativePath(p);
-#endif
-}
-
-/*-----------------------------------------------------------------------------
-  GraphicsPen
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxGraphicsPen*,wxGraphicsPen_Create)( )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return new wxGraphicsPen;
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxGraphicsPen_Delete)(wxGraphicsPen* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  if (self) delete self;
-#endif
-}
-
-/* We can't create wxGraphicsRenderer by this function.
-   Because wxGraphicsRenderer is a abstract class.
-
-EWXWEXPORT(wxGraphicsRenderer*,wxGraphicsRenderer_Create)( )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return new wxGraphicsRenderer;
-#else
-  return NULL;
-#endif
-}
-*/
-
-EWXWEXPORT(void,wxGraphicsRenderer_Delete)(wxGraphicsRenderer* self)  
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  if (self) delete self;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsRenderer*,wxGraphicsRenderer_GetDefaultRenderer)( wxGraphicsRenderer* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->GetDefaultRenderer();
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsContext*,wxGraphicsRenderer_CreateContext)( wxGraphicsRenderer* self, const wxWindowDC* dc )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateContext(*dc);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsContext*,wxGraphicsRenderer_CreateContextFromWindow)( wxGraphicsRenderer* self, wxWindow* window )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateContext(window);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsContext*,wxGraphicsRenderer_CreateContextFromNativeContext)( wxGraphicsRenderer* self, void* context )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateContextFromNativeContext(context);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsContext*,wxGraphicsRenderer_CreateContextFromNativeWindow)( wxGraphicsRenderer* self, void* window )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateContextFromNativeWindow(window);
-#else
-  return NULL;
-#endif
-}
-
-/*
-EWXWEXPORT(wxGraphicsPen,wxGraphicsRenderer_CreatePen)( wxGraphicsRenderer* self, const wxPen* pen )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreatePen(*pen);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsBrush,wxGraphicsRenderer_CreateBrush)( wxGraphicsRenderer* self, const wxBrush* brush )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateBrush(*brush);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsBrush,wxGraphicsRenderer_CreateLinearGradientBrush)( wxGraphicsRenderer* self,
-                                                                          wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
-                                                                          const wxColour* c1, const wxColour* c2 )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateLinearGradientBrush(x1, y1, x2, y2, *c1, *c2);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsBrush,wxGraphicsRenderer_CreateRadialGradientBrush)( wxGraphicsRenderer* self,
-                                                                          wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
-                                                                          const wxColour* c1, const wxColour* c2 )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateRadialGradientBrush(x1, y1, x2, y2, *c1, *c2);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsFont,wxGraphicsRenderer_CreateFont)( wxGraphicsRenderer* self,
-                                                          const wxFont* font, const wxColour* col  )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateFont(*font, *col );
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsMatrix,wxGraphicsRenderer_CreateMatrix)( wxGraphicsRenderer* self,
-                                                              wxDouble a, wxDouble b, wxDouble c, wxDouble d,
-                                                              wxDouble tx, wxDouble ty )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreateMatrix(a, b, c, d, tx, ty);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(wxGraphicsPath,wxGraphicsRenderer_CreatePath)( wxGraphicsRenderer* self )
-{
-#ifdef wxUSE_GRAPHICS_CONTEXT
-  return self->CreatePath();
-#else
-  return NULL;
-#endif
-}
-*/
-
-}
-
-
+#include "wrapper.h"
+
+/* testing */
+// #define wxUSE_GRAPHICS_CONTEXT 0
+
+/*-----------------------------------------------------------------------------
+  We want to include the function signatures always -- even on 
+  systems that don't support wxGraphicsContext. This means that every function body is
+  surrounded by #ifdef wxUSE_GRAPHICS_CONTEXT directives :-(
+-----------------------------------------------------------------------------*/
+
+#if defined(wxUSE_GRAPHICS_CONTEXT) && (wxUSE_GRAPHICS_CONTEXT==0)
+# undef wxUSE_GRAPHICS_CONTEXT
+#endif
+
+#ifdef wxUSE_GRAPHICS_CONTEXT
+#include "wx/graphics.h"
+#endif
+
+#ifndef wxUSE_GRAPHICS_CONTEXT
+# define wxPoint2DDouble        void
+# define wxGraphicsBrush        void
+# define wxGraphicsContext      void
+# define wxGraphicsFont         void
+# define wxGraphicsMatrix       void
+# define wxGraphicsObject       void
+# define wxGraphicsPath         void
+# define wxGraphicsPen          void
+# define wxGraphicsRenderer     void
+#endif
+
+extern "C" {
+
+/*-----------------------------------------------------------------------------
+  GraphicsContext
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxGraphicsContext*,wxGraphicsContext_Create)( const wxWindowDC* dc )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return wxGraphicsContext::Create(*dc);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsContext*,wxGraphicsContext_CreateFromWindow)( wxWindow* window )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return wxGraphicsContext::Create(window);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsContext*,wxGraphicsContext_CreateFromNative)( void * context )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return wxGraphicsContext::CreateFromNative(context);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsContext*,wxGraphicsContext_CreateFromNativeWindow)( void * window )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return wxGraphicsContext::CreateFromNativeWindow(window);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_Delete)(wxGraphicsContext* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  if (self) delete self;
+#endif
+}
+
+/*
+EWXWEXPORT(wxGraphicsPen*,wxGraphicsContext_CreatePen)( wxGraphicsContext* self, const wxPen& pen )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreatePen(pen);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsBrush*,wxGraphicsContext_CreateBrush)( wxGraphicsContext* self, const wxBrush& brush )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateBrush(brush);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsBrush*,wxGraphicsContext_CreateRadialGradientBrush)( wxGraphicsContext* self,
+                                                                          wxDouble xo, wxDouble yo, wxDouble xc, wxDouble yc
+                                                                          wxDouble radius,
+                                                                          const wxColour& oColor, const wxColour& cColor )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateRadialGradientBrush(xo, yo, xc, yc, radius, oColor, cColor);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsBrush*,wxGraphicsContext_CreateLinearGradientBrush)( wxGraphicsContext* self,
+                                                                          wxDouble x1, wxDouble y1,
+                                                                          wxDouble x2, wxDouble y2,
+                                                                          const wxColour& c1, const wxColour& c2 )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateRadialGradientBrush(x1, y1, x2, y2, c1, c2);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsFont*,wxGraphicsContext_CreateFont)( wxGraphicsContext* self, const wxFont& font )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateFont(font);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsFont*,wxGraphicsContext_CreateFontWithColour)( wxGraphicsContext* self,
+                                                                    const wxFont& font, const wxColour& col  )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateFont(font, col);
+#else
+  return NULL;
+#endif
+}
+*/
+
+EWXWEXPORT(wxGraphicsMatrix*,wxGraphicsContext_CreateMatrix)( wxGraphicsContext* self,
+                                                              double a,double b,double c, double d,
+                                                              double tx ,double ty )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  wxGraphicsMatrix *matrix = new wxGraphicsMatrix;
+  *matrix = self->CreateMatrix(a, b, c, d, tx, ty);
+  return matrix;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsMatrix*,wxGraphicsContext_CreateDefaultMatrix)( wxGraphicsContext* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  wxGraphicsMatrix *matrix = new wxGraphicsMatrix;
+  *matrix = self->CreateMatrix(1.0, 0.0, 0.0, 1.0, 0.0, 0.0);
+  return matrix;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsPath*,wxGraphicsContext_CreatePath)( wxGraphicsContext* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  wxGraphicsPath *path = new wxGraphicsPath;
+  *path = self->CreatePath();
+  return path;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_Clip)( wxGraphicsContext* self, const wxRegion* region )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Clip(*region);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_ClipByRectangle)( wxGraphicsContext* self, wxDouble x, wxDouble y, wxDouble w, wxDouble h )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Clip(x, y, w, h);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_ResetClip)( wxGraphicsContext* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->ResetClip();
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_DrawBitmap)( wxGraphicsContext* self, const wxBitmap* bmp,
+                                               wxDouble x, wxDouble y, wxDouble w, wxDouble h )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->DrawBitmap(*bmp, x, y, w, h);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_DrawEllipse)( wxGraphicsContext* self,
+                                                wxDouble x, wxDouble y, wxDouble w, wxDouble h )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->DrawEllipse(x, y, w, h);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_DrawIcon)( wxGraphicsContext* self, const wxIcon* icon,
+                                             wxDouble x, wxDouble y, wxDouble w, wxDouble h )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->DrawIcon(*icon, x, y, w, h);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_DrawLines)( wxGraphicsContext* self, size_t n,
+                                              wxDouble* x, wxDouble* y, wxPolygonFillMode fillStyle )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  wxPoint2DDouble* points = (wxPoint2DDouble*)malloc (n * sizeof(wxPoint2DDouble));
+
+  for (size_t i = 0; i < n; i++)
+    points[i] = wxPoint2DDouble(x[i], y[i]);
+
+  #if (wxVERSION_NUMBER >= 2900)
+      wxPolygonFillMode pfm_fillStyle = (wxPolygonFillMode) fillStyle;
+  #else
+      int pfm_fillStyle = fillStyle;
+  #endif
+
+  self->DrawLines(n, points, pfm_fillStyle);
+
+  free (points);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_DrawPath)( wxGraphicsContext* self,
+                                             const wxGraphicsPath* path, wxPolygonFillMode fillStyle )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  #if (wxVERSION_NUMBER >= 2900)
+      wxPolygonFillMode pfm_fillStyle = (wxPolygonFillMode) fillStyle;
+  #else
+      int pfm_fillStyle = fillStyle;
+  #endif
+
+  self->DrawPath(*path, pfm_fillStyle);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_DrawRectangle)( wxGraphicsContext* self,
+                                                  wxDouble x, wxDouble y, wxDouble w, wxDouble h )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->DrawRectangle(x, y, w, h);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_DrawRoundedRectangle)( wxGraphicsContext* self,
+                                                         wxDouble x, wxDouble y, wxDouble w, wxDouble h,
+                                                         wxDouble radius )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->DrawRoundedRectangle(x, y, w, h, radius);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_DrawText)( wxGraphicsContext* self,
+                                             const wxString* str, wxDouble x, wxDouble y )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->DrawText((str ? *str : wxString(wxT(""))), x, y);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_DrawTextWithAngle)( wxGraphicsContext* self,
+                                                      const wxString* str, wxDouble x, wxDouble y, wxDouble angle)
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->DrawText((str ? *str : wxString(wxT(""))), x, y, angle);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_FillPath)( wxGraphicsContext* self,
+                                             const wxGraphicsPath* path, wxPolygonFillMode fillStyle )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  #if (wxVERSION_NUMBER >= 2900)
+      wxPolygonFillMode pfm_fillStyle = (wxPolygonFillMode) fillStyle;
+  #else
+      int pfm_fillStyle = fillStyle;
+  #endif
+
+  self->FillPath(*path, pfm_fillStyle);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_StrokePath)( wxGraphicsContext* self, const wxGraphicsPath* path )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->StrokePath(*path);
+#endif
+}
+
+EWXWEXPORT(void*,wxGraphicsContext_GetNativeContext)( wxGraphicsContext* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->GetNativeContext();
+#else
+  return NULL;
+#endif
+}
+
+/*
+TODO: Implement wrapper function of wxGraphicsContext::GetPartialTextExtents.
+*/
+
+EWXWEXPORT(void,wxGraphicsContext_GetTextExtent)( wxGraphicsContext* self, const wxString* text,
+                                                  wxDouble* width, wxDouble* height, wxDouble* descent,
+                                                  wxDouble* externalLeading )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->GetTextExtent(*text, width, height, descent, externalLeading);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_Rotate)( wxGraphicsContext* self, wxDouble angle )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Rotate(angle);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_Scale)( wxGraphicsContext* self, wxDouble xScale, wxDouble yScale )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Scale(xScale, yScale);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_Translate)( wxGraphicsContext* self, wxDouble dx, wxDouble dy )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Translate(dx, dy);
+#endif
+}
+
+/*
+EWXWEXPORT(wxGraphicsMatrix,wxGraphicsContext_GetTransform)( wxGraphicsContext* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->GetTransform();
+#else
+  return NULL;
+#endif
+}
+*/
+
+EWXWEXPORT(void,wxGraphicsContext_SetTransform)( wxGraphicsContext* self, const wxGraphicsMatrix* matrix )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->SetTransform(*matrix);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_ConcatTransform)( wxGraphicsContext* self, const wxGraphicsMatrix* matrix )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->ConcatTransform(*matrix);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_SetBrush)( wxGraphicsContext* self, const wxBrush* brush )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->SetBrush(*brush);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_SetGraphicsBrush)( wxGraphicsContext* self, const wxGraphicsBrush* brush )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->SetBrush(*brush);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_SetFont)( wxGraphicsContext* self, const wxFont* font, const wxColour* colour )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->SetFont(*font, *colour);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_SetGraphicsFont)( wxGraphicsContext* self, const wxGraphicsFont* font )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->SetFont(*font);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_SetPen)( wxGraphicsContext* self, const wxPen* pen )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->SetPen(*pen);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_SetGraphicsPen)( wxGraphicsContext* self, const wxGraphicsPen* pen )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->SetPen(*pen);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_StrokeLine)( wxGraphicsContext* self, wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2 )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->StrokeLine(x1, y1, x2, y2);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_StrokeLines)( wxGraphicsContext* self, size_t n,
+                                                wxDouble* x, wxDouble* y, wxPolygonFillMode fillStyle )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  wxPoint2DDouble* points = (wxPoint2DDouble*)malloc (n * sizeof(wxPoint2DDouble));
+
+  for (size_t i = 0; i < n; i++)
+    points[i] = wxPoint2DDouble(x[i], y[i]);
+
+  self->StrokeLines(n, points);
+
+  free (points);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_StrokeLinesStartAndEnd)( wxGraphicsContext* self, size_t n,
+                                                           const wxPoint2DDouble* beginPoints, const wxPoint2DDouble* endPoints )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->StrokeLines(n, beginPoints, endPoints);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_PushState)( wxGraphicsContext* self)
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->PushState();
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsContext_PopState)( wxGraphicsContext* self)
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->PopState();
+#endif
+}
+
+/*-----------------------------------------------------------------------------
+  GraphicsObject
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxGraphicsObject*,wxGraphicsObject_Create)( )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return new wxGraphicsObject;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsObject_Delete)(wxGraphicsObject* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  if (self) delete self;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsRenderer*,wxGraphicsObject_GetRenderer)(wxGraphicsObject* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->GetRenderer();
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(bool,wxGraphicsObject_IsNull)(wxGraphicsObject* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->IsNull();
+#else
+  return false;
+#endif
+}
+
+/*-----------------------------------------------------------------------------
+  GraphicsBrush
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxGraphicsBrush*,wxGraphicsBrush_Create)( )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return new wxGraphicsBrush;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsBrush_Delete)(wxGraphicsBrush* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  if (self) delete self;
+#endif
+}
+
+/*-----------------------------------------------------------------------------
+  GraphicsFont
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxGraphicsFont*,wxGraphicsFont_Create)( )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return new wxGraphicsFont;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsFont_Delete)(wxGraphicsFont* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  if (self) delete self;
+#endif
+}
+
+/*-----------------------------------------------------------------------------
+  GraphicsMatrix
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxGraphicsMatrix*,wxGraphicsMatrix_Create)( )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return new wxGraphicsMatrix;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsMatrix_Delete)(wxGraphicsMatrix* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  if (self) delete self;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsMatrix_Concat)( wxGraphicsMatrix* self, const wxGraphicsMatrix* matrix )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Concat(matrix);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsMatrix_Get)( wxGraphicsMatrix* self,
+                                       wxDouble* a, wxDouble* b, wxDouble* c, wxDouble* d, wxDouble* tx, wxDouble* ty )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Get(a, b, c, d, tx, ty);
+#endif
+}
+
+EWXWEXPORT(void*,wxGraphicsMatrix_GetNativeMatrix)(wxGraphicsMatrix* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->GetNativeMatrix();
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsMatrix_Invert)( wxGraphicsMatrix* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Invert();
+#endif
+}
+
+EWXWEXPORT(bool,wxGraphicsMatrix_IsEqual)( wxGraphicsMatrix* self, const wxGraphicsMatrix* t )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->IsEqual(*t);
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxGraphicsMatrix_IsIdentity)( wxGraphicsMatrix* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->IsIdentity();
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsMatrix_Rotate)( wxGraphicsMatrix* self, wxDouble angle )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Rotate(angle);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsMatrix_Scale)( wxGraphicsMatrix* self, wxDouble xScale, wxDouble yScale )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Scale(xScale, yScale);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsMatrix_Translate)( wxGraphicsMatrix* self, wxDouble dx, wxDouble dy )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Translate(dx, dy);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsMatrix_Set)( wxGraphicsMatrix* self,
+                                       wxDouble a, wxDouble b, wxDouble c, wxDouble d, wxDouble tx, wxDouble ty )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Set(a, b, c, d, tx, ty);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsMatrix_TransformPoint)( wxGraphicsMatrix* self, wxDouble* x, wxDouble* y )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->TransformPoint(x, y);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsMatrix_TransformDistance)( wxGraphicsMatrix* self, wxDouble* dx, wxDouble* dy )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->TransformDistance(dx, dy);
+#endif
+}
+
+/*-----------------------------------------------------------------------------
+  GraphicsPath
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxGraphicsPath*,wxGraphicsPath_Create)( )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return new wxGraphicsPath;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_Delete)(wxGraphicsPath* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  if (self) delete self;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_MoveToPoint)( wxGraphicsPath* self, wxDouble x, wxDouble y )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->MoveToPoint(x, y);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_AddArc)( wxGraphicsPath* self, wxDouble x, wxDouble y,
+                                        wxDouble r, wxDouble startAngle, wxDouble endAngle, bool clockwise )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->AddArc(x, y, r, startAngle, endAngle, clockwise);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_AddArcToPoint)( wxGraphicsPath* self,
+                                               wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2, wxDouble r )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->AddArcToPoint(x1, y1, x2, y2, r);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_AddCircle)( wxGraphicsPath* self, wxDouble x, wxDouble y, wxDouble r )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->AddCircle(x, y, r);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_AddCurveToPoint)( wxGraphicsPath* self, wxDouble cx1, wxDouble cy1,
+                                                 wxDouble cx2, wxDouble cy2, wxDouble x, wxDouble y )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->AddCurveToPoint(cx1, cy1, cx2, cy2, x, y);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_AddEllipse)( wxGraphicsPath* self, wxDouble x, wxDouble y, wxDouble w, wxDouble h )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->AddEllipse(x, y, w, h);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_AddLineToPoint)( wxGraphicsPath* self, wxDouble x, wxDouble y )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->AddLineToPoint(x, y);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_AddPath)( wxGraphicsPath* self, const wxGraphicsPath* path )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->AddPath(*path);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_AddQuadCurveToPoint)( wxGraphicsPath* self,
+                                                     wxDouble cx, wxDouble cy, wxDouble x, wxDouble y )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->AddQuadCurveToPoint(cx, cy, x, y);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_AddRectangle)( wxGraphicsPath* self, wxDouble x, wxDouble y, wxDouble w, wxDouble h )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->AddRectangle(x, y, w, h);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_AddRoundedRectangle)( wxGraphicsPath* self, wxDouble x, wxDouble y,
+                                                     wxDouble w, wxDouble h, wxDouble radius )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->AddRoundedRectangle(x, y, w, h, radius);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_CloseSubpath)( wxGraphicsPath* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->CloseSubpath();
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_Contains)( wxGraphicsPath* self, wxDouble x, wxDouble y, wxPolygonFillMode fillStyle )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  #if (wxVERSION_NUMBER >= 2900)
+      wxPolygonFillMode pfm_fillStyle = (wxPolygonFillMode) fillStyle;
+  #else
+      int pfm_fillStyle = fillStyle;
+  #endif
+
+  self->Contains(x, y, pfm_fillStyle);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_GetBox)( wxGraphicsPath* self, wxDouble* x, wxDouble* y, wxDouble* w, wxDouble* h )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->GetBox(x, y, w, h);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_GetCurrentPoint)( wxGraphicsPath* self, wxDouble* x, wxDouble* y )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->GetCurrentPoint(x, y);
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_Transform)( wxGraphicsPath* self, const wxGraphicsMatrix* matrix )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->Transform(*matrix);
+#endif
+}
+
+EWXWEXPORT(void*,wxGraphicsPath_GetNativePath)( wxGraphicsPath* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->GetNativePath();
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPath_UnGetNativePath)( wxGraphicsPath* self, void* p )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  self->UnGetNativePath(p);
+#endif
+}
+
+/*-----------------------------------------------------------------------------
+  GraphicsPen
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxGraphicsPen*,wxGraphicsPen_Create)( )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return new wxGraphicsPen;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxGraphicsPen_Delete)(wxGraphicsPen* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  if (self) delete self;
+#endif
+}
+
+/* We can't create wxGraphicsRenderer by this function.
+   Because wxGraphicsRenderer is a abstract class.
+
+EWXWEXPORT(wxGraphicsRenderer*,wxGraphicsRenderer_Create)( )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return new wxGraphicsRenderer;
+#else
+  return NULL;
+#endif
+}
+*/
+
+EWXWEXPORT(void,wxGraphicsRenderer_Delete)(wxGraphicsRenderer* self)  
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  if (self) delete self;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsRenderer*,wxGraphicsRenderer_GetDefaultRenderer)( wxGraphicsRenderer* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->GetDefaultRenderer();
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsContext*,wxGraphicsRenderer_CreateContext)( wxGraphicsRenderer* self, const wxWindowDC* dc )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateContext(*dc);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsContext*,wxGraphicsRenderer_CreateContextFromWindow)( wxGraphicsRenderer* self, wxWindow* window )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateContext(window);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsContext*,wxGraphicsRenderer_CreateContextFromNativeContext)( wxGraphicsRenderer* self, void* context )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateContextFromNativeContext(context);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsContext*,wxGraphicsRenderer_CreateContextFromNativeWindow)( wxGraphicsRenderer* self, void* window )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateContextFromNativeWindow(window);
+#else
+  return NULL;
+#endif
+}
+
+/*
+EWXWEXPORT(wxGraphicsPen,wxGraphicsRenderer_CreatePen)( wxGraphicsRenderer* self, const wxPen* pen )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreatePen(*pen);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsBrush,wxGraphicsRenderer_CreateBrush)( wxGraphicsRenderer* self, const wxBrush* brush )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateBrush(*brush);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsBrush,wxGraphicsRenderer_CreateLinearGradientBrush)( wxGraphicsRenderer* self,
+                                                                          wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
+                                                                          const wxColour* c1, const wxColour* c2 )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateLinearGradientBrush(x1, y1, x2, y2, *c1, *c2);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsBrush,wxGraphicsRenderer_CreateRadialGradientBrush)( wxGraphicsRenderer* self,
+                                                                          wxDouble x1, wxDouble y1, wxDouble x2, wxDouble y2,
+                                                                          const wxColour* c1, const wxColour* c2 )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateRadialGradientBrush(x1, y1, x2, y2, *c1, *c2);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsFont,wxGraphicsRenderer_CreateFont)( wxGraphicsRenderer* self,
+                                                          const wxFont* font, const wxColour* col  )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateFont(*font, *col );
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsMatrix,wxGraphicsRenderer_CreateMatrix)( wxGraphicsRenderer* self,
+                                                              wxDouble a, wxDouble b, wxDouble c, wxDouble d,
+                                                              wxDouble tx, wxDouble ty )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreateMatrix(a, b, c, d, tx, ty);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(wxGraphicsPath,wxGraphicsRenderer_CreatePath)( wxGraphicsRenderer* self )
+{
+#ifdef wxUSE_GRAPHICS_CONTEXT
+  return self->CreatePath();
+#else
+  return NULL;
+#endif
+}
+*/
+
+}
+
+
diff --git a/src/cpp/image.cpp b/src/cpp/image.cpp
--- a/src/cpp/image.cpp
+++ b/src/cpp/image.cpp
@@ -1,231 +1,231 @@
-#include <memory.h>
-#include <string.h>
-
-#include "wrapper.h"
-
-extern "C"
-{
-
-/* bitmap/image helpers */
-EWXWEXPORT(wxBitmap*,wxBitmap_CreateFromImage)(wxImage* image,int depth)
-{
-  return new wxBitmap(*image,depth);
-}
-
-
-EWXWEXPORT(wxImage*,wxImage_CreateFromDataEx)(int width,int height,wxUint8* data,bool isStaticData)
-{
-  return new wxImage(width, height, data, isStaticData);
-}
-
-
-EWXWEXPORT(void,wxImage_Delete)(wxImage* image)
-{
-  delete image;
-}
-
-
-/* colours */
-EWXWEXPORT(wxColour*,wxColour_CreateFromInt)(int rgb)
-{
-  return new wxColour((rgb >> 16) & 0xFF, (rgb >> 8) & 0xFF, rgb & 0xFF);
-}
-
-EWXWEXPORT(int,wxColour_GetInt)(wxColour* colour)
-{
-  int r = colour->Red();
-  int g = colour->Green();
-  int b = colour->Blue();
-  return ((r << 16) | (g << 8) | b);
-}
-
-/* basic pixel manipulation */
-EWXWEXPORT(void,wxcSetPixelRGB)(wxUint8* buffer,int width,int x,int y,int rgb)
-{
-  int indexR = 3*(width*y + x);
-  buffer[indexR]   = rgb >> 16;
-  buffer[indexR+1] = rgb >>  8;
-  buffer[indexR+2] = rgb;
-}
-
-EWXWEXPORT(int,wxcGetPixelRGB)(wxUint8* buffer,int width,int x,int y)
-{
-  int indexR = 3*(width*y + x);
-  int r,g,b;
-  r = buffer[indexR];
-  g = buffer[indexR+1];
-  b = buffer[indexR+2];
-  return ((r << 16) | (g << 8) | b);
-}
-
-EWXWEXPORT(void,wxcSetPixelRowRGB)(wxUint8* buffer,int width,int x,int y,int rgb0,int rgb1,int count)
-{
-  int r0  = ((rgb0 >> 16) && 0xFF);
-  int g0  = ((rgb0 >>  8) && 0xFF);
-  int b0  = (rgb0 && 0xFF);
-  int start = 3*(width*y+x);
-  int i;
-
-  if (rgb0 == rgb1) {
-    /* same color */
-    for( i=0; i < count*3; i +=3) {
-      buffer[start+i]   = r0;
-      buffer[start+i+1] = g0;
-      buffer[start+i+2] = b0;
-    }
-  }
-  else {
-    /* do linear interpolation of the color */
-    int r1  = ((rgb1 >> 16) && 0xFF);
-    int g1  = ((rgb1 >>  8) && 0xFF);
-    int b1  = (rgb1 && 0xFF);
-
-    int rd  = ((r1 - r0) << 16) / (count-1);
-    int gd  = ((g1 - g0) << 16) / (count-1);
-    int bd  = ((b1 - b0) << 16) / (count-1);
-
-    int r   = r0 << 16;
-    int g   = g0 << 16;
-    int b   = b0 << 16;
-
-    for( i = 0; i < count*3; i += 3 ) {
-      buffer[start+i]   = (r >> 16);
-      buffer[start+i+1] = (g >> 16);
-      buffer[start+i+2] = (b >> 16);
-      r += rd;
-      g += gd;
-      b += bd;
-    }
-  }
-}
-
-EWXWEXPORT(void,wxcInitPixelsRGB)(wxUint8* buffer,int width,int height,int rgb)
-{
-  int count        = width*height*3;
-  wxUint8 r  = ((rgb >> 16) && 0xFF);
-  wxUint8 g  = ((rgb >>  8) && 0xFF);
-  wxUint8 b  = rgb && 0xFF;
-  int i;
-
-  if (r==g && g==b) {
-    for( i=0; i < count; i++ ) {
-      buffer[i] = r;
-    }
-  }
-  else {
-    for( i=0; i < count; i += 3) {
-      buffer[i]   = r;
-      buffer[i+1] = g;
-      buffer[i+2] = b;
-    }
-  }
-}
-
-EWXWEXPORT(wxColour*,wxColour_CreateFromUnsignedInt)(unsigned int rgba)
-{
-  return new wxColour((rgba >> 24) & 0xFF, (rgba >> 16) & 0xFF, (rgba >> 8) & 0xFF, rgba & 0xFF);
-}
-
-EWXWEXPORT(unsigned int,wxColour_GetUnsignedInt)(wxColour* colour)
-{
-  int r = colour->Red();
-  int g = colour->Green();
-  int b = colour->Blue();
-  int a = colour->Alpha();
-  return ((r << 24) | (g << 16) | (b << 8) | a);
-}
-
-/* basic pixel manipulation */
-EWXWEXPORT(void,wxcSetPixelRGBA)(wxUint8* buffer,int width,int x,int y,unsigned int rgba)
-{
-  unsigned int indexR = 4*(width*y + x);
-  buffer[indexR]   = rgba >> 24;
-  buffer[indexR+1] = rgba >> 16;
-  buffer[indexR+2] = rgba >>  8;
-  buffer[indexR+3] = rgba;
-}
-
-EWXWEXPORT(int,wxcGetPixelRGBA)(wxUint8* buffer,int width,int x,int y)
-{
-  unsigned int indexR = 4*(width*y + x);
-  int r,g,b,a;
-  r = buffer[indexR];
-  g = buffer[indexR+1];
-  b = buffer[indexR+2];
-  a = buffer[indexR+3];
-  return ((r << 24) | (g << 16) | (b << 8) | a);
-}
-
-EWXWEXPORT(void,wxcSetPixelRowRGBA)(wxUint8* buffer,int width,int x,int y,unsigned int rgba0,unsigned int rgba1,unsigned int count)
-{
-  int r0  = ((rgba0 >> 24) && 0xFF);
-  int g0  = ((rgba0 >> 16) && 0xFF);
-  int b0  = ((rgba0 >>  8) && 0xFF);
-  int a0  = (rgba0 && 0xFF);
-  unsigned int start = 4*(width*y+x);
-  unsigned int i;
-
-  if (rgba0 == rgba1) {
-    /* same color */
-    for( i=0; i < count*4; i +=4) {
-      buffer[start+i]   = r0;
-      buffer[start+i+1] = g0;
-      buffer[start+i+2] = b0;
-      buffer[start+i+3] = a0;
-    }
-  }
-  else {
-    /* do linear interpolation of the color */
-    int r1  = ((rgba1 >> 24) && 0xFF);
-    int g1  = ((rgba1 >> 16) && 0xFF);
-    int b1  = ((rgba1 >>  8) && 0xFF);
-    int a1  = (rgba1 && 0xFF);
-
-    int rd  = ((r1 - r0) << 24) / (count-1);
-    int gd  = ((g1 - g0) << 24) / (count-1);
-    int bd  = ((b1 - b0) << 24) / (count-1);
-    int ad  = ((a1 - a0) << 24) / (count-1);
-
-    int r   = r0 << 24;
-    int g   = g0 << 24;
-    int b   = b0 << 24;
-    int a   = b0 << 24;
-
-    for( i = 0; i < count*4; i += 4 ) {
-      buffer[start+i]   = (r >> 24);
-      buffer[start+i+1] = (g >> 24);
-      buffer[start+i+2] = (b >> 24);
-      buffer[start+i+3] = (a >> 24);
-      r += rd;
-      g += gd;
-      b += bd;
-      a += ad;
-    }
-  }
-}
-
-EWXWEXPORT(void,wxcInitPixelsRGBA)(wxUint8* buffer,int width,int height,int rgba)
-{
-  unsigned int count        = width*height*4;
-  wxUint8 r  = ((rgba >> 24) && 0xFF);
-  wxUint8 g  = ((rgba >> 16) && 0xFF);
-  wxUint8 b  = ((rgba >>  8) && 0xFF);
-  wxUint8 a  = rgba && 0xFF;
-  unsigned int i;
-
-  if (r==g && g==b && b==a) {
-    for( i=0; i < count; i++ ) {
-      buffer[i] = r;
-    }
-  }
-  else {
-    for( i=0; i < count; i += 4) {
-      buffer[i]   = r;
-      buffer[i+1] = g;
-      buffer[i+2] = b;
-      buffer[i+3] = a;
-    }
-  }
-}
-
-}
+#include <memory.h>
+#include <string.h>
+
+#include "wrapper.h"
+
+extern "C"
+{
+
+/* bitmap/image helpers */
+EWXWEXPORT(wxBitmap*,wxBitmap_CreateFromImage)(wxImage* image,int depth)
+{
+  return new wxBitmap(*image,depth);
+}
+
+
+EWXWEXPORT(wxImage*,wxImage_CreateFromDataEx)(int width,int height,wxUint8* data,bool isStaticData)
+{
+  return new wxImage(width, height, data, isStaticData);
+}
+
+
+EWXWEXPORT(void,wxImage_Delete)(wxImage* image)
+{
+  delete image;
+}
+
+
+/* colours */
+EWXWEXPORT(wxColour*,wxColour_CreateFromInt)(int rgb)
+{
+  return new wxColour((rgb >> 16) & 0xFF, (rgb >> 8) & 0xFF, rgb & 0xFF);
+}
+
+EWXWEXPORT(int,wxColour_GetInt)(wxColour* colour)
+{
+  int r = colour->Red();
+  int g = colour->Green();
+  int b = colour->Blue();
+  return ((r << 16) | (g << 8) | b);
+}
+
+/* basic pixel manipulation */
+EWXWEXPORT(void,wxcSetPixelRGB)(wxUint8* buffer,int width,int x,int y,int rgb)
+{
+  int indexR = 3*(width*y + x);
+  buffer[indexR]   = rgb >> 16;
+  buffer[indexR+1] = rgb >>  8;
+  buffer[indexR+2] = rgb;
+}
+
+EWXWEXPORT(int,wxcGetPixelRGB)(wxUint8* buffer,int width,int x,int y)
+{
+  int indexR = 3*(width*y + x);
+  int r,g,b;
+  r = buffer[indexR];
+  g = buffer[indexR+1];
+  b = buffer[indexR+2];
+  return ((r << 16) | (g << 8) | b);
+}
+
+EWXWEXPORT(void,wxcSetPixelRowRGB)(wxUint8* buffer,int width,int x,int y,int rgb0,int rgb1,int count)
+{
+  int r0  = ((rgb0 >> 16) & 0xFF);
+  int g0  = ((rgb0 >>  8) & 0xFF);
+  int b0  = (rgb0 & 0xFF);
+  int start = 3*(width*y+x);
+  int i;
+
+  if (rgb0 == rgb1) {
+    /* same color */
+    for( i=0; i < count*3; i +=3) {
+      buffer[start+i]   = r0;
+      buffer[start+i+1] = g0;
+      buffer[start+i+2] = b0;
+    }
+  }
+  else {
+    /* do linear interpolation of the color */
+    int r1  = ((rgb1 >> 16) & 0xFF);
+    int g1  = ((rgb1 >>  8) & 0xFF);
+    int b1  = (rgb1 & 0xFF);
+
+    int rd  = ((r1 - r0) << 16) / (count-1);
+    int gd  = ((g1 - g0) << 16) / (count-1);
+    int bd  = ((b1 - b0) << 16) / (count-1);
+
+    int r   = r0 << 16;
+    int g   = g0 << 16;
+    int b   = b0 << 16;
+
+    for( i = 0; i < count*3; i += 3 ) {
+      buffer[start+i]   = (r >> 16);
+      buffer[start+i+1] = (g >> 16);
+      buffer[start+i+2] = (b >> 16);
+      r += rd;
+      g += gd;
+      b += bd;
+    }
+  }
+}
+
+EWXWEXPORT(void,wxcInitPixelsRGB)(wxUint8* buffer,int width,int height,int rgb)
+{
+  int count        = width*height*3;
+  wxUint8 r  = ((rgb >> 16) & 0xFF);
+  wxUint8 g  = ((rgb >>  8) & 0xFF);
+  wxUint8 b  = rgb & 0xFF;
+  int i;
+
+  if (r==g && g==b) {
+    for( i=0; i < count; i++ ) {
+      buffer[i] = r;
+    }
+  }
+  else {
+    for( i=0; i < count; i += 3) {
+      buffer[i]   = r;
+      buffer[i+1] = g;
+      buffer[i+2] = b;
+    }
+  }
+}
+
+EWXWEXPORT(wxColour*,wxColour_CreateFromUnsignedInt)(unsigned int rgba)
+{
+  return new wxColour((rgba >> 24) & 0xFF, (rgba >> 16) & 0xFF, (rgba >> 8) & 0xFF, rgba & 0xFF);
+}
+
+EWXWEXPORT(unsigned int,wxColour_GetUnsignedInt)(wxColour* colour)
+{
+  int r = colour->Red();
+  int g = colour->Green();
+  int b = colour->Blue();
+  int a = colour->Alpha();
+  return ((r << 24) | (g << 16) | (b << 8) | a);
+}
+
+/* basic pixel manipulation */
+EWXWEXPORT(void,wxcSetPixelRGBA)(wxUint8* buffer,int width,int x,int y,unsigned int rgba)
+{
+  unsigned int indexR = 4*(width*y + x);
+  buffer[indexR]   = rgba >> 24;
+  buffer[indexR+1] = rgba >> 16;
+  buffer[indexR+2] = rgba >>  8;
+  buffer[indexR+3] = rgba;
+}
+
+EWXWEXPORT(int,wxcGetPixelRGBA)(wxUint8* buffer,int width,int x,int y)
+{
+  unsigned int indexR = 4*(width*y + x);
+  int r,g,b,a;
+  r = buffer[indexR];
+  g = buffer[indexR+1];
+  b = buffer[indexR+2];
+  a = buffer[indexR+3];
+  return ((r << 24) | (g << 16) | (b << 8) | a);
+}
+
+EWXWEXPORT(void,wxcSetPixelRowRGBA)(wxUint8* buffer,int width,int x,int y,unsigned int rgba0,unsigned int rgba1,unsigned int count)
+{
+  int r0  = ((rgba0 >> 24) & 0xFF);
+  int g0  = ((rgba0 >> 16) & 0xFF);
+  int b0  = ((rgba0 >>  8) & 0xFF);
+  int a0  = (rgba0 & 0xFF);
+  unsigned int start = 4*(width*y+x);
+  unsigned int i;
+
+  if (rgba0 == rgba1) {
+    /* same color */
+    for( i=0; i < count*4; i +=4) {
+      buffer[start+i]   = r0;
+      buffer[start+i+1] = g0;
+      buffer[start+i+2] = b0;
+      buffer[start+i+3] = a0;
+    }
+  }
+  else {
+    /* do linear interpolation of the color */
+    int r1  = ((rgba1 >> 24) & 0xFF);
+    int g1  = ((rgba1 >> 16) & 0xFF);
+    int b1  = ((rgba1 >>  8) & 0xFF);
+    int a1  = (rgba1 & 0xFF);
+
+    int rd  = ((r1 - r0) << 24) / (count-1);
+    int gd  = ((g1 - g0) << 24) / (count-1);
+    int bd  = ((b1 - b0) << 24) / (count-1);
+    int ad  = ((a1 - a0) << 24) / (count-1);
+
+    int r   = r0 << 24;
+    int g   = g0 << 24;
+    int b   = b0 << 24;
+    int a   = b0 << 24;
+
+    for( i = 0; i < count*4; i += 4 ) {
+      buffer[start+i]   = (r >> 24);
+      buffer[start+i+1] = (g >> 24);
+      buffer[start+i+2] = (b >> 24);
+      buffer[start+i+3] = (a >> 24);
+      r += rd;
+      g += gd;
+      b += bd;
+      a += ad;
+    }
+  }
+}
+
+EWXWEXPORT(void,wxcInitPixelsRGBA)(wxUint8* buffer,int width,int height,int rgba)
+{
+  unsigned int count        = width*height*4;
+  wxUint8 r  = ((rgba >> 24) & 0xFF);
+  wxUint8 g  = ((rgba >> 16) & 0xFF);
+  wxUint8 b  = ((rgba >>  8) & 0xFF);
+  wxUint8 a  = rgba & 0xFF;
+  unsigned int i;
+
+  if (r==g && g==b && b==a) {
+    for( i=0; i < count; i++ ) {
+      buffer[i] = r;
+    }
+  }
+  else {
+    for( i=0; i < count; i += 4) {
+      buffer[i]   = r;
+      buffer[i+1] = g;
+      buffer[i+2] = b;
+      buffer[i+3] = a;
+    }
+  }
+}
+
+}
diff --git a/src/cpp/managed.cpp b/src/cpp/managed.cpp
--- a/src/cpp/managed.cpp
+++ b/src/cpp/managed.cpp
@@ -1,543 +1,543 @@
-#include "wrapper.h"
-
-/* safety */
-class wxManagedPtr;
-#include "wxc_types.h"
-#include "managed.h"
-
-
-/*-----------------------------------------------------------------------------
-   Managed pointers are pointed to by ForeignPtr's in Haskell.
-   They are basically indirections with a finalization
-   function.
------------------------------------------------------------------------------*/
-typedef void (_cdecl *Finalizer)(void* ptr);
-
-class wxManagedPtr 
-{
-private:
-  void*     ptr;
-  Finalizer finalizer;
-
-public:
-  wxManagedPtr( void* p, Finalizer f ) 
-  {
-    ptr       = p;
-    finalizer = f;
-  };
-
-  void* GetPtr() 
-  {
-    return ptr;
-  }
-
-  void NoFinalize()
-  {
-    finalizer = NULL;
-  }
-
-  void Finalize()
-  {
-    if (ptr!=NULL && finalizer!=NULL) {
-      finalizer(ptr);
-      finalizer = NULL;
-    }
-  }
-
-  ~wxManagedPtr() 
-  {
-    Finalize();
-  };
-};
-
-extern "C" {
-/*-----------------------------------------------------------------------------
-  Operations
------------------------------------------------------------------------------*/
-EWXWEXPORT(void*,wxManagedPtr_GetPtr)(wxManagedPtr* self)
-{
-  if (self!=NULL) return self->GetPtr();
-             else return NULL;
-}
-
-EWXWEXPORT(void,wxManagedPtr_NoFinalize)(wxManagedPtr* self)
-{
-  if (self!=NULL) {
-    self->NoFinalize();
-  }
-}
-
-EWXWEXPORT(void,wxManagedPtr_Finalize)(wxManagedPtr* self)
-{
-  if (self!=NULL) {
-    self->Finalize();
-  }
-}
-
-EWXWEXPORT(void,wxManagedPtr_Delete)(wxManagedPtr* self)
-{
-  if (self!=NULL) {
-    delete self;
-  }
-}
-
-static void _cdecl deleteManagedPtr(wxManagedPtr* mp)
-{
-  if (mp!=NULL) {
-    delete mp;
-  }
-}
-
-EWXWEXPORT(void*,wxManagedPtr_GetDeleteFunction)()
-{
-  return (void*)&deleteManagedPtr;  
-}
-
-
-
-/*-----------------------------------------------------------------------------
-  Finalize wxObject
------------------------------------------------------------------------------*/
-static void _cdecl deleteObject( wxObject* obj )
-{
-  if (obj!=NULL) {
-    delete obj;
-  }
-}
-
-EWXWEXPORT(void,wxObject_SafeDelete)(wxObject* obj)
-{
-  deleteObject(obj);
-}
-
-EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromObject)(wxObject* ptr)
-{
-  return new wxManagedPtr( ptr, (Finalizer)&deleteObject );
-}
-
-/*-----------------------------------------------------------------------------
-  Finalize DateTime
------------------------------------------------------------------------------*/
-static void _cdecl deleteDateTime( wxDateTime* obj )
-{
-  if (obj!=NULL) {
-    delete obj;
-  }
-}
-
-
-EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromDateTime)(wxDateTime* ptr)
-{
-  return new wxManagedPtr( ptr, (Finalizer)&deleteDateTime );
-}
-
-/*-----------------------------------------------------------------------------
-  Finalize wxGridCellCoordsArray
------------------------------------------------------------------------------*/
-static void _cdecl deleteGridCellCoordsArray( wxGridCellCoordsArray* obj )
-{
-  if (obj!=NULL) {
-    delete obj;
-  }
-}
-
-
-EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromGridCellCoordsArray)(wxGridCellCoordsArray* ptr)
-{
-  return new wxManagedPtr( ptr, (Finalizer)&deleteGridCellCoordsArray );
-}
-
-
-/*-----------------------------------------------------------------------------
-  Finalize wxBitmap
------------------------------------------------------------------------------*/
-EWXWEXPORT(bool,wxBitmap_IsStatic)(wxBitmap* obj)
-{
-  static int calls=0; calls++;    /* prevent bug in VisualC 6.0 ? */
-  return (obj==&wxNullBitmap || obj==NULL);
-}
-
-static void _cdecl deleteBitmap( wxBitmap* obj )
-{
-  if (!wxBitmap_IsStatic(obj)) {
-    delete obj;
-  }
-}
-
-EWXWEXPORT(void,wxBitmap_SafeDelete)(wxBitmap* obj)
-{
-  deleteBitmap(obj);
-}
-
-EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromBitmap)(wxBitmap* ptr)
-{
-  return new wxManagedPtr( ptr, (Finalizer)&deleteBitmap );
-}
-
-
-/*-----------------------------------------------------------------------------
-  Finalize wxIcon
------------------------------------------------------------------------------*/
-EWXWEXPORT(bool,wxIcon_IsStatic)(wxIcon* obj)
-{
-  static int calls=0; calls++;    /* prevent bug in VisualC 6.0 ? */
-  return (obj==NULL || obj==&wxNullIcon);
-}
-
-static void _cdecl deleteIcon( wxIcon* obj )
-{
-  if (!wxIcon_IsStatic(obj)) {
-    delete obj;
-  }
-}
-
-EWXWEXPORT(void,wxIcon_SafeDelete)(wxIcon* obj)
-{
-  deleteIcon(obj);
-}
-
-EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromIcon)(wxIcon* ptr)
-{
-  return new wxManagedPtr( ptr, (Finalizer)&deleteIcon );
-}
-
-
-/*-----------------------------------------------------------------------------
-  Finalize wxBrush
------------------------------------------------------------------------------*/
-/* defined as macro to type without casts ... sigh */
-/* use indirection array to let wx properly initialize the object pointers */
-
-#define IsStatic(obj,statics) \
-  { \
-    int i; \
-    if (obj==NULL) return true; \
-    for( i = 0; statics[i] != NULL; i++ ) \
-    { \
-      if (*statics[i] == obj) return true; \
-    }  \
-    return false; \
-  }
-
-
-#if (wxVERSION_NUMBER < 2800)
-static wxBrush* wxNULL_BRUSH = &wxNullBrush;
-
-static wxBrush** staticsBrush[] =
-    {&wxNULL_BRUSH
-    ,&wxBLUE_BRUSH
-    ,&wxGREEN_BRUSH
-    ,&wxWHITE_BRUSH
-    ,&wxBLACK_BRUSH
-    ,&wxGREY_BRUSH
-    ,&wxMEDIUM_GREY_BRUSH
-    ,&wxLIGHT_GREY_BRUSH
-    ,&wxTRANSPARENT_BRUSH
-    ,&wxCYAN_BRUSH
-    ,&wxRED_BRUSH
-    ,NULL
-    };
-#else
-/* VS2005 doesn't allow taking the address of the returned value of 
-   a function call. The code below ensures that there's actually an
-   address assigned in each case.
-
-   Just to compilcate matters, all of the values are now const
-   pointers. This is correct, but implies lots of downstream changes
-   so (horrible hack) I get rid of the 'constness'...
- */
-static wxBrush* wxNULL_BRUSH         = const_cast<wxBrush*>(&wxNullBrush);
-static wxBrush* wxcBLUE_BRUSH        = const_cast<wxBrush*>(wxBLUE_BRUSH);
-static wxBrush* wxcGREEN_BRUSH       = const_cast<wxBrush*>(wxGREEN_BRUSH);
-static wxBrush* wxcWHITE_BRUSH       = const_cast<wxBrush*>(wxWHITE_BRUSH);
-static wxBrush* wxcBLACK_BRUSH       = const_cast<wxBrush*>(wxBLACK_BRUSH);
-static wxBrush* wxcGREY_BRUSH        = const_cast<wxBrush*>(wxGREY_BRUSH);
-static wxBrush* wxcMEDIUM_GREY_BRUSH = const_cast<wxBrush*>(wxMEDIUM_GREY_BRUSH);
-static wxBrush* wxcLIGHT_GREY_BRUSH  = const_cast<wxBrush*>(wxLIGHT_GREY_BRUSH);
-static wxBrush* wxcTRANSPARENT_BRUSH = const_cast<wxBrush*>(wxTRANSPARENT_BRUSH);
-static wxBrush* wxcCYAN_BRUSH        = const_cast<wxBrush*>(wxCYAN_BRUSH);
-static wxBrush* wxcRED_BRUSH         = const_cast<wxBrush*>(wxRED_BRUSH);
-
-static wxBrush** staticsBrush[] =
-    {&wxNULL_BRUSH
-    ,&wxcBLUE_BRUSH
-    ,&wxcGREEN_BRUSH
-    ,&wxcWHITE_BRUSH
-    ,&wxcBLACK_BRUSH
-    ,&wxcGREY_BRUSH
-    ,&wxcMEDIUM_GREY_BRUSH
-    ,&wxcLIGHT_GREY_BRUSH
-    ,&wxcTRANSPARENT_BRUSH
-    ,&wxcCYAN_BRUSH
-    ,&wxcRED_BRUSH
-    ,NULL
-    };
-
-#endif
-
-EWXWEXPORT(bool,wxBrush_IsStatic)(wxBrush* obj)
-{
-  IsStatic(obj,staticsBrush);  
-}
-
-static void _cdecl deleteBrush( wxBrush* obj )
-{
-  if (!wxBrush_IsStatic(obj)) {
-    delete obj;
-  }
-}
-
-EWXWEXPORT(void,wxBrush_SafeDelete)(wxBrush* obj)
-{
-  deleteBrush(obj);
-}
-
-EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromBrush)(wxBrush* ptr)
-{
-  return new wxManagedPtr( ptr, (Finalizer)&deleteBrush );
-}
-
-/*-----------------------------------------------------------------------------
-  Finalize wxColour
------------------------------------------------------------------------------*/
-static wxColour* wxNULL_COLOUR = &wxNullColour;
-
-#if (wxVERSION_NUMBER < 2800)
-static wxColour** staticsColour[] = 
-    {&wxNULL_COLOUR
-    ,&wxBLACK
-    ,&wxWHITE
-    ,&wxRED
-    ,&wxBLUE
-    ,&wxGREEN
-    ,&wxCYAN
-    ,&wxLIGHT_GREY
-    ,NULL
-    };
-#else
-static wxColour* wxcBLACK      = const_cast<wxColour *>(wxBLACK);
-static wxColour* wxcWHITE      = const_cast<wxColour *>(wxWHITE);
-static wxColour* wxcRED        = const_cast<wxColour *>(wxRED);
-static wxColour* wxcBLUE       = const_cast<wxColour *>(wxBLUE);
-static wxColour* wxcGREEN      = const_cast<wxColour *>(wxGREEN);
-static wxColour* wxcCYAN       = const_cast<wxColour *>(wxCYAN);
-static wxColour* wxcLIGHT_GREY = const_cast<wxColour *>(wxLIGHT_GREY);
-
-static wxColour** staticsColour[] = 
-    {&wxNULL_COLOUR
-    ,&wxcBLACK
-    ,&wxcWHITE
-    ,&wxcRED
-    ,&wxcBLUE
-    ,&wxcGREEN
-    ,&wxcCYAN
-    ,&wxcLIGHT_GREY
-    ,NULL
-    };
-#endif
-
-EWXWEXPORT(bool,wxColour_IsStatic)(wxColour* obj)
-{
-  IsStatic(obj,staticsColour);  
-}
-
-static void _cdecl deleteColour( wxColour* obj )
-{
-  if (!wxColour_IsStatic(obj)) {
-    delete obj;
-  }
-}
-
-EWXWEXPORT(void,wxColour_SafeDelete)(wxColour* obj)
-{
-  deleteColour(obj);
-}
-
-EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromColour)(wxColour* ptr)
-{
-  return new wxManagedPtr( ptr, (Finalizer)&deleteColour );
-}
-
-
-/*-----------------------------------------------------------------------------
-  Finalize wxCursor
------------------------------------------------------------------------------*/
-wxCursor*** staticsCursor(void)
-{
-#if (wxVERSION_NUMBER < 2800)
-static wxCursor* wxNULL_CURSOR = &wxNullCursor;
-
-static wxCursor** staticsCursor[] = 
-    {&wxNULL_CURSOR
-    ,&wxSTANDARD_CURSOR
-    ,&wxHOURGLASS_CURSOR
-    ,&wxCROSS_CURSOR
-    ,NULL
-    };
-#else
-static wxCursor* wxNULL_CURSOR       = const_cast<wxCursor *>(&wxNullCursor);
-static wxCursor* wxcSTANDARD_CURSOR  = const_cast<wxCursor *>(wxSTANDARD_CURSOR);
-static wxCursor* wxcHOURGLASS_CURSOR = const_cast<wxCursor *>(wxHOURGLASS_CURSOR);
-//static wxCursor* wxcCROSS_CURSOR     = const_cast<wxCursor *>(wxCROSS_CURSOR);
-
-static wxCursor** staticsCursor[] = 
-    {&wxNULL_CURSOR
-    ,&wxcSTANDARD_CURSOR
-    ,&wxcHOURGLASS_CURSOR
-     //,&wxcCROSS_CURSOR
-    ,NULL
-    };
-#endif
-  return staticsCursor;
-}
-
-EWXWEXPORT(bool,wxCursor_IsStatic)(wxCursor* obj)
-{
-  IsStatic(obj,staticsCursor());  
-}
-
-static void _cdecl deleteCursor( wxCursor* obj )
-{
-  if (!wxCursor_IsStatic(obj)) {
-    delete obj;
-  }
-}
-
-EWXWEXPORT(void,wxCursor_SafeDelete)(wxCursor* obj)
-{
-  deleteCursor(obj);
-}
-
-EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromCursor)(wxCursor* ptr)
-{
-  return new wxManagedPtr( ptr, (Finalizer)&deleteCursor );
-}
-
-
-/*-----------------------------------------------------------------------------
-  Finalize wxFont
------------------------------------------------------------------------------*/
-
-#if (wxVERSION_NUMBER < 2800)
-static wxFont* wxNULL_FONT  = &wxNullFont;
-
-static wxFont** staticsFont[] = 
-    {&wxNULL_FONT
-    ,&wxNORMAL_FONT
-    ,&wxSMALL_FONT
-    ,&wxITALIC_FONT
-    ,&wxSWISS_FONT
-    ,NULL
-    };
-#else
-static wxFont* wxNULL_FONT    = const_cast<wxFont *>(&wxNullFont);
-// static wxFont* wxcNORMAL_FONT = const_cast<wxFont *>(wxNORMAL_FONT);
-//static wxFont* wxcSMALL_FONT  = const_cast<wxFont *>(wxSMALL_FONT);
-//static wxFont* wxcITALIC_FONT = const_cast<wxFont *>(wxITALIC_FONT);
-//static wxFont* wxcSWISS_FONT  = const_cast<wxFont *>(wxSWISS_FONT);
-
-static wxFont** staticsFont[] = 
-    {&wxNULL_FONT
-     //    ,&wxcNORMAL_FONT
-     //,&wxcSMALL_FONT
-     //,&wxcITALIC_FONT
-     //,&wxcSWISS_FONT
-    ,NULL
-    };
-#endif
-
-EWXWEXPORT(bool,wxFont_IsStatic)(wxFont* obj)
-{
-  IsStatic(obj,staticsFont);  
-}
-
-static void _cdecl deleteFont( wxFont* obj )
-{
-  if (!wxFont_IsStatic(obj)) {
-    delete obj;
-  }
-}
-
-EWXWEXPORT(void,wxFont_SafeDelete)(wxFont* obj)
-{
-  deleteFont(obj);
-}
-
-EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromFont)(wxFont* ptr)
-{
-  return new wxManagedPtr( ptr, (Finalizer)&deleteFont );
-}
-
-
-/*-----------------------------------------------------------------------------
-  Finalize wxPen
------------------------------------------------------------------------------*/
-static wxPen* wxNULL_PEN = &wxNullPen;
-
-#if (wxVERSION_NUMBER < 2800)
-static wxPen** staticsPen[] = 
-    {&wxNULL_PEN
-    ,&wxRED_PEN
-    ,&wxCYAN_PEN
-    ,&wxGREEN_PEN
-    ,&wxBLACK_PEN
-    ,&wxWHITE_PEN
-    ,&wxTRANSPARENT_PEN
-    ,&wxBLACK_DASHED_PEN
-    ,&wxGREY_PEN
-    ,&wxMEDIUM_GREY_PEN
-    ,&wxLIGHT_GREY_PEN
-    ,NULL
-    };
-#else
-static wxPen* wxcRED_PEN          = const_cast<wxPen *>(wxRED_PEN);
-static wxPen* wxcCYAN_PEN         = const_cast<wxPen *>(wxCYAN_PEN);
-static wxPen* wxcGREEN_PEN        = const_cast<wxPen *>(wxGREEN_PEN);
-static wxPen* wxcBLACK_PEN        = const_cast<wxPen *>(wxBLACK_PEN);
-static wxPen* wxcWHITE_PEN        = const_cast<wxPen *>(wxWHITE_PEN);
-static wxPen* wxcTRANSPARENT_PEN  = const_cast<wxPen *>(wxTRANSPARENT_PEN);
-static wxPen* wxcBLACK_DASHED_PEN = const_cast<wxPen *>(wxBLACK_DASHED_PEN);
-static wxPen* wxcGREY_PEN         = const_cast<wxPen *>(wxGREY_PEN);
-static wxPen* wxcMEDIUM_GREY_PEN  = const_cast<wxPen *>(wxMEDIUM_GREY_PEN);
-static wxPen* wxcLIGHT_GREY_PEN   = const_cast<wxPen *>(wxLIGHT_GREY_PEN);
-
-static wxPen** staticsPen[] = 
-    {&wxNULL_PEN
-    ,&wxcRED_PEN
-    ,&wxcCYAN_PEN
-    ,&wxcGREEN_PEN
-    ,&wxcBLACK_PEN
-    ,&wxcWHITE_PEN
-    ,&wxcTRANSPARENT_PEN
-    ,&wxcBLACK_DASHED_PEN
-    ,&wxcGREY_PEN
-    ,&wxcMEDIUM_GREY_PEN
-    ,&wxcLIGHT_GREY_PEN
-    ,NULL
-    };
-#endif
-
-EWXWEXPORT(bool,wxPen_IsStatic)(wxPen* obj)
-{
-  IsStatic(obj,staticsPen);  
-}
-
-static void _cdecl deletePen( wxPen* obj )
-{
-  if (!wxPen_IsStatic(obj)) {
-    delete obj;
-  }
-}
-
-EWXWEXPORT(void,wxPen_SafeDelete)(wxPen* obj)
-{
-  deletePen(obj);
-}
-
-EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromPen)(wxPen* ptr)
-{
-  return new wxManagedPtr( ptr, (Finalizer)&deletePen );
-}
-
-/* extern "C" */
-}
+#include "wrapper.h"
+
+/* safety */
+class wxManagedPtr;
+#include "wxc_types.h"
+#include "managed.h"
+
+
+/*-----------------------------------------------------------------------------
+   Managed pointers are pointed to by ForeignPtr's in Haskell.
+   They are basically indirections with a finalization
+   function.
+-----------------------------------------------------------------------------*/
+typedef void (_cdecl *Finalizer)(void* ptr);
+
+class wxManagedPtr 
+{
+private:
+  void*     ptr;
+  Finalizer finalizer;
+
+public:
+  wxManagedPtr( void* p, Finalizer f ) 
+  {
+    ptr       = p;
+    finalizer = f;
+  };
+
+  void* GetPtr() 
+  {
+    return ptr;
+  }
+
+  void NoFinalize()
+  {
+    finalizer = NULL;
+  }
+
+  void Finalize()
+  {
+    if (ptr!=NULL && finalizer!=NULL) {
+      finalizer(ptr);
+      finalizer = NULL;
+    }
+  }
+
+  ~wxManagedPtr() 
+  {
+    Finalize();
+  };
+};
+
+extern "C" {
+/*-----------------------------------------------------------------------------
+  Operations
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(void*,wxManagedPtr_GetPtr)(wxManagedPtr* self)
+{
+  if (self!=NULL) return self->GetPtr();
+             else return NULL;
+}
+
+EWXWEXPORT(void,wxManagedPtr_NoFinalize)(wxManagedPtr* self)
+{
+  if (self!=NULL) {
+    self->NoFinalize();
+  }
+}
+
+EWXWEXPORT(void,wxManagedPtr_Finalize)(wxManagedPtr* self)
+{
+  if (self!=NULL) {
+    self->Finalize();
+  }
+}
+
+EWXWEXPORT(void,wxManagedPtr_Delete)(wxManagedPtr* self)
+{
+  if (self!=NULL) {
+    delete self;
+  }
+}
+
+static void _cdecl deleteManagedPtr(wxManagedPtr* mp)
+{
+  if (mp!=NULL) {
+    delete mp;
+  }
+}
+
+EWXWEXPORT(void*,wxManagedPtr_GetDeleteFunction)()
+{
+  return (void*)&deleteManagedPtr;  
+}
+
+
+
+/*-----------------------------------------------------------------------------
+  Finalize wxObject
+-----------------------------------------------------------------------------*/
+static void _cdecl deleteObject( wxObject* obj )
+{
+  if (obj!=NULL) {
+    delete obj;
+  }
+}
+
+EWXWEXPORT(void,wxObject_SafeDelete)(wxObject* obj)
+{
+  deleteObject(obj);
+}
+
+EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromObject)(wxObject* ptr)
+{
+  return new wxManagedPtr( ptr, (Finalizer)&deleteObject );
+}
+
+/*-----------------------------------------------------------------------------
+  Finalize DateTime
+-----------------------------------------------------------------------------*/
+static void _cdecl deleteDateTime( wxDateTime* obj )
+{
+  if (obj!=NULL) {
+    delete obj;
+  }
+}
+
+
+EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromDateTime)(wxDateTime* ptr)
+{
+  return new wxManagedPtr( ptr, (Finalizer)&deleteDateTime );
+}
+
+/*-----------------------------------------------------------------------------
+  Finalize wxGridCellCoordsArray
+-----------------------------------------------------------------------------*/
+static void _cdecl deleteGridCellCoordsArray( wxGridCellCoordsArray* obj )
+{
+  if (obj!=NULL) {
+    delete obj;
+  }
+}
+
+
+EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromGridCellCoordsArray)(wxGridCellCoordsArray* ptr)
+{
+  return new wxManagedPtr( ptr, (Finalizer)&deleteGridCellCoordsArray );
+}
+
+
+/*-----------------------------------------------------------------------------
+  Finalize wxBitmap
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(bool,wxBitmap_IsStatic)(wxBitmap* obj)
+{
+  static int calls=0; calls++;    /* prevent bug in VisualC 6.0 ? */
+  return (obj==&wxNullBitmap || obj==NULL);
+}
+
+static void _cdecl deleteBitmap( wxBitmap* obj )
+{
+  if (!wxBitmap_IsStatic(obj)) {
+    delete obj;
+  }
+}
+
+EWXWEXPORT(void,wxBitmap_SafeDelete)(wxBitmap* obj)
+{
+  deleteBitmap(obj);
+}
+
+EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromBitmap)(wxBitmap* ptr)
+{
+  return new wxManagedPtr( ptr, (Finalizer)&deleteBitmap );
+}
+
+
+/*-----------------------------------------------------------------------------
+  Finalize wxIcon
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(bool,wxIcon_IsStatic)(wxIcon* obj)
+{
+  static int calls=0; calls++;    /* prevent bug in VisualC 6.0 ? */
+  return (obj==NULL || obj==&wxNullIcon);
+}
+
+static void _cdecl deleteIcon( wxIcon* obj )
+{
+  if (!wxIcon_IsStatic(obj)) {
+    delete obj;
+  }
+}
+
+EWXWEXPORT(void,wxIcon_SafeDelete)(wxIcon* obj)
+{
+  deleteIcon(obj);
+}
+
+EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromIcon)(wxIcon* ptr)
+{
+  return new wxManagedPtr( ptr, (Finalizer)&deleteIcon );
+}
+
+
+/*-----------------------------------------------------------------------------
+  Finalize wxBrush
+-----------------------------------------------------------------------------*/
+/* defined as macro to type without casts ... sigh */
+/* use indirection array to let wx properly initialize the object pointers */
+
+#define IsStatic(obj,statics) \
+  { \
+    int i; \
+    if (obj==NULL) return true; \
+    for( i = 0; statics[i] != NULL; i++ ) \
+    { \
+      if (*statics[i] == obj) return true; \
+    }  \
+    return false; \
+  }
+
+
+#if (wxVERSION_NUMBER < 2800)
+static wxBrush* wxNULL_BRUSH = &wxNullBrush;
+
+static wxBrush** staticsBrush[] =
+    {&wxNULL_BRUSH
+    ,&wxBLUE_BRUSH
+    ,&wxGREEN_BRUSH
+    ,&wxWHITE_BRUSH
+    ,&wxBLACK_BRUSH
+    ,&wxGREY_BRUSH
+    ,&wxMEDIUM_GREY_BRUSH
+    ,&wxLIGHT_GREY_BRUSH
+    ,&wxTRANSPARENT_BRUSH
+    ,&wxCYAN_BRUSH
+    ,&wxRED_BRUSH
+    ,NULL
+    };
+#else
+/* VS2005 doesn't allow taking the address of the returned value of 
+   a function call. The code below ensures that there's actually an
+   address assigned in each case.
+
+   Just to compilcate matters, all of the values are now const
+   pointers. This is correct, but implies lots of downstream changes
+   so (horrible hack) I get rid of the 'constness'...
+ */
+static wxBrush* wxNULL_BRUSH         = const_cast<wxBrush*>(&wxNullBrush);
+static wxBrush* wxcBLUE_BRUSH        = const_cast<wxBrush*>(wxBLUE_BRUSH);
+static wxBrush* wxcGREEN_BRUSH       = const_cast<wxBrush*>(wxGREEN_BRUSH);
+static wxBrush* wxcWHITE_BRUSH       = const_cast<wxBrush*>(wxWHITE_BRUSH);
+static wxBrush* wxcBLACK_BRUSH       = const_cast<wxBrush*>(wxBLACK_BRUSH);
+static wxBrush* wxcGREY_BRUSH        = const_cast<wxBrush*>(wxGREY_BRUSH);
+static wxBrush* wxcMEDIUM_GREY_BRUSH = const_cast<wxBrush*>(wxMEDIUM_GREY_BRUSH);
+static wxBrush* wxcLIGHT_GREY_BRUSH  = const_cast<wxBrush*>(wxLIGHT_GREY_BRUSH);
+static wxBrush* wxcTRANSPARENT_BRUSH = const_cast<wxBrush*>(wxTRANSPARENT_BRUSH);
+static wxBrush* wxcCYAN_BRUSH        = const_cast<wxBrush*>(wxCYAN_BRUSH);
+static wxBrush* wxcRED_BRUSH         = const_cast<wxBrush*>(wxRED_BRUSH);
+
+static wxBrush** staticsBrush[] =
+    {&wxNULL_BRUSH
+    ,&wxcBLUE_BRUSH
+    ,&wxcGREEN_BRUSH
+    ,&wxcWHITE_BRUSH
+    ,&wxcBLACK_BRUSH
+    ,&wxcGREY_BRUSH
+    ,&wxcMEDIUM_GREY_BRUSH
+    ,&wxcLIGHT_GREY_BRUSH
+    ,&wxcTRANSPARENT_BRUSH
+    ,&wxcCYAN_BRUSH
+    ,&wxcRED_BRUSH
+    ,NULL
+    };
+
+#endif
+
+EWXWEXPORT(bool,wxBrush_IsStatic)(wxBrush* obj)
+{
+  IsStatic(obj,staticsBrush);  
+}
+
+static void _cdecl deleteBrush( wxBrush* obj )
+{
+  if (!wxBrush_IsStatic(obj)) {
+    delete obj;
+  }
+}
+
+EWXWEXPORT(void,wxBrush_SafeDelete)(wxBrush* obj)
+{
+  deleteBrush(obj);
+}
+
+EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromBrush)(wxBrush* ptr)
+{
+  return new wxManagedPtr( ptr, (Finalizer)&deleteBrush );
+}
+
+/*-----------------------------------------------------------------------------
+  Finalize wxColour
+-----------------------------------------------------------------------------*/
+static wxColour* wxNULL_COLOUR = &wxNullColour;
+
+#if (wxVERSION_NUMBER < 2800)
+static wxColour** staticsColour[] = 
+    {&wxNULL_COLOUR
+    ,&wxBLACK
+    ,&wxWHITE
+    ,&wxRED
+    ,&wxBLUE
+    ,&wxGREEN
+    ,&wxCYAN
+    ,&wxLIGHT_GREY
+    ,NULL
+    };
+#else
+static wxColour* wxcBLACK      = const_cast<wxColour *>(wxBLACK);
+static wxColour* wxcWHITE      = const_cast<wxColour *>(wxWHITE);
+static wxColour* wxcRED        = const_cast<wxColour *>(wxRED);
+static wxColour* wxcBLUE       = const_cast<wxColour *>(wxBLUE);
+static wxColour* wxcGREEN      = const_cast<wxColour *>(wxGREEN);
+static wxColour* wxcCYAN       = const_cast<wxColour *>(wxCYAN);
+static wxColour* wxcLIGHT_GREY = const_cast<wxColour *>(wxLIGHT_GREY);
+
+static wxColour** staticsColour[] = 
+    {&wxNULL_COLOUR
+    ,&wxcBLACK
+    ,&wxcWHITE
+    ,&wxcRED
+    ,&wxcBLUE
+    ,&wxcGREEN
+    ,&wxcCYAN
+    ,&wxcLIGHT_GREY
+    ,NULL
+    };
+#endif
+
+EWXWEXPORT(bool,wxColour_IsStatic)(wxColour* obj)
+{
+  IsStatic(obj,staticsColour);  
+}
+
+static void _cdecl deleteColour( wxColour* obj )
+{
+  if (!wxColour_IsStatic(obj)) {
+    delete obj;
+  }
+}
+
+EWXWEXPORT(void,wxColour_SafeDelete)(wxColour* obj)
+{
+  deleteColour(obj);
+}
+
+EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromColour)(wxColour* ptr)
+{
+  return new wxManagedPtr( ptr, (Finalizer)&deleteColour );
+}
+
+
+/*-----------------------------------------------------------------------------
+  Finalize wxCursor
+-----------------------------------------------------------------------------*/
+wxCursor*** staticsCursor(void)
+{
+#if (wxVERSION_NUMBER < 2800)
+static wxCursor* wxNULL_CURSOR = &wxNullCursor;
+
+static wxCursor** staticsCursor[] = 
+    {&wxNULL_CURSOR
+    ,&wxSTANDARD_CURSOR
+    ,&wxHOURGLASS_CURSOR
+    ,&wxCROSS_CURSOR
+    ,NULL
+    };
+#else
+static wxCursor* wxNULL_CURSOR       = const_cast<wxCursor *>(&wxNullCursor);
+static wxCursor* wxcSTANDARD_CURSOR  = const_cast<wxCursor *>(wxSTANDARD_CURSOR);
+static wxCursor* wxcHOURGLASS_CURSOR = const_cast<wxCursor *>(wxHOURGLASS_CURSOR);
+//static wxCursor* wxcCROSS_CURSOR     = const_cast<wxCursor *>(wxCROSS_CURSOR);
+
+static wxCursor** staticsCursor[] = 
+    {&wxNULL_CURSOR
+    ,&wxcSTANDARD_CURSOR
+    ,&wxcHOURGLASS_CURSOR
+     //,&wxcCROSS_CURSOR
+    ,NULL
+    };
+#endif
+  return staticsCursor;
+}
+
+EWXWEXPORT(bool,wxCursor_IsStatic)(wxCursor* obj)
+{
+  IsStatic(obj,staticsCursor());  
+}
+
+static void _cdecl deleteCursor( wxCursor* obj )
+{
+  if (!wxCursor_IsStatic(obj)) {
+    delete obj;
+  }
+}
+
+EWXWEXPORT(void,wxCursor_SafeDelete)(wxCursor* obj)
+{
+  deleteCursor(obj);
+}
+
+EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromCursor)(wxCursor* ptr)
+{
+  return new wxManagedPtr( ptr, (Finalizer)&deleteCursor );
+}
+
+
+/*-----------------------------------------------------------------------------
+  Finalize wxFont
+-----------------------------------------------------------------------------*/
+
+#if (wxVERSION_NUMBER < 2800)
+static wxFont* wxNULL_FONT  = &wxNullFont;
+
+static wxFont** staticsFont[] = 
+    {&wxNULL_FONT
+    ,&wxNORMAL_FONT
+    ,&wxSMALL_FONT
+    ,&wxITALIC_FONT
+    ,&wxSWISS_FONT
+    ,NULL
+    };
+#else
+static wxFont* wxNULL_FONT    = const_cast<wxFont *>(&wxNullFont);
+// static wxFont* wxcNORMAL_FONT = const_cast<wxFont *>(wxNORMAL_FONT);
+//static wxFont* wxcSMALL_FONT  = const_cast<wxFont *>(wxSMALL_FONT);
+//static wxFont* wxcITALIC_FONT = const_cast<wxFont *>(wxITALIC_FONT);
+//static wxFont* wxcSWISS_FONT  = const_cast<wxFont *>(wxSWISS_FONT);
+
+static wxFont** staticsFont[] = 
+    {&wxNULL_FONT
+     //    ,&wxcNORMAL_FONT
+     //,&wxcSMALL_FONT
+     //,&wxcITALIC_FONT
+     //,&wxcSWISS_FONT
+    ,NULL
+    };
+#endif
+
+EWXWEXPORT(bool,wxFont_IsStatic)(wxFont* obj)
+{
+  IsStatic(obj,staticsFont);  
+}
+
+static void _cdecl deleteFont( wxFont* obj )
+{
+  if (!wxFont_IsStatic(obj)) {
+    delete obj;
+  }
+}
+
+EWXWEXPORT(void,wxFont_SafeDelete)(wxFont* obj)
+{
+  deleteFont(obj);
+}
+
+EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromFont)(wxFont* ptr)
+{
+  return new wxManagedPtr( ptr, (Finalizer)&deleteFont );
+}
+
+
+/*-----------------------------------------------------------------------------
+  Finalize wxPen
+-----------------------------------------------------------------------------*/
+static wxPen* wxNULL_PEN = &wxNullPen;
+
+#if (wxVERSION_NUMBER < 2800)
+static wxPen** staticsPen[] = 
+    {&wxNULL_PEN
+    ,&wxRED_PEN
+    ,&wxCYAN_PEN
+    ,&wxGREEN_PEN
+    ,&wxBLACK_PEN
+    ,&wxWHITE_PEN
+    ,&wxTRANSPARENT_PEN
+    ,&wxBLACK_DASHED_PEN
+    ,&wxGREY_PEN
+    ,&wxMEDIUM_GREY_PEN
+    ,&wxLIGHT_GREY_PEN
+    ,NULL
+    };
+#else
+static wxPen* wxcRED_PEN          = const_cast<wxPen *>(wxRED_PEN);
+static wxPen* wxcCYAN_PEN         = const_cast<wxPen *>(wxCYAN_PEN);
+static wxPen* wxcGREEN_PEN        = const_cast<wxPen *>(wxGREEN_PEN);
+static wxPen* wxcBLACK_PEN        = const_cast<wxPen *>(wxBLACK_PEN);
+static wxPen* wxcWHITE_PEN        = const_cast<wxPen *>(wxWHITE_PEN);
+static wxPen* wxcTRANSPARENT_PEN  = const_cast<wxPen *>(wxTRANSPARENT_PEN);
+static wxPen* wxcBLACK_DASHED_PEN = const_cast<wxPen *>(wxBLACK_DASHED_PEN);
+static wxPen* wxcGREY_PEN         = const_cast<wxPen *>(wxGREY_PEN);
+static wxPen* wxcMEDIUM_GREY_PEN  = const_cast<wxPen *>(wxMEDIUM_GREY_PEN);
+static wxPen* wxcLIGHT_GREY_PEN   = const_cast<wxPen *>(wxLIGHT_GREY_PEN);
+
+static wxPen** staticsPen[] = 
+    {&wxNULL_PEN
+    ,&wxcRED_PEN
+    ,&wxcCYAN_PEN
+    ,&wxcGREEN_PEN
+    ,&wxcBLACK_PEN
+    ,&wxcWHITE_PEN
+    ,&wxcTRANSPARENT_PEN
+    ,&wxcBLACK_DASHED_PEN
+    ,&wxcGREY_PEN
+    ,&wxcMEDIUM_GREY_PEN
+    ,&wxcLIGHT_GREY_PEN
+    ,NULL
+    };
+#endif
+
+EWXWEXPORT(bool,wxPen_IsStatic)(wxPen* obj)
+{
+  IsStatic(obj,staticsPen);  
+}
+
+static void _cdecl deletePen( wxPen* obj )
+{
+  if (!wxPen_IsStatic(obj)) {
+    delete obj;
+  }
+}
+
+EWXWEXPORT(void,wxPen_SafeDelete)(wxPen* obj)
+{
+  deletePen(obj);
+}
+
+EWXWEXPORT(wxManagedPtr*,wxManagedPtr_CreateFromPen)(wxPen* ptr)
+{
+  return new wxManagedPtr( ptr, (Finalizer)&deletePen );
+}
+
+/* extern "C" */
+}
diff --git a/src/cpp/mediactrl.cpp b/src/cpp/mediactrl.cpp
--- a/src/cpp/mediactrl.cpp
+++ b/src/cpp/mediactrl.cpp
@@ -1,229 +1,229 @@
-/*==============================================================================
- * mediactrl.cpp
- *
- * C wrapper for wxMediaCtrl
- *
- * (C) 2002-2011 wxEiffel and wxHaskell contributors. See contributors.txt
- * 
- * Licensed under the wxWidgets library license. see LICENSE.
- * 
- *==============================================================================*/
-
-#include "wrapper.h"
-#ifdef wxUSE_MEDIACTRL
-#include "wx/mediactrl.h"
-#endif
-
-/*-----------------------------------------------------------------------------
-  We want to include the function signatures always -- even on 
-  systems that don't support MediaCtrl. This means that every function body is
-  surrounded by #ifdef wxUSE_MEDIACTRL directives :-(
------------------------------------------------------------------------------*/
-#if defined(wxUSE_MEDIACTRL) && (wxUSE_MEDIACTRL==0)
-# undef wxUSE_MEDIACTRL
-#endif
-
-#if defined(wxcREFUSE_MEDIACTRL)
-# undef wxUSE_MEDIACTRL
-#endif
-
-#ifndef wxUSE_MEDIACTRL
-# define wxMediaCtrl      void
-#endif
-
-#if (wxVERSION_NUMBER <= 2600)
-# define wxFileOffset      long
-#endif
-
-extern "C" {
-
-////////////////////////////////////////////////////////////////////////////////
-// Event Handlers
-////////////////////////////////////////////////////////////////////////////////
-
-#ifdef wxUSE_MEDIACTRL
-#pragma message "wxWidgets mediacontrol event wrappers generated"
-MAKE_EVENT_WRAPPER(EVT_MEDIA_FINISHED)
-MAKE_EVENT_WRAPPER(EVT_MEDIA_STOP)
-MAKE_EVENT_WRAPPER(EVT_MEDIA_LOADED)
-MAKE_EVENT_WRAPPER(EVT_MEDIA_STATECHANGED)
-MAKE_EVENT_WRAPPER(EVT_MEDIA_PLAY)
-MAKE_EVENT_WRAPPER(EVT_MEDIA_PAUSE)
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// Wrappers
-////////////////////////////////////////////////////////////////////////////////
-
-/*-----------------------------------------------------------------------------
-  MediaCtrl
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxMediaCtrl*,wxMediaCtrl_Create)( void* parent, int id,
-                                             wxString* fileName, int x, int y, int w, int h,
-                                             long style, wxString* szBackend, wxString* name)
-{
-#ifdef wxUSE_MEDIACTRL
-  return new wxMediaCtrl((wxWindow*)parent,(wxWindowID)id,
-    (fileName ? *fileName : wxString(wxT(""))),
-    wxPoint(x,y),wxSize(w,h),style,
-    (szBackend ? *szBackend : wxString(wxT(""))), wxDefaultValidator,
-    (name ? *name : wxString(wxT("MediaCtrl"))));
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxMediaCtrl_Delete)(wxMediaCtrl* self)  
-{
-#ifdef wxUSE_MEDIACTRL
-  if (self) delete self;
-#endif
-}
-
-EWXWEXPORT(wxSize*,wxMediaCtrl_GetBestSize)(wxMediaCtrl* self)
-{
-#ifdef wxUSE_MEDIACTRL
-  wxSize* sz = new wxSize();
-  *sz = self->GetBestSize();
-  return sz;
-#endif
-}
-
-EWXWEXPORT(double,wxMediaCtrl_GetPlaybackRate)(wxMediaCtrl* self)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->GetPlaybackRate();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(double,wxMediaCtrl_GetVolume)(wxMediaCtrl* self)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->GetVolume();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxMediaCtrl_GetState)(wxMediaCtrl* self)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->GetState();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(wxFileOffset,wxMediaCtrl_Length)(wxMediaCtrl* self)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->Length();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(bool,wxMediaCtrl_Load)(wxMediaCtrl* self, const wxString* fileName)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->Load(*fileName);
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxMediaCtrl_LoadURI)(wxMediaCtrl* self, const wxString* uri)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->LoadURI(*uri);
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxMediaCtrl_LoadURIWithProxy)(wxMediaCtrl* self, const wxString* uri, const wxString* proxy)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->LoadURIWithProxy(*uri, *proxy);
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxMediaCtrl_Pause)(wxMediaCtrl* self)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->Pause();
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxMediaCtrl_Play)(wxMediaCtrl* self)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->Play();
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(wxFileOffset,wxMediaCtrl_Seek)(wxMediaCtrl* self, wxFileOffset offsetWhere, int mode)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->Seek(offsetWhere, static_cast<wxSeekMode>(mode));
-#else
-  return (wxFileOffset) 0;
-#endif
-}
-
-EWXWEXPORT(bool,wxMediaCtrl_SetPlaybackRate)(wxMediaCtrl* self, double dRate)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->SetPlaybackRate(dRate);
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxMediaCtrl_SetVolume)(wxMediaCtrl* self, double dVolume)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->SetVolume(dVolume);
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxMediaCtrl_ShowPlayerControls)(wxMediaCtrl* self, int flags)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->ShowPlayerControls(static_cast<wxMediaCtrlPlayerControls>(flags));
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxMediaCtrl_Stop)(wxMediaCtrl* self)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->Stop();
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(wxFileOffset, wxMediaCtrl_Tell) (wxMediaCtrl* self)
-{
-#ifdef wxUSE_MEDIACTRL
-  return self->Tell();
-#else
-  return 0;
-#endif
-}
-
-}
-
-
+/*==============================================================================
+ * mediactrl.cpp
+ *
+ * C wrapper for wxMediaCtrl
+ *
+ * (C) 2002-2011 wxEiffel and wxHaskell contributors. See contributors.txt
+ * 
+ * Licensed under the wxWidgets library license. see LICENSE.
+ * 
+ *==============================================================================*/
+
+#include "wrapper.h"
+#ifdef wxUSE_MEDIACTRL
+#include "wx/mediactrl.h"
+#endif
+
+/*-----------------------------------------------------------------------------
+  We want to include the function signatures always -- even on 
+  systems that don't support MediaCtrl. This means that every function body is
+  surrounded by #ifdef wxUSE_MEDIACTRL directives :-(
+-----------------------------------------------------------------------------*/
+#if defined(wxUSE_MEDIACTRL) && (wxUSE_MEDIACTRL==0)
+# undef wxUSE_MEDIACTRL
+#endif
+
+#if defined(wxcREFUSE_MEDIACTRL)
+# undef wxUSE_MEDIACTRL
+#endif
+
+#ifndef wxUSE_MEDIACTRL
+# define wxMediaCtrl      void
+#endif
+
+#if (wxVERSION_NUMBER <= 2600)
+# define wxFileOffset      long
+#endif
+
+extern "C" {
+
+////////////////////////////////////////////////////////////////////////////////
+// Event Handlers
+////////////////////////////////////////////////////////////////////////////////
+
+#ifdef wxUSE_MEDIACTRL
+#pragma message "wxWidgets mediacontrol event wrappers generated"
+MAKE_EVENT_WRAPPER(EVT_MEDIA_FINISHED)
+MAKE_EVENT_WRAPPER(EVT_MEDIA_STOP)
+MAKE_EVENT_WRAPPER(EVT_MEDIA_LOADED)
+MAKE_EVENT_WRAPPER(EVT_MEDIA_STATECHANGED)
+MAKE_EVENT_WRAPPER(EVT_MEDIA_PLAY)
+MAKE_EVENT_WRAPPER(EVT_MEDIA_PAUSE)
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// Wrappers
+////////////////////////////////////////////////////////////////////////////////
+
+/*-----------------------------------------------------------------------------
+  MediaCtrl
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxMediaCtrl*,wxMediaCtrl_Create)( void* parent, int id,
+                                             wxString* fileName, int x, int y, int w, int h,
+                                             long style, wxString* szBackend, wxString* name)
+{
+#ifdef wxUSE_MEDIACTRL
+  return new wxMediaCtrl((wxWindow*)parent,(wxWindowID)id,
+    (fileName ? *fileName : wxString(wxT(""))),
+    wxPoint(x,y),wxSize(w,h),style,
+    (szBackend ? *szBackend : wxString(wxT(""))), wxDefaultValidator,
+    (name ? *name : wxString(wxT("MediaCtrl"))));
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxMediaCtrl_Delete)(wxMediaCtrl* self)  
+{
+#ifdef wxUSE_MEDIACTRL
+  if (self) delete self;
+#endif
+}
+
+EWXWEXPORT(wxSize*,wxMediaCtrl_GetBestSize)(wxMediaCtrl* self)
+{
+#ifdef wxUSE_MEDIACTRL
+  wxSize* sz = new wxSize();
+  *sz = self->GetBestSize();
+  return sz;
+#endif
+}
+
+EWXWEXPORT(double,wxMediaCtrl_GetPlaybackRate)(wxMediaCtrl* self)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->GetPlaybackRate();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(double,wxMediaCtrl_GetVolume)(wxMediaCtrl* self)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->GetVolume();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxMediaCtrl_GetState)(wxMediaCtrl* self)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->GetState();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(wxFileOffset,wxMediaCtrl_Length)(wxMediaCtrl* self)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->Length();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(bool,wxMediaCtrl_Load)(wxMediaCtrl* self, const wxString* fileName)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->Load(*fileName);
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxMediaCtrl_LoadURI)(wxMediaCtrl* self, const wxString* uri)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->LoadURI(*uri);
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxMediaCtrl_LoadURIWithProxy)(wxMediaCtrl* self, const wxString* uri, const wxString* proxy)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->LoadURIWithProxy(*uri, *proxy);
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxMediaCtrl_Pause)(wxMediaCtrl* self)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->Pause();
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxMediaCtrl_Play)(wxMediaCtrl* self)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->Play();
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(wxFileOffset,wxMediaCtrl_Seek)(wxMediaCtrl* self, wxFileOffset offsetWhere, int mode)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->Seek(offsetWhere, static_cast<wxSeekMode>(mode));
+#else
+  return (wxFileOffset) 0;
+#endif
+}
+
+EWXWEXPORT(bool,wxMediaCtrl_SetPlaybackRate)(wxMediaCtrl* self, double dRate)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->SetPlaybackRate(dRate);
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxMediaCtrl_SetVolume)(wxMediaCtrl* self, double dVolume)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->SetVolume(dVolume);
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxMediaCtrl_ShowPlayerControls)(wxMediaCtrl* self, int flags)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->ShowPlayerControls(static_cast<wxMediaCtrlPlayerControls>(flags));
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxMediaCtrl_Stop)(wxMediaCtrl* self)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->Stop();
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(wxFileOffset, wxMediaCtrl_Tell) (wxMediaCtrl* self)
+{
+#ifdef wxUSE_MEDIACTRL
+  return self->Tell();
+#else
+  return 0;
+#endif
+}
+
+}
+
+
diff --git a/src/cpp/previewframe.cpp b/src/cpp/previewframe.cpp
--- a/src/cpp/previewframe.cpp
+++ b/src/cpp/previewframe.cpp
@@ -1,36 +1,36 @@
-#include "wrapper.h"
-#include "wx/wx.h"
-#include "wx/print.h"
-
-/*-----------------------------------------------------------------------------
-
------------------------------------------------------------------------------*/
-extern "C" {
-
-/*-----------------------------------------------------------------------------
-  PreviewFrame
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxPreviewFrame*, wxPreviewFrame_Create)( wxPrintPreview* preview
-                                                  , wxFrame* parent
-                                                  , wxString* title
-                                                  , int x, int y
-                                                  , int w, int h
-                                                  , int style
-                                                  , wxString* name
-                                                  )
-{
-  return new wxPreviewFrame( preview, parent, *title, wxPoint(x,y), wxSize(w,h), style, *name );
-}
-
-EWXWEXPORT(void, wxPreviewFrame_Delete)( wxPreviewFrame* self )
-{
-  if (self) delete self;
-}
-
-EWXWEXPORT(void, wxPreviewFrame_Initialize)( wxPreviewFrame* self )
-{
-  self->Initialize();
-}
-
-
-}
+#include "wrapper.h"
+#include "wx/wx.h"
+#include "wx/print.h"
+
+/*-----------------------------------------------------------------------------
+
+-----------------------------------------------------------------------------*/
+extern "C" {
+
+/*-----------------------------------------------------------------------------
+  PreviewFrame
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxPreviewFrame*, wxPreviewFrame_Create)( wxPrintPreview* preview
+                                                  , wxFrame* parent
+                                                  , wxString* title
+                                                  , int x, int y
+                                                  , int w, int h
+                                                  , int style
+                                                  , wxString* name
+                                                  )
+{
+  return new wxPreviewFrame( preview, parent, *title, wxPoint(x,y), wxSize(w,h), style, *name );
+}
+
+EWXWEXPORT(void, wxPreviewFrame_Delete)( wxPreviewFrame* self )
+{
+  if (self) delete self;
+}
+
+EWXWEXPORT(void, wxPreviewFrame_Initialize)( wxPreviewFrame* self )
+{
+  self->Initialize();
+}
+
+
+}
diff --git a/src/cpp/sound.cpp b/src/cpp/sound.cpp
--- a/src/cpp/sound.cpp
+++ b/src/cpp/sound.cpp
@@ -1,69 +1,69 @@
-#include "wrapper.h"
-#include "wx/sound.h"
-
-/* testing */
-// #define wxUSE_SOUND 0
-
-/*-----------------------------------------------------------------------------
-  We want to include the function signatures always -- even on 
-  systems that don't support wxSound. This means that every function body is
-  surrounded by #ifdef wxUSE_SOUND directives :-(
------------------------------------------------------------------------------*/
-
-#if defined(wxUSE_SOUND) && (wxUSE_SOUND==0)
-# undef wxUSE_SOUND
-#endif
-
-#ifndef wxUSE_SOUND
-# define wxSound      void
-#endif
-
-extern "C" {
-
-/*-----------------------------------------------------------------------------
-  Sound
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxSound*,wxSound_Create)(wxString* fileName,bool isResource)
-{
-#ifdef wxUSE_SOUND 
-  return new wxSound(*fileName,isResource);
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void,wxSound_Delete)(wxSound* self)
-{
-#ifdef wxUSE_SOUND 
-  if (self) delete self;
-#endif
-}
-
-EWXWEXPORT(bool,wxSound_IsOk)(wxSound* self)
-{
-#ifdef wxUSE_SOUND 
-  return self->IsOk();
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxSound_Play)(wxSound* self,unsigned flag)
-{
-#ifdef wxUSE_SOUND 
-  return ((wxSoundBase *)self)->Play(flag);
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(void,wxSound_Stop)(wxSound* self)
-{
-#ifdef wxUSE_SOUND
-  self->Stop();
-#endif
-}
-
-}
-
-
+#include "wrapper.h"
+#include "wx/sound.h"
+
+/* testing */
+// #define wxUSE_SOUND 0
+
+/*-----------------------------------------------------------------------------
+  We want to include the function signatures always -- even on 
+  systems that don't support wxSound. This means that every function body is
+  surrounded by #ifdef wxUSE_SOUND directives :-(
+-----------------------------------------------------------------------------*/
+
+#if defined(wxUSE_SOUND) && (wxUSE_SOUND==0)
+# undef wxUSE_SOUND
+#endif
+
+#ifndef wxUSE_SOUND
+# define wxSound      void
+#endif
+
+extern "C" {
+
+/*-----------------------------------------------------------------------------
+  Sound
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxSound*,wxSound_Create)(wxString* fileName,bool isResource)
+{
+#ifdef wxUSE_SOUND 
+  return new wxSound(*fileName,isResource);
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void,wxSound_Delete)(wxSound* self)
+{
+#ifdef wxUSE_SOUND 
+  if (self) delete self;
+#endif
+}
+
+EWXWEXPORT(bool,wxSound_IsOk)(wxSound* self)
+{
+#ifdef wxUSE_SOUND 
+  return self->IsOk();
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxSound_Play)(wxSound* self,unsigned flag)
+{
+#ifdef wxUSE_SOUND 
+  return ((wxSoundBase *)self)->Play(flag);
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(void,wxSound_Stop)(wxSound* self)
+{
+#ifdef wxUSE_SOUND
+  self->Stop();
+#endif
+}
+
+}
+
+
diff --git a/src/cpp/stc.cpp b/src/cpp/stc.cpp
--- a/src/cpp/stc.cpp
+++ b/src/cpp/stc.cpp
@@ -1,604 +1,604 @@
-/*==============================================================================
- * stc.cpp
- *
- * C wrapper for wxStyledTextCtrl
- *
- * (C) 2002-2011 wxEiffel and wxHaskell contributors. See contributors.txt
- * 
- *==============================================================================*/
-
-#include "wrapper.h"
-
-#ifdef wxUSE_STC
-# include "wx/stc/stc.h"
-#endif
-
-extern "C"
-{
-
-////////////////////////////////////////////////////////////////////////////////
-// Event Handlers
-////////////////////////////////////////////////////////////////////////////////
-
-#ifdef wxUSE_STC
-MAKE_EVENT_WRAPPER(EVT_STC_CHANGE)
-MAKE_EVENT_WRAPPER(EVT_STC_STYLENEEDED)
-MAKE_EVENT_WRAPPER(EVT_STC_CHARADDED)
-MAKE_EVENT_WRAPPER(EVT_STC_SAVEPOINTREACHED)
-MAKE_EVENT_WRAPPER(EVT_STC_SAVEPOINTLEFT)
-MAKE_EVENT_WRAPPER(EVT_STC_ROMODIFYATTEMPT)
-MAKE_EVENT_WRAPPER(EVT_STC_KEY)
-MAKE_EVENT_WRAPPER(EVT_STC_DOUBLECLICK)
-MAKE_EVENT_WRAPPER(EVT_STC_UPDATEUI)
-MAKE_EVENT_WRAPPER(EVT_STC_MODIFIED)
-MAKE_EVENT_WRAPPER(EVT_STC_MACRORECORD)
-MAKE_EVENT_WRAPPER(EVT_STC_MARGINCLICK)
-MAKE_EVENT_WRAPPER(EVT_STC_NEEDSHOWN)
-MAKE_EVENT_WRAPPER(EVT_STC_PAINTED)
-MAKE_EVENT_WRAPPER(EVT_STC_USERLISTSELECTION)
-MAKE_EVENT_WRAPPER(EVT_STC_URIDROPPED)
-MAKE_EVENT_WRAPPER(EVT_STC_DWELLSTART)
-MAKE_EVENT_WRAPPER(EVT_STC_DWELLEND)
-MAKE_EVENT_WRAPPER(EVT_STC_START_DRAG)
-MAKE_EVENT_WRAPPER(EVT_STC_DRAG_OVER)
-MAKE_EVENT_WRAPPER(EVT_STC_DO_DROP)
-MAKE_EVENT_WRAPPER(EVT_STC_ZOOM)
-MAKE_EVENT_WRAPPER(EVT_STC_HOTSPOT_CLICK)
-MAKE_EVENT_WRAPPER(EVT_STC_HOTSPOT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_STC_CALLTIP_CLICK)
-MAKE_EVENT_WRAPPER(EVT_STC_AUTOCOMP_SELECTION)
-MAKE_EVENT_WRAPPER(EVT_STC_INDICATOR_CLICK)
-MAKE_EVENT_WRAPPER(EVT_STC_INDICATOR_RELEASE)
-MAKE_EVENT_WRAPPER(EVT_STC_AUTOCOMP_CANCELLED)
-MAKE_EVENT_WRAPPER(EVT_STC_AUTOCOMP_CHAR_DELETED)
-#else
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_CHANGE)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_STYLENEEDED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_CHARADDED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_SAVEPOINTREACHED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_SAVEPOINTLEFT)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_ROMODIFYATTEMPT)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_KEY)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_DOUBLECLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_UPDATEUI)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_MODIFIED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_MACRORECORD)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_MARGINCLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_NEEDSHOWN)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_PAINTED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_USERLISTSELECTION)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_URIDROPPED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_DWELLSTART)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_DWELLEND)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_START_DRAG)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_DRAG_OVER)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_DO_DROP)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_ZOOM)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_HOTSPOT_CLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_HOTSPOT_DCLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_CALLTIP_CLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_AUTOCOMP_SELECTION)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_INDICATOR_CLICK)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_INDICATOR_RELEASE)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_AUTOCOMP_CANCELLED)
-MAKE_UNDEFEVENT_WRAPPER(EVT_STC_AUTOCOMP_CHAR_DELETED)
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// Wrappers
-////////////////////////////////////////////////////////////////////////////////
-
-#include "stc_gen.cpp"
-
-/* wxStyledTextCtrl */
-
-EWXWEXPORT(void*,wxStyledTextCtrl_Create)(wxWindow* _prt,int _id, wxString* _txt,int _lft,int _top,int _wdt,int _hgt,int _stl)
-{
-#ifdef wxUSE_STC
-  return (void*) new wxStyledTextCtrl(_prt, _id, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl, *_txt);
-#else
-  return NULL;
-#endif
-}
-
-  /* tricky handwritten functions */
-
-  EWXWEXPORT(void*,wxStyledTextCtrl_IndicatorGetForeground)(void* _obj,int indic)
-  {
-#ifdef wxUSE_STC
-    wxColour c = ((wxStyledTextCtrl*) _obj)->IndicatorGetForeground(indic);
-    wxColour* cc = new wxColour(c);
-    return cc;
-#else
-    return NULL;
-#endif
-  }
-  EWXWEXPORT(void*,wxStyledTextCtrl_GetCaretLineBackground)(void* _obj)
-  {
-#ifdef wxUSE_STC
-#if (wxVERSION_NUMBER < 2800)
-    wxColour c = ((wxStyledTextCtrl*) _obj)->GetCaretLineBack();
-#else
-    wxColour c = ((wxStyledTextCtrl*) _obj)->GetCaretLineBackground();
-#endif
-    wxColour* cc = new wxColour(c);
-    return cc;
-#else
-    return NULL;
-#endif
-  }
-EWXWEXPORT(void,wxStyledTextCtrl_SetCaretLineBackground)(void* _obj,int back_r,int back_g,int back_b)
-{
-#ifdef wxUSE_STC
-#if (wxVERSION_NUMBER < 2800)
-   ((wxStyledTextCtrl*) _obj)->SetCaretLineBack(wxColour(back_r,back_g,back_b));
-#else
-    /* SetCaretLineBack is changed name to SetCaretLineBackground.
-       So I avoid to use stc_gen.cpp for backward compatibility. */
-   ((wxStyledTextCtrl*) _obj)->SetCaretLineBackground(wxColour(back_r,back_g,back_b));
-#endif
-#endif
-}
-  EWXWEXPORT(void*,wxStyledTextCtrl_GetCaretForeground)(void* _obj)
-  {
-#ifdef wxUSE_STC
-    wxColour c = ((wxStyledTextCtrl*) _obj)->GetCaretForeground();
-    wxColour* cc = new wxColour(c);
-    return cc;
-#else
-    return NULL;
-#endif
-  }
-  EWXWEXPORT(void*,wxStyledTextCtrl_GetLine)(void* _obj,int line)
-  {
-#ifdef wxUSE_STC
-    wxString s = ((wxStyledTextCtrl*) _obj)->GetLine(line);
-    wxString* ss = new wxString(s);
-    return ss;
-#else
-    return NULL;
-#endif
-  }
-
-  EWXWEXPORT(void*,wxStyledTextCtrl_GetText)(void* _obj)
-  {
-#ifdef wxUSE_STC
-    wxString s = ((wxStyledTextCtrl*) _obj)->GetText();
-    wxString* ss = new wxString(s);
-    return ss;
-#else
-    return NULL;
-#endif
-  }
-
-  EWXWEXPORT(void*,wxStyledTextCtrl_GetSelectedText)(void* _obj)
-  {
-#ifdef wxUSE_STC
-    wxString s = ((wxStyledTextCtrl*) _obj)->GetSelectedText();
-    wxString* ss = new wxString(s);
-    return ss;
-#else
-    return NULL;
-#endif
-  }
-
-  EWXWEXPORT(void*,wxStyledTextCtrl_GetTextRange)(void* _obj,int startPos,int endPos)
-  {
-#ifdef wxUSE_STC
-    wxString s = ((wxStyledTextCtrl*) _obj)->GetTextRange(startPos, endPos);
-    wxString* ss = new wxString(s);
-    return ss;
-#else
-    return NULL;
-#endif
-  }
-
-  EWXWEXPORT(void*,wxStyledTextCtrl_CreateDocument)(void* _obj)
-  {
-#ifdef wxUSE_STC
-    return ((wxStyledTextCtrl*) _obj)->CreateDocument();
-#else
-    return NULL;
-#endif
-  }
-
-  EWXWEXPORT(void*,wxStyledTextCtrl_GetEdgeColour)(void* _obj)
-  {
-#ifdef wxUSE_STC
-    wxColour c = ((wxStyledTextCtrl*) _obj)->GetEdgeColour();
-    wxColour* cc = new wxColour(c);
-    return cc;
-#else
-    return NULL;
-#endif
-  }
-
-  EWXWEXPORT(void*,wxStyledTextCtrl_GetDocPointer)(void* _obj)
-  {
-#ifdef wxUSE_STC
-    return ((wxStyledTextCtrl*) _obj)->GetDocPointer();
-#else
-    return NULL;
-#endif
-  }
-
-  EWXWEXPORT(void*,wxStyledTextCtrl_PointFromPosition)(void* _obj,int pos)
-  {
-#ifdef wxUSE_STC
-    wxPoint p = ((wxStyledTextCtrl*) _obj)->PointFromPosition(pos);
-    wxPoint* pp = new wxPoint(p);
-    return pp;
-#else
-    return NULL;
-#endif
-  }
-
-/*************************************/
-/* wxStyledTextEvent's get functions */
-/*************************************/
-
-EWXWEXPORT(int,wxStyledTextEvent_GetPosition)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetPosition();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetKey)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetKey();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetModifiers)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetModifiers();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetModificationType)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetModificationType();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetLength)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetLength();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetLinesAdded)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetLinesAdded();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetLine)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetLine();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetFoldLevelNow)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetFoldLevelNow();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetFoldLevelPrev)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetFoldLevelPrev();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetMargin)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetMargin();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetMessage)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetMessage();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetWParam)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetWParam();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetLParam)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetLParam();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetListType)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetListType();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetX)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetX();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetY)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetY();
-#else
-  return 0;
-#endif
-}
-
-EWXWEXPORT(void*,wxStyledTextEvent_GetDragText)(void* _obj)
-{
-#ifdef wxUSE_STC
-    wxString s = ((wxStyledTextEvent*) _obj)->GetDragText();
-    wxString* ss = new wxString(s);
-    return ss;
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(bool,wxStyledTextEvent_GetDragAllowMove)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetDragAllowMove();
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(int,wxStyledTextEvent_GetDragResult)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetDragResult();
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxStyledTextEvent_GetShift)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetShift();
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxStyledTextEvent_GetControl)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetControl();
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(bool,wxStyledTextEvent_GetAlt)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return ((wxStyledTextEvent*) _obj)->GetAlt();
-#else
-  return false;
-#endif
-}
-
-EWXWEXPORT(void*,wxStyledTextEvent_GetText)(void* _obj)
-{
-#ifdef wxUSE_STC
-    wxString s = ((wxStyledTextEvent*) _obj)->GetText();
-    wxString* ss = new wxString(s);
-    return ss;
-#else
-  return NULL;
-#endif
-}
-
-EWXWEXPORT(void*,wxStyledTextEvent_Clone)(void* _obj)
-{
-#ifdef wxUSE_STC
-  return (void*) ((wxStyledTextEvent*) _obj)->Clone();
-#else
-  return NULL;
-#endif
-}
-
-/*************************************/
-/* wxStyledTextEvent's set functions */
-/*************************************/
-
-EWXWEXPORT(void,wxStyledTextEvent_SetPosition)(void* _obj,int pos)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetPosition(pos);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetKey)(void* _obj,int k)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetKey(k);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetModifiers)(void* _obj,int m)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetModifiers(m);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetModificationType)(void* _obj,int t)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetModificationType(t);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetText)(void* _obj,void* t)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetText(*(wxString*)t);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetLength)(void* _obj,int len)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetLength(len);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetLinesAdded)(void* _obj,int num)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetLinesAdded(num);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetLine)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetLine(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetFoldLevelNow)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetFoldLevelNow(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetFoldLevelPrev)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetFoldLevelPrev(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetMargin)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetMargin(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetMessage)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetMessage(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetWParam)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetWParam(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetLParam)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetLParam(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetListType)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetListType(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetX)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetX(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetY)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetY(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetDragText)(void* _obj,void* val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetDragText(*(wxString*)val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetDragAllowMove)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetDragAllowMove(val);
-#endif
-}
-
-EWXWEXPORT(void,wxStyledTextEvent_SetDragResult)(void* _obj,int val)
-{
-#ifdef wxUSE_STC
-  ((wxStyledTextEvent*) _obj)->SetDragResult(*(wxDragResult*)val);
-#endif
-}
-
-}
+/*==============================================================================
+ * stc.cpp
+ *
+ * C wrapper for wxStyledTextCtrl
+ *
+ * (C) 2002-2011 wxEiffel and wxHaskell contributors. See contributors.txt
+ * 
+ *==============================================================================*/
+
+#include "wrapper.h"
+
+#ifdef wxUSE_STC
+# include "wx/stc/stc.h"
+#endif
+
+extern "C"
+{
+
+////////////////////////////////////////////////////////////////////////////////
+// Event Handlers
+////////////////////////////////////////////////////////////////////////////////
+
+#ifdef wxUSE_STC
+MAKE_EVENT_WRAPPER(EVT_STC_CHANGE)
+MAKE_EVENT_WRAPPER(EVT_STC_STYLENEEDED)
+MAKE_EVENT_WRAPPER(EVT_STC_CHARADDED)
+MAKE_EVENT_WRAPPER(EVT_STC_SAVEPOINTREACHED)
+MAKE_EVENT_WRAPPER(EVT_STC_SAVEPOINTLEFT)
+MAKE_EVENT_WRAPPER(EVT_STC_ROMODIFYATTEMPT)
+MAKE_EVENT_WRAPPER(EVT_STC_KEY)
+MAKE_EVENT_WRAPPER(EVT_STC_DOUBLECLICK)
+MAKE_EVENT_WRAPPER(EVT_STC_UPDATEUI)
+MAKE_EVENT_WRAPPER(EVT_STC_MODIFIED)
+MAKE_EVENT_WRAPPER(EVT_STC_MACRORECORD)
+MAKE_EVENT_WRAPPER(EVT_STC_MARGINCLICK)
+MAKE_EVENT_WRAPPER(EVT_STC_NEEDSHOWN)
+MAKE_EVENT_WRAPPER(EVT_STC_PAINTED)
+MAKE_EVENT_WRAPPER(EVT_STC_USERLISTSELECTION)
+MAKE_EVENT_WRAPPER(EVT_STC_URIDROPPED)
+MAKE_EVENT_WRAPPER(EVT_STC_DWELLSTART)
+MAKE_EVENT_WRAPPER(EVT_STC_DWELLEND)
+MAKE_EVENT_WRAPPER(EVT_STC_START_DRAG)
+MAKE_EVENT_WRAPPER(EVT_STC_DRAG_OVER)
+MAKE_EVENT_WRAPPER(EVT_STC_DO_DROP)
+MAKE_EVENT_WRAPPER(EVT_STC_ZOOM)
+MAKE_EVENT_WRAPPER(EVT_STC_HOTSPOT_CLICK)
+MAKE_EVENT_WRAPPER(EVT_STC_HOTSPOT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_STC_CALLTIP_CLICK)
+MAKE_EVENT_WRAPPER(EVT_STC_AUTOCOMP_SELECTION)
+MAKE_EVENT_WRAPPER(EVT_STC_INDICATOR_CLICK)
+MAKE_EVENT_WRAPPER(EVT_STC_INDICATOR_RELEASE)
+MAKE_EVENT_WRAPPER(EVT_STC_AUTOCOMP_CANCELLED)
+MAKE_EVENT_WRAPPER(EVT_STC_AUTOCOMP_CHAR_DELETED)
+#else
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_CHANGE)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_STYLENEEDED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_CHARADDED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_SAVEPOINTREACHED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_SAVEPOINTLEFT)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_ROMODIFYATTEMPT)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_KEY)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_DOUBLECLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_UPDATEUI)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_MODIFIED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_MACRORECORD)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_MARGINCLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_NEEDSHOWN)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_PAINTED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_USERLISTSELECTION)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_URIDROPPED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_DWELLSTART)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_DWELLEND)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_START_DRAG)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_DRAG_OVER)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_DO_DROP)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_ZOOM)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_HOTSPOT_CLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_HOTSPOT_DCLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_CALLTIP_CLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_AUTOCOMP_SELECTION)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_INDICATOR_CLICK)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_INDICATOR_RELEASE)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_AUTOCOMP_CANCELLED)
+MAKE_UNDEFEVENT_WRAPPER(EVT_STC_AUTOCOMP_CHAR_DELETED)
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// Wrappers
+////////////////////////////////////////////////////////////////////////////////
+
+#include "stc_gen.cpp"
+
+/* wxStyledTextCtrl */
+
+EWXWEXPORT(void*,wxStyledTextCtrl_Create)(wxWindow* _prt,int _id, wxString* _txt,int _lft,int _top,int _wdt,int _hgt,int _stl)
+{
+#ifdef wxUSE_STC
+  return (void*) new wxStyledTextCtrl(_prt, _id, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl, *_txt);
+#else
+  return NULL;
+#endif
+}
+
+  /* tricky handwritten functions */
+
+  EWXWEXPORT(void*,wxStyledTextCtrl_IndicatorGetForeground)(void* _obj,int indic)
+  {
+#ifdef wxUSE_STC
+    wxColour c = ((wxStyledTextCtrl*) _obj)->IndicatorGetForeground(indic);
+    wxColour* cc = new wxColour(c);
+    return cc;
+#else
+    return NULL;
+#endif
+  }
+  EWXWEXPORT(void*,wxStyledTextCtrl_GetCaretLineBackground)(void* _obj)
+  {
+#ifdef wxUSE_STC
+#if (wxVERSION_NUMBER < 2800)
+    wxColour c = ((wxStyledTextCtrl*) _obj)->GetCaretLineBack();
+#else
+    wxColour c = ((wxStyledTextCtrl*) _obj)->GetCaretLineBackground();
+#endif
+    wxColour* cc = new wxColour(c);
+    return cc;
+#else
+    return NULL;
+#endif
+  }
+EWXWEXPORT(void,wxStyledTextCtrl_SetCaretLineBackground)(void* _obj,int back_r,int back_g,int back_b)
+{
+#ifdef wxUSE_STC
+#if (wxVERSION_NUMBER < 2800)
+   ((wxStyledTextCtrl*) _obj)->SetCaretLineBack(wxColour(back_r,back_g,back_b));
+#else
+    /* SetCaretLineBack is changed name to SetCaretLineBackground.
+       So I avoid to use stc_gen.cpp for backward compatibility. */
+   ((wxStyledTextCtrl*) _obj)->SetCaretLineBackground(wxColour(back_r,back_g,back_b));
+#endif
+#endif
+}
+  EWXWEXPORT(void*,wxStyledTextCtrl_GetCaretForeground)(void* _obj)
+  {
+#ifdef wxUSE_STC
+    wxColour c = ((wxStyledTextCtrl*) _obj)->GetCaretForeground();
+    wxColour* cc = new wxColour(c);
+    return cc;
+#else
+    return NULL;
+#endif
+  }
+  EWXWEXPORT(void*,wxStyledTextCtrl_GetLine)(void* _obj,int line)
+  {
+#ifdef wxUSE_STC
+    wxString s = ((wxStyledTextCtrl*) _obj)->GetLine(line);
+    wxString* ss = new wxString(s);
+    return ss;
+#else
+    return NULL;
+#endif
+  }
+
+  EWXWEXPORT(void*,wxStyledTextCtrl_GetText)(void* _obj)
+  {
+#ifdef wxUSE_STC
+    wxString s = ((wxStyledTextCtrl*) _obj)->GetText();
+    wxString* ss = new wxString(s);
+    return ss;
+#else
+    return NULL;
+#endif
+  }
+
+  EWXWEXPORT(void*,wxStyledTextCtrl_GetSelectedText)(void* _obj)
+  {
+#ifdef wxUSE_STC
+    wxString s = ((wxStyledTextCtrl*) _obj)->GetSelectedText();
+    wxString* ss = new wxString(s);
+    return ss;
+#else
+    return NULL;
+#endif
+  }
+
+  EWXWEXPORT(void*,wxStyledTextCtrl_GetTextRange)(void* _obj,int startPos,int endPos)
+  {
+#ifdef wxUSE_STC
+    wxString s = ((wxStyledTextCtrl*) _obj)->GetTextRange(startPos, endPos);
+    wxString* ss = new wxString(s);
+    return ss;
+#else
+    return NULL;
+#endif
+  }
+
+  EWXWEXPORT(void*,wxStyledTextCtrl_CreateDocument)(void* _obj)
+  {
+#ifdef wxUSE_STC
+    return ((wxStyledTextCtrl*) _obj)->CreateDocument();
+#else
+    return NULL;
+#endif
+  }
+
+  EWXWEXPORT(void*,wxStyledTextCtrl_GetEdgeColour)(void* _obj)
+  {
+#ifdef wxUSE_STC
+    wxColour c = ((wxStyledTextCtrl*) _obj)->GetEdgeColour();
+    wxColour* cc = new wxColour(c);
+    return cc;
+#else
+    return NULL;
+#endif
+  }
+
+  EWXWEXPORT(void*,wxStyledTextCtrl_GetDocPointer)(void* _obj)
+  {
+#ifdef wxUSE_STC
+    return ((wxStyledTextCtrl*) _obj)->GetDocPointer();
+#else
+    return NULL;
+#endif
+  }
+
+  EWXWEXPORT(void*,wxStyledTextCtrl_PointFromPosition)(void* _obj,int pos)
+  {
+#ifdef wxUSE_STC
+    wxPoint p = ((wxStyledTextCtrl*) _obj)->PointFromPosition(pos);
+    wxPoint* pp = new wxPoint(p);
+    return pp;
+#else
+    return NULL;
+#endif
+  }
+
+/*************************************/
+/* wxStyledTextEvent's get functions */
+/*************************************/
+
+EWXWEXPORT(int,wxStyledTextEvent_GetPosition)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetPosition();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetKey)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetKey();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetModifiers)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetModifiers();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetModificationType)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetModificationType();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetLength)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetLength();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetLinesAdded)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetLinesAdded();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetLine)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetLine();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetFoldLevelNow)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetFoldLevelNow();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetFoldLevelPrev)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetFoldLevelPrev();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetMargin)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetMargin();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetMessage)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetMessage();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetWParam)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetWParam();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetLParam)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetLParam();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetListType)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetListType();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetX)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetX();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetY)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetY();
+#else
+  return 0;
+#endif
+}
+
+EWXWEXPORT(void*,wxStyledTextEvent_GetDragText)(void* _obj)
+{
+#ifdef wxUSE_STC
+    wxString s = ((wxStyledTextEvent*) _obj)->GetDragText();
+    wxString* ss = new wxString(s);
+    return ss;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(bool,wxStyledTextEvent_GetDragAllowMove)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetDragAllowMove();
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(int,wxStyledTextEvent_GetDragResult)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetDragResult();
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxStyledTextEvent_GetShift)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetShift();
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxStyledTextEvent_GetControl)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetControl();
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(bool,wxStyledTextEvent_GetAlt)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return ((wxStyledTextEvent*) _obj)->GetAlt();
+#else
+  return false;
+#endif
+}
+
+EWXWEXPORT(void*,wxStyledTextEvent_GetText)(void* _obj)
+{
+#ifdef wxUSE_STC
+    wxString s = ((wxStyledTextEvent*) _obj)->GetText();
+    wxString* ss = new wxString(s);
+    return ss;
+#else
+  return NULL;
+#endif
+}
+
+EWXWEXPORT(void*,wxStyledTextEvent_Clone)(void* _obj)
+{
+#ifdef wxUSE_STC
+  return (void*) ((wxStyledTextEvent*) _obj)->Clone();
+#else
+  return NULL;
+#endif
+}
+
+/*************************************/
+/* wxStyledTextEvent's set functions */
+/*************************************/
+
+EWXWEXPORT(void,wxStyledTextEvent_SetPosition)(void* _obj,int pos)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetPosition(pos);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetKey)(void* _obj,int k)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetKey(k);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetModifiers)(void* _obj,int m)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetModifiers(m);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetModificationType)(void* _obj,int t)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetModificationType(t);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetText)(void* _obj,void* t)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetText(*(wxString*)t);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetLength)(void* _obj,int len)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetLength(len);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetLinesAdded)(void* _obj,int num)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetLinesAdded(num);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetLine)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetLine(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetFoldLevelNow)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetFoldLevelNow(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetFoldLevelPrev)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetFoldLevelPrev(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetMargin)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetMargin(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetMessage)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetMessage(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetWParam)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetWParam(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetLParam)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetLParam(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetListType)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetListType(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetX)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetX(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetY)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetY(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetDragText)(void* _obj,void* val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetDragText(*(wxString*)val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetDragAllowMove)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetDragAllowMove(val);
+#endif
+}
+
+EWXWEXPORT(void,wxStyledTextEvent_SetDragResult)(void* _obj,int val)
+{
+#ifdef wxUSE_STC
+  ((wxStyledTextEvent*) _obj)->SetDragResult(*(wxDragResult*)val);
+#endif
+}
+
+}
diff --git a/src/cpp/std.cpp b/src/cpp/std.cpp
--- a/src/cpp/std.cpp
+++ b/src/cpp/std.cpp
@@ -1,27 +1,27 @@
-#include "wrapper.h"
-
-/*-----------------------------------------------------------------------------
-  License: BSD-style (BSD3)
-
-  We sometimes want to use standard C++ types, containers and algorithms, for
-  clean-up our code. Unfortunately, most platorms' FFI just support C language,
-  not support C++ and its libraries. So, we define C-function to use standard
-  C++ types, containers and algorithms in this place.
------------------------------------------------------------------------------*/
-
-extern "C"
-{
-/*-----------------------------------------------------------------------------
-  Boolean types, e.g. C++ bool and C99 _Bool
------------------------------------------------------------------------------*/
-EWXWEXPORT(int,boolToInt)(bool val)
-{
-	return val ? 1 :  0;
-}
-
-EWXWEXPORT(bool,intToBool)(int val)
-{
-	return val!= 0 ? true : false;
-}
-
-}
+#include "wrapper.h"
+
+/*-----------------------------------------------------------------------------
+  License: BSD-style (BSD3)
+
+  We sometimes want to use standard C++ types, containers and algorithms, for
+  clean-up our code. Unfortunately, most platorms' FFI just support C language,
+  not support C++ and its libraries. So, we define C-function to use standard
+  C++ types, containers and algorithms in this place.
+-----------------------------------------------------------------------------*/
+
+extern "C"
+{
+/*-----------------------------------------------------------------------------
+  Boolean types, e.g. C++ bool and C99 _Bool
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(int,boolToInt)(bool val)
+{
+	return val ? 1 :  0;
+}
+
+EWXWEXPORT(bool,intToBool)(int val)
+{
+	return val!= 0 ? true : false;
+}
+
+}
diff --git a/src/cpp/taskbaricon.cpp b/src/cpp/taskbaricon.cpp
--- a/src/cpp/taskbaricon.cpp
+++ b/src/cpp/taskbaricon.cpp
@@ -1,85 +1,85 @@
-/*==============================================================================
- * taskbaricon.cpp
- *
- * C wrapper for wxTaskbarIcon
- *
- * (C) 2002-2011 wxEiffel and wxHaskell contributors. See contributors.txt
- * 
- * Licensed under the wxWidgets library license. see LICENSE.
- * 
- *==============================================================================*/
-
-#include "wrapper.h"
-#include <wx/taskbar.h>
-
-extern "C" {
-
-////////////////////////////////////////////////////////////////////////////////
-// Event Handlers
-////////////////////////////////////////////////////////////////////////////////
-
-#pragma message "wxWidgets taskbar event wrappers generated"
-MAKE_EVENT_WRAPPER(EVT_TASKBAR_MOVE)
-MAKE_EVENT_WRAPPER(EVT_TASKBAR_LEFT_DOWN)
-MAKE_EVENT_WRAPPER(EVT_TASKBAR_LEFT_UP)
-MAKE_EVENT_WRAPPER(EVT_TASKBAR_RIGHT_DOWN)
-MAKE_EVENT_WRAPPER(EVT_TASKBAR_RIGHT_UP)
-MAKE_EVENT_WRAPPER(EVT_TASKBAR_LEFT_DCLICK)
-MAKE_EVENT_WRAPPER(EVT_TASKBAR_RIGHT_DCLICK)
-#if (wxVERSION_NUMBER >= 2900)
-MAKE_EVENT_WRAPPER(EVT_TASKBAR_BALLOON_TIMEOUT)
-MAKE_EVENT_WRAPPER(EVT_TASKBAR_BALLOON_CLICK)
-#else
-MAKE_UNDEFEVENT_WRAPPER(EVT_TASKBAR_BALLOON_TIMEOUT)
-MAKE_UNDEFEVENT_WRAPPER(EVT_TASKBAR_BALLOON_CLICK)
-#endif
-
-////////////////////////////////////////////////////////////////////////////////
-// Wrappers
-////////////////////////////////////////////////////////////////////////////////
-
-/*-----------------------------------------------------------------------------
-  TaskBarIcon
------------------------------------------------------------------------------*/
-EWXWEXPORT(wxTaskBarIcon*,wxTaskBarIcon_Create)()
-{
-  return new wxTaskBarIcon();
-}
-
-EWXWEXPORT(void,wxTaskBarIcon_Delete)(wxTaskBarIcon* self)
-{
-  if (self) delete self;
-}
-
-EWXWEXPORT(bool,wxTaskBarIcon_IsIconInstalled)(wxTaskBarIcon* self)
-{
-  return self->IsIconInstalled();
-}
-
-EWXWEXPORT(bool,wxTaskBarIcon_IsOk)(wxTaskBarIcon* self)
-{
-  return self->IsOk();
-}
-
-EWXWEXPORT(bool,wxTaskBarIcon_PopupMenu)(wxTaskBarIcon* self,wxMenu* menu)
-{
-  return self->PopupMenu(menu);
-}
-
-EWXWEXPORT(bool,wxTaskBarIcon_RemoveIcon)(wxTaskBarIcon* self)
-{
-  return self->RemoveIcon();
-}
-
-EWXWEXPORT(bool,wxTaskBarIcon_SetIcon)(wxTaskBarIcon* self,wxIcon* icon,wxString* tooltip)
-{
-#if (wxVERSION_NUMBER < 2900)
-  return self->SetIcon(*icon, (tooltip ? *tooltip : *wxEmptyString));
-#else
-  return tooltip ? self->SetIcon(*icon, *tooltip) : self->SetIcon(*icon);
-#endif
-}
-
-}
-
-
+/*==============================================================================
+ * taskbaricon.cpp
+ *
+ * C wrapper for wxTaskbarIcon
+ *
+ * (C) 2002-2011 wxEiffel and wxHaskell contributors. See contributors.txt
+ * 
+ * Licensed under the wxWidgets library license. see LICENSE.
+ * 
+ *==============================================================================*/
+
+#include "wrapper.h"
+#include <wx/taskbar.h>
+
+extern "C" {
+
+////////////////////////////////////////////////////////////////////////////////
+// Event Handlers
+////////////////////////////////////////////////////////////////////////////////
+
+#pragma message "wxWidgets taskbar event wrappers generated"
+MAKE_EVENT_WRAPPER(EVT_TASKBAR_MOVE)
+MAKE_EVENT_WRAPPER(EVT_TASKBAR_LEFT_DOWN)
+MAKE_EVENT_WRAPPER(EVT_TASKBAR_LEFT_UP)
+MAKE_EVENT_WRAPPER(EVT_TASKBAR_RIGHT_DOWN)
+MAKE_EVENT_WRAPPER(EVT_TASKBAR_RIGHT_UP)
+MAKE_EVENT_WRAPPER(EVT_TASKBAR_LEFT_DCLICK)
+MAKE_EVENT_WRAPPER(EVT_TASKBAR_RIGHT_DCLICK)
+#if (wxVERSION_NUMBER >= 2900)
+MAKE_EVENT_WRAPPER(EVT_TASKBAR_BALLOON_TIMEOUT)
+MAKE_EVENT_WRAPPER(EVT_TASKBAR_BALLOON_CLICK)
+#else
+MAKE_UNDEFEVENT_WRAPPER(EVT_TASKBAR_BALLOON_TIMEOUT)
+MAKE_UNDEFEVENT_WRAPPER(EVT_TASKBAR_BALLOON_CLICK)
+#endif
+
+////////////////////////////////////////////////////////////////////////////////
+// Wrappers
+////////////////////////////////////////////////////////////////////////////////
+
+/*-----------------------------------------------------------------------------
+  TaskBarIcon
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(wxTaskBarIcon*,wxTaskBarIcon_Create)()
+{
+  return new wxTaskBarIcon();
+}
+
+EWXWEXPORT(void,wxTaskBarIcon_Delete)(wxTaskBarIcon* self)
+{
+  if (self) delete self;
+}
+
+EWXWEXPORT(bool,wxTaskBarIcon_IsIconInstalled)(wxTaskBarIcon* self)
+{
+  return self->IsIconInstalled();
+}
+
+EWXWEXPORT(bool,wxTaskBarIcon_IsOk)(wxTaskBarIcon* self)
+{
+  return self->IsOk();
+}
+
+EWXWEXPORT(bool,wxTaskBarIcon_PopupMenu)(wxTaskBarIcon* self,wxMenu* menu)
+{
+  return self->PopupMenu(menu);
+}
+
+EWXWEXPORT(bool,wxTaskBarIcon_RemoveIcon)(wxTaskBarIcon* self)
+{
+  return self->RemoveIcon();
+}
+
+EWXWEXPORT(bool,wxTaskBarIcon_SetIcon)(wxTaskBarIcon* self,wxIcon* icon,wxString* tooltip)
+{
+#if (wxVERSION_NUMBER < 2900)
+  return self->SetIcon(*icon, (tooltip ? *tooltip : *wxEmptyString));
+#else
+  return tooltip ? self->SetIcon(*icon, *tooltip) : self->SetIcon(*icon);
+#endif
+}
+
+}
+
+
diff --git a/src/cpp/textstream.cpp b/src/cpp/textstream.cpp
--- a/src/cpp/textstream.cpp
+++ b/src/cpp/textstream.cpp
@@ -1,50 +1,50 @@
-#include "wrapper.h"
-#include <wx/txtstrm.h>
-
-extern "C"
-{
-EWXWEXPORT( bool, wxInputStream_CanRead)( wxInputStream* self )
-{
-  if (self)
-    return self->CanRead();
-  else
-    return false;
-}
-
-
-
-EWXWEXPORT( wxTextInputStream*, wxTextInputStream_Create)( wxInputStream* inputStream, wxString* sep )
-{
-  return new wxTextInputStream( *inputStream, *sep );
-}
-
-EWXWEXPORT( void, wxTextInputStream_Delete)( wxTextInputStream* self )
-{
-  if (self) delete self;
-}
-
-EWXWEXPORT( wxString*, wxTextInputStream_ReadLine)( wxTextInputStream* self )
-{
-  if (!self)
-    return new wxString(wxT(""));
-  else
-    return new wxString( self->ReadLine() );
-}
-
-EWXWEXPORT( wxTextOutputStream*, wxTextOutputStream_Create)( wxOutputStream* outputStream, wxEOL mode )
-{
-  return new wxTextOutputStream( *outputStream, mode );
-}
-
-EWXWEXPORT( void, wxTextOutputStream_Delete)( wxTextOutputStream* self )
-{
-  if (self) delete self;
-}
-
-EWXWEXPORT( void, wxTextOutputStream_WriteString)( wxTextOutputStream* self, wxString* txt )
-{
-  if (!self) return;
-  self->WriteString( *txt );
-}
-
-}
+#include "wrapper.h"
+#include <wx/txtstrm.h>
+
+extern "C"
+{
+EWXWEXPORT( bool, wxInputStream_CanRead)( wxInputStream* self )
+{
+  if (self)
+    return self->CanRead();
+  else
+    return false;
+}
+
+
+
+EWXWEXPORT( wxTextInputStream*, wxTextInputStream_Create)( wxInputStream* inputStream, wxString* sep )
+{
+  return new wxTextInputStream( *inputStream, *sep );
+}
+
+EWXWEXPORT( void, wxTextInputStream_Delete)( wxTextInputStream* self )
+{
+  if (self) delete self;
+}
+
+EWXWEXPORT( wxString*, wxTextInputStream_ReadLine)( wxTextInputStream* self )
+{
+  if (!self)
+    return new wxString(wxT(""));
+  else
+    return new wxString( self->ReadLine() );
+}
+
+EWXWEXPORT( wxTextOutputStream*, wxTextOutputStream_Create)( wxOutputStream* outputStream, wxEOL mode )
+{
+  return new wxTextOutputStream( *outputStream, mode );
+}
+
+EWXWEXPORT( void, wxTextOutputStream_Delete)( wxTextOutputStream* self )
+{
+  if (self) delete self;
+}
+
+EWXWEXPORT( void, wxTextOutputStream_WriteString)( wxTextOutputStream* self, wxString* txt )
+{
+  if (!self) return;
+  self->WriteString( *txt );
+}
+
+}
diff --git a/src/cpp/treectrl.cpp b/src/cpp/treectrl.cpp
--- a/src/cpp/treectrl.cpp
+++ b/src/cpp/treectrl.cpp
@@ -1,540 +1,540 @@
-#include "wrapper.h"
-
-class wxcTreeItemData : public wxTreeItemData
-{
-  private:
-    wxClosure* m_closure;
-
-  public:
-    wxcTreeItemData( wxClosure* closure ) { 
-      m_closure = closure;
-    }
-
-    ~wxcTreeItemData() {
-      if (m_closure) delete m_closure;
-    }
-
-    wxClosure* GetClientClosure() { 
-      return m_closure; 
-    }
-
-    void SetClientClosure( wxClosure* closure ) {
-      if (m_closure) delete m_closure;
-      m_closure = closure;
-    }
-};
-
-extern "C"
-{
-
-EWXWEXPORT(wxcTreeItemData*,wxcTreeItemData_Create)(wxClosure* closure)
-{
-	return new wxcTreeItemData(closure);
-}
-
-EWXWEXPORT(wxClosure*,wxcTreeItemData_GetClientClosure)(wxcTreeItemData* self)
-{
-	return self->GetClientClosure();
-}
-
-EWXWEXPORT(void,wxcTreeItemData_SetClientClosure)(wxcTreeItemData* self,wxClosure* closure)
-{
-	self->SetClientClosure(closure);
-}
-
-EWXWEXPORT(void*,wxTreeItemId_Create)()
-{
-	return new wxTreeItemId();
-}
-
-EWXWEXPORT(void,wxTreeItemId_Delete)(wxTreeItemId* self)
-{
-	delete self;
-}
-
-EWXWEXPORT(bool,wxTreeItemId_IsOk)(wxTreeItemId* self)
-{
-	return self->IsOk();
-}
-
-EWXWEXPORT(wxTreeItemId*,wxTreeItemId_Clone)(wxTreeItemId* self)
-{
-	wxTreeItemId* clone = new wxTreeItemId();
-	*clone = *self;
-	return clone;
-}
-
-// FIXME: wxHaskell uses this function in Graphics.UI.WXCore.WxcTypes.withTreeItemIdPtr
-// to make wxTreeItemId.
-//
-// But wxWidgets' document says: wxTreemItemIds are not meant to be constructed
-// explicitly by the user; they are returned by the wxTreeCtrl functions instead.
-//
-// http://www.wxwindows.org/manuals/2.8/wx_wxtreeitemid.html#wxtreeitemid
-//
-// So we must remove this function and replace treeItemId implementation in the
-// funture.
-EWXWEXPORT(wxTreeItemId*,wxTreeItemId_CreateFromValue)(intptr_t value)
-{
-#if wxVERSION_NUMBER < 2800
-	return new wxTreeItemId( value );
-#else
-	// TODO: This function should be removed. No longer any equivalent in wxWidgets
-	wxTreeItemId *item = new wxTreeItemId();
-	item->m_pItem = reinterpret_cast<wxTreeItemIdValue>(value);
-	return item;
-#endif
-}
-
-EWXWEXPORT(intptr_t,wxTreeItemId_GetValue)(wxTreeItemId* self)
-{
-	return (intptr_t)(self->m_pItem);
-}
-
-
-EWXWEXPORT(wxKeyEvent*,wxTreeEvent_GetKeyEvent)(wxTreeEvent* self)
-{
-	return (wxKeyEvent*)&(self->GetKeyEvent());
-}
-
-EWXWEXPORT(bool,wxTreeEvent_IsEditCancelled)(wxTreeEvent* self)
-{
-	return self->IsEditCancelled();
-}
-
-EWXWEXPORT(void,wxTreeEvent_Allow)(wxTreeEvent* self)
-{
-	self->Allow();
-}
-
-
-EWXWEXPORT(wxTreeCtrl*,wxTreeCtrl_Create)(void* _obj,void* _cmp,wxWindow* _prt,int _id,int _lft,int _top,int _wdt,int _hgt,int _stl)
-{
-	return new wxTreeCtrl (_prt, _id, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl, wxDefaultValidator);
-}
-
-EWXWEXPORT(wxTreeCtrl*,wxTreeCtrl_Create2)(wxWindow* _prt,int _id,int _lft,int _top,int _wdt,int _hgt,int _stl)
-{
-	return new wxTreeCtrl (_prt, _id, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl, wxDefaultValidator);
-}
-
-EWXWEXPORT(int,wxTreeCtrl_GetCount)(wxTreeCtrl* self)
-{
-	int result =(int)self->GetCount();
-#ifdef __WXGTK__
-	wxTreeItemId t = self->GetRootItem();
-	if (t.IsOk()) result++;
-#endif
-	return result;
-}
-	
-EWXWEXPORT(int,wxTreeCtrl_GetIndent)(wxTreeCtrl* self)
-{
-	return self->GetIndent();
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SetIndent)(wxTreeCtrl* self,int indent)
-{
-	self->SetIndent(indent);
-}
-	
-EWXWEXPORT(int,wxTreeCtrl_GetSpacing)(wxTreeCtrl* self)
-{
-	return (int)self->GetSpacing();
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SetSpacing)(wxTreeCtrl* self,int spacing)
-{
-	self->SetSpacing(spacing);
-}
-	
-EWXWEXPORT(wxImageList*,wxTreeCtrl_GetImageList)(wxTreeCtrl* self)
-{
-	return self->GetImageList();
-}
-	
-EWXWEXPORT(wxImageList*,wxTreeCtrl_GetStateImageList)(wxTreeCtrl* self)
-{
-	return self->GetStateImageList();
-}
-
-EWXWEXPORT(void,wxTreeCtrl_AssignImageList)(wxTreeCtrl* self,wxImageList* imageList)
-{
-	self->AssignImageList(imageList);
-}
-
-EWXWEXPORT(void,wxTreeCtrl_AssignStateImageList)(wxTreeCtrl* self,wxImageList* imageList)
-{
-	self->AssignStateImageList(imageList);
-}
-
-/*
-EWXWEXPORT(wxImageList*,wxTreeCtrl_GetButtonsImageList)(wxTreeCtrl* self)
-{
-	return self->GetButtonsImageList();
-}
-
-EWXWEXPORT(void,wxTreeCtrl_SetButtonsImageList)(wxTreeCtrl* self,wxImageList* imageList)
-{
-	self->SetButtonsImageList(imageList);
-}
-
-EWXWEXPORT(void,wxTreeCtrl_AssignButtonsImageList)(wxTreeCtrl* self,wxImageList* imageList)
-{
-	self->AssignButtonsImageList(imageList);
-}
-*/
-
-EWXWEXPORT(void,wxTreeCtrl_SetImageList)(wxTreeCtrl* self,wxImageList* imageList)
-{
-	self->SetImageList(imageList);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SetStateImageList)(wxTreeCtrl* self,wxImageList* imageList)
-{
-	self->SetStateImageList(imageList);
-}
-	
-EWXWEXPORT(wxString*,wxTreeCtrl_GetItemText)(wxTreeCtrl* self,void* item)
-{
-	wxString *result = new wxString();
-	*result = self->GetItemText(*(wxTreeItemId*)item);
-	return result;
-}
-	
-EWXWEXPORT(int,wxTreeCtrl_GetItemImage)(wxTreeCtrl* self,wxTreeItemId* item,int which)
-{
-	return self->GetItemImage(*item, (wxTreeItemIcon) which);
-}
-	
-EWXWEXPORT(void*,wxTreeCtrl_GetItemData)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	return ((wxcTreeItemData*)self->GetItemData(* item))->GetClientClosure();
-}
-
-EWXWEXPORT(void*,wxTreeCtrl_GetItemClientClosure)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	return ((wxcTreeItemData*)self->GetItemData(* item))->GetClientClosure();
-}
-
-	
-EWXWEXPORT(void,wxTreeCtrl_SetItemText)(wxTreeCtrl* self,wxTreeItemId* item,wxString* text)
-{
-	self->SetItemText(* item,*text);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SetItemImage)(wxTreeCtrl* self,wxTreeItemId* item,int image,int which)
-{
-	self->SetItemImage(*item, image, (wxTreeItemIcon)which);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SetItemData)(wxTreeCtrl* self,wxTreeItemId* item,wxClosure* closure)
-{
-	self->SetItemData(*item, new wxcTreeItemData (closure));
-}
-
-EWXWEXPORT(void,wxTreeCtrl_SetItemClientClosure)(wxTreeCtrl* self,wxTreeItemId* item,wxClosure* closure)
-{
-        wxTreeItemData* oldData = self->GetItemData(* item);
-        /* bit unsafe: might delete twice but it is definitely ok on MSW 2.4.1 */
-        if (oldData) delete oldData;
-	self->SetItemData(* item, new wxcTreeItemData (closure));
-}
-
-	
-EWXWEXPORT(void,wxTreeCtrl_SetItemHasChildren)(wxTreeCtrl* self,wxTreeItemId* item,bool has)
-{
-	self->SetItemHasChildren(*item, has);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SetItemBold)(wxTreeCtrl* self,wxTreeItemId* item,bool bold)
-{
-	self->SetItemBold(* item, bold);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SetItemDropHighlight)(wxTreeCtrl* self,wxTreeItemId* item,bool highlight)
-{
-#ifdef __WIN32__
-	self->SetItemDropHighlight(* item, highlight);
-#endif
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SetItemTextColour)(wxTreeCtrl* self,wxTreeItemId* item,wxColour* col)
-{
-	self->SetItemTextColour(*item,*col);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SetItemBackgroundColour)(wxTreeCtrl* self,wxTreeItemId* item,wxColour* col)
-{
-	self->SetItemBackgroundColour(* item,* col);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SetItemFont)(wxTreeCtrl* self,wxTreeItemId* item,wxFont* font)
-{
-	self->SetItemFont(* item,*font);
-}
-	
-EWXWEXPORT(bool,wxTreeCtrl_IsVisible)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	return self->IsVisible(*item);
-}
-	
-EWXWEXPORT(int,wxTreeCtrl_ItemHasChildren)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	return (int)self->ItemHasChildren(* item);
-}
-	
-EWXWEXPORT(bool,wxTreeCtrl_IsExpanded)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	return self->IsExpanded(*item);
-}
-	
-EWXWEXPORT(bool,wxTreeCtrl_IsSelected)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	return self->IsSelected(*item);
-}
-	
-EWXWEXPORT(bool,wxTreeCtrl_IsBold)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	return self->IsBold(*item);
-}
-	
-EWXWEXPORT(int,wxTreeCtrl_GetChildrenCount)(wxTreeCtrl* self,wxTreeItemId* item,int recursively)
-{
-	return self->GetChildrenCount(* item, recursively);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_GetRootItem)(wxTreeCtrl* self,wxTreeItemId* _item)
-{
-	*_item = self->GetRootItem();
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_GetSelection)(wxTreeCtrl* self,wxTreeItemId* _item)
-{
-	*_item = self->GetSelection();
-}
-	
-EWXWEXPORT(int,wxTreeCtrl_GetSelections)(wxTreeCtrl* self,intptr_t* selections)
-{
-	int result = 0;
-	wxArrayTreeItemIds sel;
-	result = self->GetSelections(sel);
-	
-	if (selections)
-	{
-          for (int i = 0; i < result; i++) {
-            /*
-			*(((wxTreeItemId**)selections)[i]) = sel[i];
-            */
-#if (wxVERSION_NUMBER < 2800)
-	    #if wxCHECK_VERSION(2,5,0)
-            selections[i] = (intptr_t)(((wxTreeItemId*)sel[i])->m_pItem);
-        #else
-	        selections[i] = (intptr_t)(sel[i].m_pItem);
-	    #endif
-#else
-            selections[i] = (intptr_t)(((wxTreeItemId)sel[i]).m_pItem);
-#endif
-	  }
-	}
-	return result;
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_GetParent)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
-{
-#if wxVERSION_NUMBER < 2400
-	*_item = self->GetParent(*item);
-#else
-	*_item = self->GetItemParent(*item);
-#endif
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_GetFirstChild)(wxTreeCtrl* self,wxTreeItemId* item,void* cookie,wxTreeItemId* _item)
-{
-#if wxVERSION_NUMBER < 2600
-	*_item = self->GetFirstChild(*item,*((long*)cookie));
-#else
-	*_item = self->GetFirstChild(*item, cookie);
-#endif
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_GetNextChild)(wxTreeCtrl* self,wxTreeItemId* item,void* cookie,wxTreeItemId* _item)
-{
-#if wxVERSION_NUMBER < 2600
-	*_item = self->GetNextChild(*item,*((long*)cookie));
-#else
-	*_item = self->GetNextChild(*item, cookie);
-#endif
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_GetLastChild)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
-{
-	*_item = self->GetLastChild(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_GetNextSibling)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
-{
-	*_item = self->GetNextSibling(* item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_GetPrevSibling)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
-{
-	*_item = self->GetPrevSibling(* item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_GetFirstVisibleItem)(wxTreeCtrl* self,wxTreeItemId* _item)
-{
-	*_item = self->GetFirstVisibleItem();
-}
-
-EWXWEXPORT(void,wxTreeCtrl_GetNextVisible)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
-{
-	*_item = self->GetNextVisible(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_GetPrevVisible)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
-{
-	*_item = self->GetPrevVisible(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_AddRoot)(wxTreeCtrl* self,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
-{
-	*_item = self->AddRoot(*text, image, selectedImage, new wxcTreeItemData(data));
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_PrependItem)(wxTreeCtrl* self,wxTreeItemId* parent,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
-{
-	*_item = self->PrependItem(*parent,*text, image, selectedImage, new wxcTreeItemData(data));
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_InsertItem)(wxTreeCtrl* self,wxTreeItemId* parent,wxTreeItemId* idPrevious,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
-{
-	*_item = self->InsertItem(*parent,*idPrevious,*text, image, selectedImage, new wxcTreeItemData(data));
-}
-
-EWXWEXPORT(void,wxTreeCtrl_InsertItem2)(wxTreeCtrl* self,wxTreeItemId* parent,wxTreeItemId* idPrevious,wxString* text,int image,int selectedImage,wxClosure* closure,wxTreeItemId* _item)
-{
-	*_item = self->InsertItem(*parent,*idPrevious,*text, image, selectedImage, new wxcTreeItemData(closure));
-}
-
-	
-EWXWEXPORT(void,wxTreeCtrl_InsertItemByIndex)(wxTreeCtrl* self,wxTreeItemId* parent,int index,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
-{
-	*_item = self->InsertItem(*parent, index,*text, image, selectedImage, new wxcTreeItemData(data));
-}
-
-EWXWEXPORT(void,wxTreeCtrl_InsertItemByIndex2)(wxTreeCtrl* self,wxTreeItemId* parent,int index,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
-{
-	*_item = self->InsertItem(*parent, index,*text, image, selectedImage, new wxcTreeItemData(data));
-}
-
-	
-EWXWEXPORT(void,wxTreeCtrl_AppendItem)(wxTreeCtrl* self,wxTreeItemId* parent,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
-{
-	*_item = self->AppendItem(* parent,*text, image, selectedImage, new wxcTreeItemData(data));
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_Delete)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->Delete(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_DeleteChildren)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->DeleteChildren(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_DeleteAllItems)(wxTreeCtrl* self)
-{
-	self->DeleteAllItems();
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_Expand)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->Expand(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_Collapse)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->Collapse(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_CollapseAndReset)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->CollapseAndReset(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_Toggle)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->Toggle(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_Unselect)(wxTreeCtrl* self)
-{
-	self->Unselect();
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_UnselectAll)(wxTreeCtrl* self)
-{
-	self->UnselectAll();
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SelectItem)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->SelectItem(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_EnsureVisible)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->EnsureVisible(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_ScrollTo)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->ScrollTo(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_EditLabel)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->EditLabel(*item);
-}
-	
-EWXWEXPORT(void*,wxTreeCtrl_GetEditControl)(wxTreeCtrl* self)
-{
-#ifdef __WIN32__
-	return (void*)self->GetEditControl();
-#else
-	return NULL;
-#endif
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_EndEditLabel)(wxTreeCtrl* self,wxTreeItemId* item,bool discardChanges)
-{
-#ifdef __WIN32__
-	self->EndEditLabel(*item, discardChanges);
-#endif
-}
-	
-EWXWEXPORT(int,wxTreeCtrl_OnCompareItems)(wxTreeCtrl* self,wxTreeItemId* item1,wxTreeItemId* item2)
-{
-	return self->OnCompareItems(*item1,*item2);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_SortChildren)(wxTreeCtrl* self,wxTreeItemId* item)
-{
-	self->SortChildren(*item);
-}
-	
-EWXWEXPORT(void,wxTreeCtrl_HitTest)(wxTreeCtrl* self,int _x,int _y,void* flags,wxTreeItemId* _item)
-{
-	*_item = self->HitTest(wxPoint(_x, _y),*((int*)flags));
-}
-	
-EWXWEXPORT(wxRect*,wxTreeCtrl_GetBoundingRect)(wxTreeCtrl* self,wxTreeItemId* item,bool textOnly)
-{
-	wxRect * const rct = new wxRect(-1,-1,-1,-1);
-	self->GetBoundingRect(*item, *rct, textOnly);
-	return rct;
-}
-	
-}
+#include "wrapper.h"
+
+class wxcTreeItemData : public wxTreeItemData
+{
+  private:
+    wxClosure* m_closure;
+
+  public:
+    wxcTreeItemData( wxClosure* closure ) { 
+      m_closure = closure;
+    }
+
+    ~wxcTreeItemData() {
+      if (m_closure) delete m_closure;
+    }
+
+    wxClosure* GetClientClosure() { 
+      return m_closure; 
+    }
+
+    void SetClientClosure( wxClosure* closure ) {
+      if (m_closure) delete m_closure;
+      m_closure = closure;
+    }
+};
+
+extern "C"
+{
+
+EWXWEXPORT(wxcTreeItemData*,wxcTreeItemData_Create)(wxClosure* closure)
+{
+	return new wxcTreeItemData(closure);
+}
+
+EWXWEXPORT(wxClosure*,wxcTreeItemData_GetClientClosure)(wxcTreeItemData* self)
+{
+	return self->GetClientClosure();
+}
+
+EWXWEXPORT(void,wxcTreeItemData_SetClientClosure)(wxcTreeItemData* self,wxClosure* closure)
+{
+	self->SetClientClosure(closure);
+}
+
+EWXWEXPORT(void*,wxTreeItemId_Create)()
+{
+	return new wxTreeItemId();
+}
+
+EWXWEXPORT(void,wxTreeItemId_Delete)(wxTreeItemId* self)
+{
+	delete self;
+}
+
+EWXWEXPORT(bool,wxTreeItemId_IsOk)(wxTreeItemId* self)
+{
+	return self->IsOk();
+}
+
+EWXWEXPORT(wxTreeItemId*,wxTreeItemId_Clone)(wxTreeItemId* self)
+{
+	wxTreeItemId* clone = new wxTreeItemId();
+	*clone = *self;
+	return clone;
+}
+
+// FIXME: wxHaskell uses this function in Graphics.UI.WXCore.WxcTypes.withTreeItemIdPtr
+// to make wxTreeItemId.
+//
+// But wxWidgets' document says: wxTreemItemIds are not meant to be constructed
+// explicitly by the user; they are returned by the wxTreeCtrl functions instead.
+//
+// http://www.wxwindows.org/manuals/2.8/wx_wxtreeitemid.html#wxtreeitemid
+//
+// So we must remove this function and replace treeItemId implementation in the
+// funture.
+EWXWEXPORT(wxTreeItemId*,wxTreeItemId_CreateFromValue)(intptr_t value)
+{
+#if wxVERSION_NUMBER < 2800
+	return new wxTreeItemId( value );
+#else
+	// TODO: This function should be removed. No longer any equivalent in wxWidgets
+	wxTreeItemId *item = new wxTreeItemId();
+	item->m_pItem = reinterpret_cast<wxTreeItemIdValue>(value);
+	return item;
+#endif
+}
+
+EWXWEXPORT(intptr_t,wxTreeItemId_GetValue)(wxTreeItemId* self)
+{
+	return (intptr_t)(self->m_pItem);
+}
+
+
+EWXWEXPORT(wxKeyEvent*,wxTreeEvent_GetKeyEvent)(wxTreeEvent* self)
+{
+	return (wxKeyEvent*)&(self->GetKeyEvent());
+}
+
+EWXWEXPORT(bool,wxTreeEvent_IsEditCancelled)(wxTreeEvent* self)
+{
+	return self->IsEditCancelled();
+}
+
+EWXWEXPORT(void,wxTreeEvent_Allow)(wxTreeEvent* self)
+{
+	self->Allow();
+}
+
+
+EWXWEXPORT(wxTreeCtrl*,wxTreeCtrl_Create)(void* _obj,void* _cmp,wxWindow* _prt,int _id,int _lft,int _top,int _wdt,int _hgt,int _stl)
+{
+	return new wxTreeCtrl (_prt, _id, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl, wxDefaultValidator);
+}
+
+EWXWEXPORT(wxTreeCtrl*,wxTreeCtrl_Create2)(wxWindow* _prt,int _id,int _lft,int _top,int _wdt,int _hgt,int _stl)
+{
+	return new wxTreeCtrl (_prt, _id, wxPoint(_lft, _top), wxSize(_wdt, _hgt), _stl, wxDefaultValidator);
+}
+
+EWXWEXPORT(int,wxTreeCtrl_GetCount)(wxTreeCtrl* self)
+{
+	int result =(int)self->GetCount();
+#ifdef __WXGTK__
+	wxTreeItemId t = self->GetRootItem();
+	if (t.IsOk()) result++;
+#endif
+	return result;
+}
+	
+EWXWEXPORT(int,wxTreeCtrl_GetIndent)(wxTreeCtrl* self)
+{
+	return self->GetIndent();
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SetIndent)(wxTreeCtrl* self,int indent)
+{
+	self->SetIndent(indent);
+}
+	
+EWXWEXPORT(int,wxTreeCtrl_GetSpacing)(wxTreeCtrl* self)
+{
+	return (int)self->GetSpacing();
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SetSpacing)(wxTreeCtrl* self,int spacing)
+{
+	self->SetSpacing(spacing);
+}
+	
+EWXWEXPORT(wxImageList*,wxTreeCtrl_GetImageList)(wxTreeCtrl* self)
+{
+	return self->GetImageList();
+}
+	
+EWXWEXPORT(wxImageList*,wxTreeCtrl_GetStateImageList)(wxTreeCtrl* self)
+{
+	return self->GetStateImageList();
+}
+
+EWXWEXPORT(void,wxTreeCtrl_AssignImageList)(wxTreeCtrl* self,wxImageList* imageList)
+{
+	self->AssignImageList(imageList);
+}
+
+EWXWEXPORT(void,wxTreeCtrl_AssignStateImageList)(wxTreeCtrl* self,wxImageList* imageList)
+{
+	self->AssignStateImageList(imageList);
+}
+
+/*
+EWXWEXPORT(wxImageList*,wxTreeCtrl_GetButtonsImageList)(wxTreeCtrl* self)
+{
+	return self->GetButtonsImageList();
+}
+
+EWXWEXPORT(void,wxTreeCtrl_SetButtonsImageList)(wxTreeCtrl* self,wxImageList* imageList)
+{
+	self->SetButtonsImageList(imageList);
+}
+
+EWXWEXPORT(void,wxTreeCtrl_AssignButtonsImageList)(wxTreeCtrl* self,wxImageList* imageList)
+{
+	self->AssignButtonsImageList(imageList);
+}
+*/
+
+EWXWEXPORT(void,wxTreeCtrl_SetImageList)(wxTreeCtrl* self,wxImageList* imageList)
+{
+	self->SetImageList(imageList);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SetStateImageList)(wxTreeCtrl* self,wxImageList* imageList)
+{
+	self->SetStateImageList(imageList);
+}
+	
+EWXWEXPORT(wxString*,wxTreeCtrl_GetItemText)(wxTreeCtrl* self,void* item)
+{
+	wxString *result = new wxString();
+	*result = self->GetItemText(*(wxTreeItemId*)item);
+	return result;
+}
+	
+EWXWEXPORT(int,wxTreeCtrl_GetItemImage)(wxTreeCtrl* self,wxTreeItemId* item,int which)
+{
+	return self->GetItemImage(*item, (wxTreeItemIcon) which);
+}
+	
+EWXWEXPORT(void*,wxTreeCtrl_GetItemData)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	return ((wxcTreeItemData*)self->GetItemData(* item))->GetClientClosure();
+}
+
+EWXWEXPORT(void*,wxTreeCtrl_GetItemClientClosure)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	return ((wxcTreeItemData*)self->GetItemData(* item))->GetClientClosure();
+}
+
+	
+EWXWEXPORT(void,wxTreeCtrl_SetItemText)(wxTreeCtrl* self,wxTreeItemId* item,wxString* text)
+{
+	self->SetItemText(* item,*text);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SetItemImage)(wxTreeCtrl* self,wxTreeItemId* item,int image,int which)
+{
+	self->SetItemImage(*item, image, (wxTreeItemIcon)which);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SetItemData)(wxTreeCtrl* self,wxTreeItemId* item,wxClosure* closure)
+{
+	self->SetItemData(*item, new wxcTreeItemData (closure));
+}
+
+EWXWEXPORT(void,wxTreeCtrl_SetItemClientClosure)(wxTreeCtrl* self,wxTreeItemId* item,wxClosure* closure)
+{
+        wxTreeItemData* oldData = self->GetItemData(* item);
+        /* bit unsafe: might delete twice but it is definitely ok on MSW 2.4.1 */
+        if (oldData) delete oldData;
+	self->SetItemData(* item, new wxcTreeItemData (closure));
+}
+
+	
+EWXWEXPORT(void,wxTreeCtrl_SetItemHasChildren)(wxTreeCtrl* self,wxTreeItemId* item,bool has)
+{
+	self->SetItemHasChildren(*item, has);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SetItemBold)(wxTreeCtrl* self,wxTreeItemId* item,bool bold)
+{
+	self->SetItemBold(* item, bold);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SetItemDropHighlight)(wxTreeCtrl* self,wxTreeItemId* item,bool highlight)
+{
+#ifdef __WIN32__
+	self->SetItemDropHighlight(* item, highlight);
+#endif
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SetItemTextColour)(wxTreeCtrl* self,wxTreeItemId* item,wxColour* col)
+{
+	self->SetItemTextColour(*item,*col);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SetItemBackgroundColour)(wxTreeCtrl* self,wxTreeItemId* item,wxColour* col)
+{
+	self->SetItemBackgroundColour(* item,* col);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SetItemFont)(wxTreeCtrl* self,wxTreeItemId* item,wxFont* font)
+{
+	self->SetItemFont(* item,*font);
+}
+	
+EWXWEXPORT(bool,wxTreeCtrl_IsVisible)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	return self->IsVisible(*item);
+}
+	
+EWXWEXPORT(int,wxTreeCtrl_ItemHasChildren)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	return (int)self->ItemHasChildren(* item);
+}
+	
+EWXWEXPORT(bool,wxTreeCtrl_IsExpanded)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	return self->IsExpanded(*item);
+}
+	
+EWXWEXPORT(bool,wxTreeCtrl_IsSelected)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	return self->IsSelected(*item);
+}
+	
+EWXWEXPORT(bool,wxTreeCtrl_IsBold)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	return self->IsBold(*item);
+}
+	
+EWXWEXPORT(int,wxTreeCtrl_GetChildrenCount)(wxTreeCtrl* self,wxTreeItemId* item,int recursively)
+{
+	return self->GetChildrenCount(* item, recursively);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_GetRootItem)(wxTreeCtrl* self,wxTreeItemId* _item)
+{
+	*_item = self->GetRootItem();
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_GetSelection)(wxTreeCtrl* self,wxTreeItemId* _item)
+{
+	*_item = self->GetSelection();
+}
+	
+EWXWEXPORT(int,wxTreeCtrl_GetSelections)(wxTreeCtrl* self,intptr_t* selections)
+{
+	int result = 0;
+	wxArrayTreeItemIds sel;
+	result = self->GetSelections(sel);
+	
+	if (selections)
+	{
+          for (int i = 0; i < result; i++) {
+            /*
+			*(((wxTreeItemId**)selections)[i]) = sel[i];
+            */
+#if (wxVERSION_NUMBER < 2800)
+	    #if wxCHECK_VERSION(2,5,0)
+            selections[i] = (intptr_t)(((wxTreeItemId*)sel[i])->m_pItem);
+        #else
+	        selections[i] = (intptr_t)(sel[i].m_pItem);
+	    #endif
+#else
+            selections[i] = (intptr_t)(((wxTreeItemId)sel[i]).m_pItem);
+#endif
+	  }
+	}
+	return result;
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_GetParent)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
+{
+#if wxVERSION_NUMBER < 2400
+	*_item = self->GetParent(*item);
+#else
+	*_item = self->GetItemParent(*item);
+#endif
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_GetFirstChild)(wxTreeCtrl* self,wxTreeItemId* item,void* cookie,wxTreeItemId* _item)
+{
+#if wxVERSION_NUMBER < 2600
+	*_item = self->GetFirstChild(*item,*((long*)cookie));
+#else
+	*_item = self->GetFirstChild(*item, cookie);
+#endif
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_GetNextChild)(wxTreeCtrl* self,wxTreeItemId* item,void* cookie,wxTreeItemId* _item)
+{
+#if wxVERSION_NUMBER < 2600
+	*_item = self->GetNextChild(*item,*((long*)cookie));
+#else
+	*_item = self->GetNextChild(*item, cookie);
+#endif
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_GetLastChild)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
+{
+	*_item = self->GetLastChild(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_GetNextSibling)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
+{
+	*_item = self->GetNextSibling(* item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_GetPrevSibling)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
+{
+	*_item = self->GetPrevSibling(* item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_GetFirstVisibleItem)(wxTreeCtrl* self,wxTreeItemId* _item)
+{
+	*_item = self->GetFirstVisibleItem();
+}
+
+EWXWEXPORT(void,wxTreeCtrl_GetNextVisible)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
+{
+	*_item = self->GetNextVisible(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_GetPrevVisible)(wxTreeCtrl* self,wxTreeItemId* item,wxTreeItemId* _item)
+{
+	*_item = self->GetPrevVisible(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_AddRoot)(wxTreeCtrl* self,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
+{
+	*_item = self->AddRoot(*text, image, selectedImage, new wxcTreeItemData(data));
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_PrependItem)(wxTreeCtrl* self,wxTreeItemId* parent,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
+{
+	*_item = self->PrependItem(*parent,*text, image, selectedImage, new wxcTreeItemData(data));
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_InsertItem)(wxTreeCtrl* self,wxTreeItemId* parent,wxTreeItemId* idPrevious,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
+{
+	*_item = self->InsertItem(*parent,*idPrevious,*text, image, selectedImage, new wxcTreeItemData(data));
+}
+
+EWXWEXPORT(void,wxTreeCtrl_InsertItem2)(wxTreeCtrl* self,wxTreeItemId* parent,wxTreeItemId* idPrevious,wxString* text,int image,int selectedImage,wxClosure* closure,wxTreeItemId* _item)
+{
+	*_item = self->InsertItem(*parent,*idPrevious,*text, image, selectedImage, new wxcTreeItemData(closure));
+}
+
+	
+EWXWEXPORT(void,wxTreeCtrl_InsertItemByIndex)(wxTreeCtrl* self,wxTreeItemId* parent,int index,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
+{
+	*_item = self->InsertItem(*parent, index,*text, image, selectedImage, new wxcTreeItemData(data));
+}
+
+EWXWEXPORT(void,wxTreeCtrl_InsertItemByIndex2)(wxTreeCtrl* self,wxTreeItemId* parent,int index,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
+{
+	*_item = self->InsertItem(*parent, index,*text, image, selectedImage, new wxcTreeItemData(data));
+}
+
+	
+EWXWEXPORT(void,wxTreeCtrl_AppendItem)(wxTreeCtrl* self,wxTreeItemId* parent,wxString* text,int image,int selectedImage,wxClosure* data,wxTreeItemId* _item)
+{
+	*_item = self->AppendItem(* parent,*text, image, selectedImage, new wxcTreeItemData(data));
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_Delete)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->Delete(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_DeleteChildren)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->DeleteChildren(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_DeleteAllItems)(wxTreeCtrl* self)
+{
+	self->DeleteAllItems();
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_Expand)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->Expand(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_Collapse)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->Collapse(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_CollapseAndReset)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->CollapseAndReset(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_Toggle)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->Toggle(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_Unselect)(wxTreeCtrl* self)
+{
+	self->Unselect();
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_UnselectAll)(wxTreeCtrl* self)
+{
+	self->UnselectAll();
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SelectItem)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->SelectItem(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_EnsureVisible)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->EnsureVisible(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_ScrollTo)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->ScrollTo(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_EditLabel)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->EditLabel(*item);
+}
+	
+EWXWEXPORT(void*,wxTreeCtrl_GetEditControl)(wxTreeCtrl* self)
+{
+#ifdef __WIN32__
+	return (void*)self->GetEditControl();
+#else
+	return NULL;
+#endif
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_EndEditLabel)(wxTreeCtrl* self,wxTreeItemId* item,bool discardChanges)
+{
+#ifdef __WIN32__
+	self->EndEditLabel(*item, discardChanges);
+#endif
+}
+	
+EWXWEXPORT(int,wxTreeCtrl_OnCompareItems)(wxTreeCtrl* self,wxTreeItemId* item1,wxTreeItemId* item2)
+{
+	return self->OnCompareItems(*item1,*item2);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_SortChildren)(wxTreeCtrl* self,wxTreeItemId* item)
+{
+	self->SortChildren(*item);
+}
+	
+EWXWEXPORT(void,wxTreeCtrl_HitTest)(wxTreeCtrl* self,int _x,int _y,void* flags,wxTreeItemId* _item)
+{
+	*_item = self->HitTest(wxPoint(_x, _y),*((int*)flags));
+}
+	
+EWXWEXPORT(wxRect*,wxTreeCtrl_GetBoundingRect)(wxTreeCtrl* self,wxTreeItemId* item,bool textOnly)
+{
+	wxRect * const rct = new wxRect(-1,-1,-1,-1);
+	self->GetBoundingRect(*item, *rct, textOnly);
+	return rct;
+}
+	
+}
diff --git a/src/cpp/wrapper.cpp b/src/cpp/wrapper.cpp
--- a/src/cpp/wrapper.cpp
+++ b/src/cpp/wrapper.cpp
@@ -1,756 +1,756 @@
-#include "wrapper.h"
-#include "wx/tooltip.h"
-#include "wx/dynlib.h"
-#include "wx/fs_zip.h"
-
-/* quantize is not supported on wxGTK 2.4.0 */
-#if !defined(__WXGTK__) || (wxVERSION_NUMBER > 2400)
-#  include "wx/quantize.h"
-#endif
-
-/*-----------------------------------------------------------------------------
-    Miscellaneous helper functions
------------------------------------------------------------------------------*/
-
-int copyStrToBuf(void* dst, wxString& src) {
-  if (dst) wxStrcpy ((wxChar*) dst, src.c_str());
-  return src.Length();
-}
-
-/*-----------------------------------------------------------------------------
-    The global idle timer
------------------------------------------------------------------------------*/
-class wxIdleTimer : public wxTimer
-{
-public:
-  void Notify() {
-    wxWakeUpIdle();   /* send idle events */
-  }
-};
-
-wxIdleTimer* idleTimer = NULL;
-
-void initIdleTimer()
-{
-  idleTimer = new wxIdleTimer();
-}
-
-void doneIdleTimer()
-{
-  if (idleTimer) {
-    idleTimer->Stop();
-    delete idleTimer;
-    idleTimer = NULL;
-  }
-}
-
-
-
-/*-----------------------------------------------------------------------------
-    The main application
------------------------------------------------------------------------------*/
-wxClosure* initClosure = NULL;
-int APPTerminating = 0;
-
-IMPLEMENT_APP_NO_MAIN(ELJApp);
-
-bool ELJApp::OnInit (void)
-{
-  wxInitAllImageHandlers();
-  initIdleTimer();
-  if (initClosure) {
-    delete initClosure; /* special: init is only called once with a NULL event */
-    initClosure=NULL;
-  }
-  return true;
-}
-
-int ELJApp::OnExit( void )
-{
-  doneIdleTimer();
-  return wxApp::OnExit();
-}
-
-void ELJApp::InitZipFileSystem()
-{
-        static int InitZIPFileSystem_done = 0;
-
-        if (!InitZIPFileSystem_done)
-        {
-                InitZIPFileSystem_done = 1;
-                wxFileSystem::AddHandler(new wxZipFSHandler());
-        }
-}
-
-void ELJApp::InitImageHandlers()
-{
-        static int InitImageHandlers_done = 0;
-
-        if (!InitImageHandlers_done)
-        {
-                InitImageHandlers_done = 1;
-                wxInitAllImageHandlers();
-        }
-}
-
-
-/* "getCallback" is a hack to retrieve the callback object for a certain event
-   see also "wxEvtHandler_FindClosure"
-*/
-static wxCallback** getCallback = NULL;
-
-void ELJApp::HandleEvent(wxEvent& _evt)
-{
-  wxCallback* callback = (wxCallback*)(_evt.m_callbackUserData);
-  if (getCallback) {
-    *getCallback = callback;    /* retrieve the callback */
-  }
-  else if (callback) {
-    callback->Invoke( &_evt );  /* normal: invoke the callback function */
-  }
-}
-
-/*-----------------------------------------------------------------------------
-    Closures
------------------------------------------------------------------------------*/
-wxClosure::wxClosure( ClosureFun fun, void* data )
-{
-  m_refcount = 0;
-  m_fun  = fun;
-  m_data = data;
-}
-
-wxClosure::~wxClosure()
-{
-  /* call for the last time with a NULL event. Give opportunity to clean up resources */
-  if (m_fun) { m_fun((void*)m_fun, m_data, NULL); }
-}
-
-void wxClosure::IncRef()
-{
-  m_refcount++;
-}
-
-void wxClosure::DecRef()
-{
-  m_refcount--;
-  if (m_refcount <= 0) {
-    delete this;
-  }
-}
-
-void wxClosure::Invoke( wxEvent* event )
-{
-  if (event && m_fun) { m_fun((void*)m_fun, m_data, event); }
-};
-
-void* wxClosure::GetData()
-{
-  return m_data;
-}
-
-/*-----------------------------------------------------------------------------
-    callback: a reference counting wrapper for a closure
------------------------------------------------------------------------------*/
-wxCallback::wxCallback( wxClosure* closure )
-{
-  m_closure = closure;
-  m_closure->IncRef();
-}
-
-wxCallback::~wxCallback()
-{
-  m_closure->DecRef();
-}
-
-void wxCallback::Invoke( wxEvent* event )
-{
-  m_closure->Invoke(event);
-}
-
-wxClosure* wxCallback::GetClosure()
-{
-  return m_closure;
-}
-
-
-
-/*-----------------------------------------------------------------------------
-    wrapper for objectRefData
------------------------------------------------------------------------------*/
-class wxcClosureRefData : public wxObjectRefData
-{
-  private:
-    wxClosure*  m_closure;
-  public:
-    wxcClosureRefData( wxClosure* closure );
-    ~wxcClosureRefData();
-
-    wxClosure* GetClosure();
-};
-
-wxcClosureRefData::wxcClosureRefData( wxClosure* closure )
-{
-  m_closure = closure;
-}
-
-wxcClosureRefData::~wxcClosureRefData()
-{
-/* printf("delete wxc-ClosureRefData\n");  */
-  if (m_closure) { delete m_closure; m_closure = NULL; }
-}
-
-wxClosure* wxcClosureRefData::GetClosure()
-{
-  return m_closure;
-}
-
-
-/*-----------------------------------------------------------------------------
-    C interface to event handling and closures.
------------------------------------------------------------------------------*/
-extern "C"
-{
-/* event handling */
-EWXWEXPORT(int,wxEvtHandler_Connect)(void* _obj,int first,int last,int type,wxClosure* closure)
-{
-  wxCallback* callback = new wxCallback(closure);
-  ((wxEvtHandler*)_obj)->Connect(first, last, type, (wxObjectEventFunction)&ELJApp::HandleEvent, callback);
-  return 0;
-}
-
-EWXWEXPORT(wxClosure*,wxEvtHandler_GetClosure)(wxEvtHandler* evtHandler,int id,int type)
-{
-  wxCommandEvent  event(type,id);     //We can use any kind of event here
-  wxCallback*     callback = NULL;
-  bool            found    = false;
-
-  //set the global variable 'getCallback' so HandleEvent
-  //knows we just want to know the closure. Unfortunately, this
-  //seems the cleanest way to retrieve the callback in wxWidgets.
-  getCallback = &callback;
-  // Bugfix: see www.mail-archive.com/wxhaskell-devel@lists.sourceforge.net/msg00577.html
-  // On entry, Dynamic event table may have no bound events
-  // Bug reproduces only on Debug builds, and seems to be ignorable
-  if (evtHandler->GetDynamicEventTable() != NULL)
-    found = evtHandler->SearchDynamicEventTable( event );
-  getCallback = NULL;
-
-  if (found && callback)
-    return callback->GetClosure();
-  else
-    return NULL;
-}
-
-/* closures */
-EWXWEXPORT(wxClosure*,wxClosure_Create)(ClosureFun fun,void* data)
-{
-  return new wxClosure(fun,data);
-}
-
-EWXWEXPORT(void*,wxClosure_GetData)(wxClosure* closure)
-{
-  return closure->GetData();
-}
-
-/* client data */
-EWXWEXPORT(void*,wxEvtHandler_GetClientClosure)(void* _obj)
-{
-  return (void*)((wxEvtHandler*)_obj)->GetClientObject();
-}
-
-EWXWEXPORT(void,wxEvtHandler_SetClientClosure)(void* _obj,wxClosure* closure)
-{
-  ((wxEvtHandler*)_obj)->SetClientObject(closure);
-}
-
-EWXWEXPORT(wxClosure*,wxObject_GetClientClosure)(wxObject* _obj)
-{
-  wxcClosureRefData* refData = (wxcClosureRefData*)_obj->GetRefData();
-  if (refData)
-    return refData->GetClosure();
-  else
-    return NULL;
-}
-
-EWXWEXPORT(void,wxObject_SetClientClosure)(wxObject* _obj,wxClosure* closure)
-{
-  wxcClosureRefData* refData;
-  /* wxASSERT(_obj->GetRefData() == NULL); */
-  _obj->UnRef();
-  wxASSERT(_obj->GetRefData() == NULL);
-  refData = new wxcClosureRefData( closure );
-  _obj->SetRefData( refData );    //set new data -- ref count must be 1 as setRefData doesn't increase it.  
-}
-
-/*-----------------------------------------------------------------------------
-    C interface to the idle timer
------------------------------------------------------------------------------*/
-EWXWEXPORT(int,ELJApp_GetIdleInterval)()
-{
-  if (!idleTimer) return 0;
-
-  if (idleTimer->IsRunning())
-    return idleTimer->GetInterval();
-  else
-    return 0;
-}
-
-EWXWEXPORT(void,ELJApp_SetIdleInterval)(int interval)
-{
-  if (idleTimer) {
-    if (idleTimer->IsRunning()) {
-      idleTimer->Stop();
-    }
-    if (interval >= 5) {
-      idleTimer->Start( interval, false );
-    }
-  }
-}
-
-/*-----------------------------------------------------------------------------
-    C interface to the application.
------------------------------------------------------------------------------*/
-
-EWXWEXPORT(int,ELJApp_MainLoop)()
-{
-        return wxGetApp().MainLoop();
-}
-
-EWXWEXPORT(bool,ELJApp_Initialized)()
-{
-#if WXWIN_COMPATIBILITY_2_6
-        return wxGetApp().Initialized();
-#else
-        return true;
-#endif
-}
-
-EWXWEXPORT(int,ELJApp_Pending)()
-{
-        return (int)wxGetApp().Pending();
-}
-
-EWXWEXPORT(void,ELJApp_Dispatch)()
-{
-        wxGetApp().Dispatch();
-}
-
-EWXWEXPORT(wxString*,ELJApp_GetAppName)()
-{
-	wxString *result = new wxString();
-	*result = wxGetApp().GetAppName();
-	return result;
-}
-
-EWXWEXPORT(void,ELJApp_SetAppName)(wxString* name)
-{
-        wxGetApp().SetAppName(*name);
-}
-
-EWXWEXPORT(wxString*,ELJApp_GetClassName)()
-{
-	wxString *result = new wxString();
-	*result = wxGetApp().GetClassName();
-	return result;
-}
-
-EWXWEXPORT(void,ELJApp_SetClassName)(wxString* name)
-{
-        wxGetApp().SetClassName(*name);
-}
-
-EWXWEXPORT(wxString*,ELJApp_GetVendorName)()
-{
-	wxString *result = new wxString();
-	*result = wxGetApp().GetVendorName();
-	return result;
-}
-
-EWXWEXPORT(void,ELJApp_SetVendorName)(wxString* name)
-{
-        wxGetApp().SetVendorName(*name);
-}
-
-EWXWEXPORT(void*,ELJApp_GetTopWindow)()
-{
-        return wxGetApp().GetTopWindow();
-}
-
-EWXWEXPORT(void,ELJApp_SetExitOnFrameDelete)(bool flag)
-{
-        wxGetApp().SetExitOnFrameDelete(flag);
-}
-
-EWXWEXPORT(int,ELJApp_GetExitOnFrameDelete)()
-{
-        return (int)wxGetApp().GetExitOnFrameDelete();
-}
-
-EWXWEXPORT(void*,ELJApp_CreateLogTarget)()
-{
-#if wxVERSION_NUMBER <= 2600
-        return wxGetApp().CreateLogTarget();
-#else
-        wxAppTraits* appTraits = wxGetApp().GetTraits();
-        return appTraits->CreateLogTarget();
-#endif
-}
-
-/*
-EWXWEXPORT(int,ELJApp_GetWantDebugOutput)()
-{
-        return (int)wxGetApp().GetWantDebugOutput();
-}
-*/
-
-EWXWEXPORT(void,ELJApp_SetUseBestVisual)(bool flag)
-{
-        wxGetApp().SetUseBestVisual( flag);
-}
-
-EWXWEXPORT(int,ELJApp_GetUseBestVisual)()
-{
-        return (int)wxGetApp().GetUseBestVisual();
-}
-
-EWXWEXPORT(void,ELJApp_SetPrintMode)(int mode)
-{
-        wxGetApp().SetPrintMode(mode);
-}
-
-EWXWEXPORT(void,ELJApp_ExitMainLoop)()
-{
-        wxGetApp ().ExitMainLoop();
-}
-
-EWXWEXPORT(void,ELJApp_SetTopWindow)(wxWindow* _wnd)
-{
-        wxGetApp ().SetTopWindow (_wnd);
-}
-/*
-EWXWEXPORT(int,ELJApp_SendIdleEvents)()
-{
-        return (int)wxGetApp().SendIdleEvents();
-}
-
-EWXWEXPORT(int,ELJApp_SendIdleEventsToWindow)(wxWindow* win)
-{
-        return (int)wxGetApp().SendIdleEvents( win);
-}
-*/
-EWXWEXPORT(void,ELJApp_EnableTooltips)(bool _enable)
-{
-        wxToolTip::Enable (_enable);
-}
-
-EWXWEXPORT(void,ELJApp_SetTooltipDelay)(int _ms)
-{
-        wxToolTip::SetDelay (_ms);
-}
-
-EWXWEXPORT(void,ELJApp_InitAllImageHandlers)()
-{
-        wxInitAllImageHandlers();
-}
-
-EWXWEXPORT(void,ELJApp_Bell)()
-{
-        wxBell();
-}
-
-EWXWEXPORT(wxSize*,ELJApp_DisplaySize)()
-{
-	wxSize* sz = new wxSize();
-	*sz = wxGetDisplaySize();
-	return sz;
-}
-
-EWXWEXPORT(void,ELJApp_EnableTopLevelWindows)(bool _enb)
-{
-        wxEnableTopLevelWindows(_enb);
-}
-
-EWXWEXPORT(void,ELJApp_Exit)()
-{
-        wxExit();
-}
-
-EWXWEXPORT(wxPoint*,ELJApp_MousePosition)()
-{
-	wxPoint* pt = new wxPoint();
-	*pt = wxGetMousePosition();
-	return pt;
-}
-
-EWXWEXPORT(void*,ELJApp_FindWindowByLabel)(wxString* _lbl,wxWindow* _prt)
-{
-        return (void*)wxFindWindowByLabel(*_lbl, _prt);
-}
-
-EWXWEXPORT(void*,ELJApp_FindWindowByName)(wxString* _lbl,wxWindow* _prt)
-{
-        return (void*)wxFindWindowByName(*_lbl, _prt);
-}
-
-EWXWEXPORT(void*,ELJApp_FindWindowById)(int _id,wxWindow* _prt)
-{
-        return (void*)wxWindow::FindWindowById((long)_id, _prt);
-}
-
-
-EWXWEXPORT(void*,ELJApp_GetApp)()
-{
-        return (void*)wxTheApp;
-}
-
-EWXWEXPORT(wxString*,ELJApp_GetUserId)()
-{
-	wxString *result = new wxString();
-	*result = wxGetUserId();
-	return result;
-}
-
-EWXWEXPORT(wxString*,ELJApp_GetUserName)()
-{
-	wxString *result = new wxString();
-	*result = wxGetUserName();
-	return result;
-}
-
-EWXWEXPORT(wxString*,ELJApp_GetUserHome)(wxString* _usr)
-{
-	wxString *result = new wxString();
-	*result = wxGetUserHome(*_usr);
-	return result;
-}
-
-EWXWEXPORT(int,ELJApp_ExecuteProcess)(wxString* _cmd,bool _snc,void* _prc)
-{
-        return (int)wxExecute(*_cmd, _snc , (wxProcess*)_prc);
-}
-
-EWXWEXPORT(int,ELJApp_Yield)()
-{
-        return (int)wxYield();
-}
-
-EWXWEXPORT(int,ELJApp_SafeYield)(wxWindow* _win)
-{
-        return (int)wxSafeYield(_win);
-}
-
-EWXWEXPORT(int,ELJApp_GetOsVersion)(int* _maj,int* _min)
-{
-        return wxGetOsVersion(_maj, _min);
-}
-
-EWXWEXPORT(wxString*,ELJApp_GetOsDescription)()
-{
-	wxString *result = new wxString();
-	*result = wxGetOsDescription();
-	return result;
-}
-
-EWXWEXPORT(void,ELJApp_Sleep)(int _scs)
-{
-        wxSleep(_scs);
-}
-
-EWXWEXPORT(void,ELJApp_MilliSleep)(int _mscs)
-{
-#if (wxVERSION_NUMBER < 2600)
-        wxUsleep(_mscs);
-#else
-        wxMilliSleep(_mscs);
-#endif
-}
-
-EWXWEXPORT(bool,ELJApp_IsTerminating)()
-{
-        return APPTerminating;
-}
-
-EWXWEXPORT(int,QuantizePalette)(void* src,void* dest,void* pPalette,int desiredNoColours,void* eightBitData,int flags)
-{
-#if defined(__WXGTK__) && (wxVERSION_NUMBER <= 2400)
-	return 0;
-#else
-        return (int)wxQuantize::Quantize(*((wxImage*)src), *((wxImage*)dest), (wxPalette**)pPalette, desiredNoColours, (unsigned char**)eightBitData, flags);
-#endif
-}
-
-EWXWEXPORT(int,Quantize)(void* src,void* dest,int desiredNoColours,void* eightBitData,int flags)
-{
-#if defined(__WXGTK__) && (wxVERSION_NUMBER <= 2400)
-	return 0;
-#else
-        return (int)wxQuantize::Quantize(*((wxImage*)src), *((wxImage*)dest), desiredNoColours, (unsigned char**)eightBitData, flags);
-#endif
-}
-
-
-EWXWEXPORT(void*,wxEvtHandler_Create)()
-{
-        return (void*)new wxEvtHandler();
-}
-
-EWXWEXPORT(void,wxEvtHandler_Delete)(wxEvtHandler* self)
-{
-        delete self;
-}
-
-
-EWXWEXPORT(int,wxEvtHandler_Disconnect)(wxEvtHandler* self,int first,int last,int type,wxObject* data)
-{
-        return (int)self->Disconnect(first, last, type, (wxObjectEventFunction)&ELJApp::HandleEvent, data);
-}
-
-EWXWEXPORT(void*,wxEvtHandler_GetNextHandler)(wxEvtHandler* self)
-{
-        return (void*)self->GetNextHandler();
-}
-
-EWXWEXPORT(void*,wxEvtHandler_GetPreviousHandler)(wxEvtHandler* self)
-{
-        return (void*)self->GetPreviousHandler();
-}
-
-EWXWEXPORT(void,wxEvtHandler_SetNextHandler)(wxEvtHandler* self,void* handler)
-{
-        self->SetNextHandler((wxEvtHandler*)handler);
-}
-
-EWXWEXPORT(void,wxEvtHandler_SetPreviousHandler)(wxEvtHandler* self,void* handler)
-{
-        self->SetPreviousHandler((wxEvtHandler*)handler);
-}
-
-EWXWEXPORT(void,wxEvtHandler_SetEvtHandlerEnabled)(wxEvtHandler* self,bool enabled)
-{
-        self->SetEvtHandlerEnabled(enabled);
-}
-
-EWXWEXPORT(bool,wxEvtHandler_GetEvtHandlerEnabled)(wxEvtHandler* self)
-{
-        return self->GetEvtHandlerEnabled();
-}
-
-EWXWEXPORT(bool,wxEvtHandler_ProcessEvent)(wxEvtHandler* self,wxEvent* event)
-{
-        return self->ProcessEvent(*event);
-}
-
-EWXWEXPORT(void,wxEvtHandler_AddPendingEvent)(wxEvtHandler* self,wxEvent* event)
-{
-        self->AddPendingEvent(*event);
-}
-
-EWXWEXPORT(void,wxEvtHandler_ProcessPendingEvents)(wxEvtHandler* self)
-{
-        self->ProcessPendingEvents();
-}
-
-EWXWEXPORT(void*,Null_AcceleratorTable)()
-{
-        return (void*)&wxNullAcceleratorTable;
-}
-
-EWXWEXPORT(void*,Null_Bitmap)()
-{
-        return (void*)&wxNullBitmap;
-}
-
-EWXWEXPORT(void*,Null_Icon)()
-{
-        return (void*)&wxNullIcon;
-}
-
-EWXWEXPORT(void*,Null_Cursor)()
-{
-        return (void*)&wxNullCursor;
-}
-
-EWXWEXPORT(void*,Null_Pen)()
-{
-        return (void*)&wxNullPen;
-}
-
-EWXWEXPORT(void*,Null_Brush)()
-{
-        return (void*)&wxNullBrush;
-}
-
-EWXWEXPORT(void*,Null_Palette)()
-{
-        return (void*)&wxNullPalette;
-}
-
-EWXWEXPORT(void*,Null_Font)()
-{
-        return (void*)&wxNullFont;
-}
-
-EWXWEXPORT(void*,Null_Colour)()
-{
-        return (void*)&wxNullColour;
-}
-/*
-EWXWEXPORT(bool,wxDllLoader_LoadLibrary)(void* _name,int* _success)
-{
-        bool success;
-
-        wxDllType result = wxDllLoader::LoadLibrary ((const wxChar*)_name, &success);
-
-        if (success)
-                *_success = 1;
-        else
-                *_success = 0;
-
-        return result;
-}
-
-EWXWEXPORT(void,wxDllLoader_UnloadLibrary)(int _handle)
-{
-        wxDllLoader::UnloadLibrary ((wxDllType)_handle);
-}
-
-EWXWEXPORT(void*,wxDllLoader_GetSymbol)(int _handle,void* _name)
-{
-        return wxDllLoader::GetSymbol ((wxDllType)_handle, (const wxChar*)_name);
-}
-*/
-EWXWEXPORT(void,wxCFree)(void* _ptr)
-{
-        free (_ptr);
-}
-
-EWXWEXPORT(void*,wxClassInfo_CreateClassByName)(wxString* _inf)
-{
-        wxClassInfo* inf = wxClassInfo::FindClass (*_inf);
-        if (inf)
-                return inf->CreateObject();
-        return NULL;
-}
-
-EWXWEXPORT(void*,wxClassInfo_GetClassName)(wxObject* self)
-{
-        wxClassInfo* inf = self->GetClassInfo();
-        if (inf)
-                return (void*)inf->GetClassName();
-        return NULL;
-}
-
-EWXWEXPORT(bool,wxClassInfo_IsKindOf)(wxObject* self,wxString* _name)
-{
-        wxClassInfo* inf = wxClassInfo::FindClass (*_name);
-        if (inf)
-                return self->IsKindOf(inf);
-        return false;
-}
-
-EWXWEXPORT(int,wxEvent_NewEventType)()
-{
-        return (int)wxNewEventType();
-}
-}
+#include "wrapper.h"
+#include "wx/tooltip.h"
+#include "wx/dynlib.h"
+#include "wx/fs_zip.h"
+
+/* quantize is not supported on wxGTK 2.4.0 */
+#if !defined(__WXGTK__) || (wxVERSION_NUMBER > 2400)
+#  include "wx/quantize.h"
+#endif
+
+/*-----------------------------------------------------------------------------
+    Miscellaneous helper functions
+-----------------------------------------------------------------------------*/
+
+int copyStrToBuf(void* dst, wxString& src) {
+  if (dst) wxStrcpy ((wxChar*) dst, src.c_str());
+  return src.Length();
+}
+
+/*-----------------------------------------------------------------------------
+    The global idle timer
+-----------------------------------------------------------------------------*/
+class wxIdleTimer : public wxTimer
+{
+public:
+  void Notify() {
+    wxWakeUpIdle();   /* send idle events */
+  }
+};
+
+wxIdleTimer* idleTimer = NULL;
+
+void initIdleTimer()
+{
+  idleTimer = new wxIdleTimer();
+}
+
+void doneIdleTimer()
+{
+  if (idleTimer) {
+    idleTimer->Stop();
+    delete idleTimer;
+    idleTimer = NULL;
+  }
+}
+
+
+
+/*-----------------------------------------------------------------------------
+    The main application
+-----------------------------------------------------------------------------*/
+wxClosure* initClosure = NULL;
+int APPTerminating = 0;
+
+IMPLEMENT_APP_NO_MAIN(ELJApp);
+
+bool ELJApp::OnInit (void)
+{
+  wxInitAllImageHandlers();
+  initIdleTimer();
+  if (initClosure) {
+    delete initClosure; /* special: init is only called once with a NULL event */
+    initClosure=NULL;
+  }
+  return true;
+}
+
+int ELJApp::OnExit( void )
+{
+  doneIdleTimer();
+  return wxApp::OnExit();
+}
+
+void ELJApp::InitZipFileSystem()
+{
+        static int InitZIPFileSystem_done = 0;
+
+        if (!InitZIPFileSystem_done)
+        {
+                InitZIPFileSystem_done = 1;
+                wxFileSystem::AddHandler(new wxZipFSHandler());
+        }
+}
+
+void ELJApp::InitImageHandlers()
+{
+        static int InitImageHandlers_done = 0;
+
+        if (!InitImageHandlers_done)
+        {
+                InitImageHandlers_done = 1;
+                wxInitAllImageHandlers();
+        }
+}
+
+
+/* "getCallback" is a hack to retrieve the callback object for a certain event
+   see also "wxEvtHandler_FindClosure"
+*/
+static wxCallback** getCallback = NULL;
+
+void ELJApp::HandleEvent(wxEvent& _evt)
+{
+  wxCallback* callback = (wxCallback*)(_evt.m_callbackUserData);
+  if (getCallback) {
+    *getCallback = callback;    /* retrieve the callback */
+  }
+  else if (callback) {
+    callback->Invoke( &_evt );  /* normal: invoke the callback function */
+  }
+}
+
+/*-----------------------------------------------------------------------------
+    Closures
+-----------------------------------------------------------------------------*/
+wxClosure::wxClosure( ClosureFun fun, void* data )
+{
+  m_refcount = 0;
+  m_fun  = fun;
+  m_data = data;
+}
+
+wxClosure::~wxClosure()
+{
+  /* call for the last time with a NULL event. Give opportunity to clean up resources */
+  if (m_fun) { m_fun((void*)m_fun, m_data, NULL); }
+}
+
+void wxClosure::IncRef()
+{
+  m_refcount++;
+}
+
+void wxClosure::DecRef()
+{
+  m_refcount--;
+  if (m_refcount <= 0) {
+    delete this;
+  }
+}
+
+void wxClosure::Invoke( wxEvent* event )
+{
+  if (event && m_fun) { m_fun((void*)m_fun, m_data, event); }
+};
+
+void* wxClosure::GetData()
+{
+  return m_data;
+}
+
+/*-----------------------------------------------------------------------------
+    callback: a reference counting wrapper for a closure
+-----------------------------------------------------------------------------*/
+wxCallback::wxCallback( wxClosure* closure )
+{
+  m_closure = closure;
+  m_closure->IncRef();
+}
+
+wxCallback::~wxCallback()
+{
+  m_closure->DecRef();
+}
+
+void wxCallback::Invoke( wxEvent* event )
+{
+  m_closure->Invoke(event);
+}
+
+wxClosure* wxCallback::GetClosure()
+{
+  return m_closure;
+}
+
+
+
+/*-----------------------------------------------------------------------------
+    wrapper for objectRefData
+-----------------------------------------------------------------------------*/
+class wxcClosureRefData : public wxObjectRefData
+{
+  private:
+    wxClosure*  m_closure;
+  public:
+    wxcClosureRefData( wxClosure* closure );
+    ~wxcClosureRefData();
+
+    wxClosure* GetClosure();
+};
+
+wxcClosureRefData::wxcClosureRefData( wxClosure* closure )
+{
+  m_closure = closure;
+}
+
+wxcClosureRefData::~wxcClosureRefData()
+{
+/* printf("delete wxc-ClosureRefData\n");  */
+  if (m_closure) { delete m_closure; m_closure = NULL; }
+}
+
+wxClosure* wxcClosureRefData::GetClosure()
+{
+  return m_closure;
+}
+
+
+/*-----------------------------------------------------------------------------
+    C interface to event handling and closures.
+-----------------------------------------------------------------------------*/
+extern "C"
+{
+/* event handling */
+EWXWEXPORT(int,wxEvtHandler_Connect)(void* _obj,int first,int last,int type,wxClosure* closure)
+{
+  wxCallback* callback = new wxCallback(closure);
+  ((wxEvtHandler*)_obj)->Connect(first, last, type, (wxObjectEventFunction)&ELJApp::HandleEvent, callback);
+  return 0;
+}
+
+EWXWEXPORT(wxClosure*,wxEvtHandler_GetClosure)(wxEvtHandler* evtHandler,int id,int type)
+{
+  wxCommandEvent  event(type,id);     //We can use any kind of event here
+  wxCallback*     callback = NULL;
+  bool            found    = false;
+
+  //set the global variable 'getCallback' so HandleEvent
+  //knows we just want to know the closure. Unfortunately, this
+  //seems the cleanest way to retrieve the callback in wxWidgets.
+  getCallback = &callback;
+  // Bugfix: see www.mail-archive.com/wxhaskell-devel@lists.sourceforge.net/msg00577.html
+  // On entry, Dynamic event table may have no bound events
+  // Bug reproduces only on Debug builds, and seems to be ignorable
+  if (evtHandler->GetDynamicEventTable() != NULL)
+    found = evtHandler->SearchDynamicEventTable( event );
+  getCallback = NULL;
+
+  if (found && callback)
+    return callback->GetClosure();
+  else
+    return NULL;
+}
+
+/* closures */
+EWXWEXPORT(wxClosure*,wxClosure_Create)(ClosureFun fun,void* data)
+{
+  return new wxClosure(fun,data);
+}
+
+EWXWEXPORT(void*,wxClosure_GetData)(wxClosure* closure)
+{
+  return closure->GetData();
+}
+
+/* client data */
+EWXWEXPORT(void*,wxEvtHandler_GetClientClosure)(void* _obj)
+{
+  return (void*)((wxEvtHandler*)_obj)->GetClientObject();
+}
+
+EWXWEXPORT(void,wxEvtHandler_SetClientClosure)(void* _obj,wxClosure* closure)
+{
+  ((wxEvtHandler*)_obj)->SetClientObject(closure);
+}
+
+EWXWEXPORT(wxClosure*,wxObject_GetClientClosure)(wxObject* _obj)
+{
+  wxcClosureRefData* refData = (wxcClosureRefData*)_obj->GetRefData();
+  if (refData)
+    return refData->GetClosure();
+  else
+    return NULL;
+}
+
+EWXWEXPORT(void,wxObject_SetClientClosure)(wxObject* _obj,wxClosure* closure)
+{
+  wxcClosureRefData* refData;
+  /* wxASSERT(_obj->GetRefData() == NULL); */
+  _obj->UnRef();
+  wxASSERT(_obj->GetRefData() == NULL);
+  refData = new wxcClosureRefData( closure );
+  _obj->SetRefData( refData );    //set new data -- ref count must be 1 as setRefData doesn't increase it.  
+}
+
+/*-----------------------------------------------------------------------------
+    C interface to the idle timer
+-----------------------------------------------------------------------------*/
+EWXWEXPORT(int,ELJApp_GetIdleInterval)()
+{
+  if (!idleTimer) return 0;
+
+  if (idleTimer->IsRunning())
+    return idleTimer->GetInterval();
+  else
+    return 0;
+}
+
+EWXWEXPORT(void,ELJApp_SetIdleInterval)(int interval)
+{
+  if (idleTimer) {
+    if (idleTimer->IsRunning()) {
+      idleTimer->Stop();
+    }
+    if (interval >= 5) {
+      idleTimer->Start( interval, false );
+    }
+  }
+}
+
+/*-----------------------------------------------------------------------------
+    C interface to the application.
+-----------------------------------------------------------------------------*/
+
+EWXWEXPORT(int,ELJApp_MainLoop)()
+{
+        return wxGetApp().MainLoop();
+}
+
+EWXWEXPORT(bool,ELJApp_Initialized)()
+{
+#if WXWIN_COMPATIBILITY_2_6
+        return wxGetApp().Initialized();
+#else
+        return true;
+#endif
+}
+
+EWXWEXPORT(int,ELJApp_Pending)()
+{
+        return (int)wxGetApp().Pending();
+}
+
+EWXWEXPORT(void,ELJApp_Dispatch)()
+{
+        wxGetApp().Dispatch();
+}
+
+EWXWEXPORT(wxString*,ELJApp_GetAppName)()
+{
+	wxString *result = new wxString();
+	*result = wxGetApp().GetAppName();
+	return result;
+}
+
+EWXWEXPORT(void,ELJApp_SetAppName)(wxString* name)
+{
+        wxGetApp().SetAppName(*name);
+}
+
+EWXWEXPORT(wxString*,ELJApp_GetClassName)()
+{
+	wxString *result = new wxString();
+	*result = wxGetApp().GetClassName();
+	return result;
+}
+
+EWXWEXPORT(void,ELJApp_SetClassName)(wxString* name)
+{
+        wxGetApp().SetClassName(*name);
+}
+
+EWXWEXPORT(wxString*,ELJApp_GetVendorName)()
+{
+	wxString *result = new wxString();
+	*result = wxGetApp().GetVendorName();
+	return result;
+}
+
+EWXWEXPORT(void,ELJApp_SetVendorName)(wxString* name)
+{
+        wxGetApp().SetVendorName(*name);
+}
+
+EWXWEXPORT(void*,ELJApp_GetTopWindow)()
+{
+        return wxGetApp().GetTopWindow();
+}
+
+EWXWEXPORT(void,ELJApp_SetExitOnFrameDelete)(bool flag)
+{
+        wxGetApp().SetExitOnFrameDelete(flag);
+}
+
+EWXWEXPORT(int,ELJApp_GetExitOnFrameDelete)()
+{
+        return (int)wxGetApp().GetExitOnFrameDelete();
+}
+
+EWXWEXPORT(void*,ELJApp_CreateLogTarget)()
+{
+#if wxVERSION_NUMBER <= 2600
+        return wxGetApp().CreateLogTarget();
+#else
+        wxAppTraits* appTraits = wxGetApp().GetTraits();
+        return appTraits->CreateLogTarget();
+#endif
+}
+
+/*
+EWXWEXPORT(int,ELJApp_GetWantDebugOutput)()
+{
+        return (int)wxGetApp().GetWantDebugOutput();
+}
+*/
+
+EWXWEXPORT(void,ELJApp_SetUseBestVisual)(bool flag)
+{
+        wxGetApp().SetUseBestVisual( flag);
+}
+
+EWXWEXPORT(int,ELJApp_GetUseBestVisual)()
+{
+        return (int)wxGetApp().GetUseBestVisual();
+}
+
+EWXWEXPORT(void,ELJApp_SetPrintMode)(int mode)
+{
+        wxGetApp().SetPrintMode(mode);
+}
+
+EWXWEXPORT(void,ELJApp_ExitMainLoop)()
+{
+        wxGetApp ().ExitMainLoop();
+}
+
+EWXWEXPORT(void,ELJApp_SetTopWindow)(wxWindow* _wnd)
+{
+        wxGetApp ().SetTopWindow (_wnd);
+}
+/*
+EWXWEXPORT(int,ELJApp_SendIdleEvents)()
+{
+        return (int)wxGetApp().SendIdleEvents();
+}
+
+EWXWEXPORT(int,ELJApp_SendIdleEventsToWindow)(wxWindow* win)
+{
+        return (int)wxGetApp().SendIdleEvents( win);
+}
+*/
+EWXWEXPORT(void,ELJApp_EnableTooltips)(bool _enable)
+{
+        wxToolTip::Enable (_enable);
+}
+
+EWXWEXPORT(void,ELJApp_SetTooltipDelay)(int _ms)
+{
+        wxToolTip::SetDelay (_ms);
+}
+
+EWXWEXPORT(void,ELJApp_InitAllImageHandlers)()
+{
+        wxInitAllImageHandlers();
+}
+
+EWXWEXPORT(void,ELJApp_Bell)()
+{
+        wxBell();
+}
+
+EWXWEXPORT(wxSize*,ELJApp_DisplaySize)()
+{
+	wxSize* sz = new wxSize();
+	*sz = wxGetDisplaySize();
+	return sz;
+}
+
+EWXWEXPORT(void,ELJApp_EnableTopLevelWindows)(bool _enb)
+{
+        wxEnableTopLevelWindows(_enb);
+}
+
+EWXWEXPORT(void,ELJApp_Exit)()
+{
+        wxExit();
+}
+
+EWXWEXPORT(wxPoint*,ELJApp_MousePosition)()
+{
+	wxPoint* pt = new wxPoint();
+	*pt = wxGetMousePosition();
+	return pt;
+}
+
+EWXWEXPORT(void*,ELJApp_FindWindowByLabel)(wxString* _lbl,wxWindow* _prt)
+{
+        return (void*)wxFindWindowByLabel(*_lbl, _prt);
+}
+
+EWXWEXPORT(void*,ELJApp_FindWindowByName)(wxString* _lbl,wxWindow* _prt)
+{
+        return (void*)wxFindWindowByName(*_lbl, _prt);
+}
+
+EWXWEXPORT(void*,ELJApp_FindWindowById)(int _id,wxWindow* _prt)
+{
+        return (void*)wxWindow::FindWindowById((long)_id, _prt);
+}
+
+
+EWXWEXPORT(void*,ELJApp_GetApp)()
+{
+        return (void*)wxTheApp;
+}
+
+EWXWEXPORT(wxString*,ELJApp_GetUserId)()
+{
+	wxString *result = new wxString();
+	*result = wxGetUserId();
+	return result;
+}
+
+EWXWEXPORT(wxString*,ELJApp_GetUserName)()
+{
+	wxString *result = new wxString();
+	*result = wxGetUserName();
+	return result;
+}
+
+EWXWEXPORT(wxString*,ELJApp_GetUserHome)(wxString* _usr)
+{
+	wxString *result = new wxString();
+	*result = wxGetUserHome(*_usr);
+	return result;
+}
+
+EWXWEXPORT(int,ELJApp_ExecuteProcess)(wxString* _cmd,bool _snc,void* _prc)
+{
+        return (int)wxExecute(*_cmd, _snc , (wxProcess*)_prc);
+}
+
+EWXWEXPORT(int,ELJApp_Yield)()
+{
+        return (int)wxYield();
+}
+
+EWXWEXPORT(int,ELJApp_SafeYield)(wxWindow* _win)
+{
+        return (int)wxSafeYield(_win);
+}
+
+EWXWEXPORT(int,ELJApp_GetOsVersion)(int* _maj,int* _min)
+{
+        return wxGetOsVersion(_maj, _min);
+}
+
+EWXWEXPORT(wxString*,ELJApp_GetOsDescription)()
+{
+	wxString *result = new wxString();
+	*result = wxGetOsDescription();
+	return result;
+}
+
+EWXWEXPORT(void,ELJApp_Sleep)(int _scs)
+{
+        wxSleep(_scs);
+}
+
+EWXWEXPORT(void,ELJApp_MilliSleep)(int _mscs)
+{
+#if (wxVERSION_NUMBER < 2600)
+        wxUsleep(_mscs);
+#else
+        wxMilliSleep(_mscs);
+#endif
+}
+
+EWXWEXPORT(bool,ELJApp_IsTerminating)()
+{
+        return APPTerminating;
+}
+
+EWXWEXPORT(int,QuantizePalette)(void* src,void* dest,void* pPalette,int desiredNoColours,void* eightBitData,int flags)
+{
+#if defined(__WXGTK__) && (wxVERSION_NUMBER <= 2400)
+	return 0;
+#else
+        return (int)wxQuantize::Quantize(*((wxImage*)src), *((wxImage*)dest), (wxPalette**)pPalette, desiredNoColours, (unsigned char**)eightBitData, flags);
+#endif
+}
+
+EWXWEXPORT(int,Quantize)(void* src,void* dest,int desiredNoColours,void* eightBitData,int flags)
+{
+#if defined(__WXGTK__) && (wxVERSION_NUMBER <= 2400)
+	return 0;
+#else
+        return (int)wxQuantize::Quantize(*((wxImage*)src), *((wxImage*)dest), desiredNoColours, (unsigned char**)eightBitData, flags);
+#endif
+}
+
+
+EWXWEXPORT(void*,wxEvtHandler_Create)()
+{
+        return (void*)new wxEvtHandler();
+}
+
+EWXWEXPORT(void,wxEvtHandler_Delete)(wxEvtHandler* self)
+{
+        delete self;
+}
+
+
+EWXWEXPORT(int,wxEvtHandler_Disconnect)(wxEvtHandler* self,int first,int last,int type,wxObject* data)
+{
+        return (int)self->Disconnect(first, last, type, (wxObjectEventFunction)&ELJApp::HandleEvent, data);
+}
+
+EWXWEXPORT(void*,wxEvtHandler_GetNextHandler)(wxEvtHandler* self)
+{
+        return (void*)self->GetNextHandler();
+}
+
+EWXWEXPORT(void*,wxEvtHandler_GetPreviousHandler)(wxEvtHandler* self)
+{
+        return (void*)self->GetPreviousHandler();
+}
+
+EWXWEXPORT(void,wxEvtHandler_SetNextHandler)(wxEvtHandler* self,void* handler)
+{
+        self->SetNextHandler((wxEvtHandler*)handler);
+}
+
+EWXWEXPORT(void,wxEvtHandler_SetPreviousHandler)(wxEvtHandler* self,void* handler)
+{
+        self->SetPreviousHandler((wxEvtHandler*)handler);
+}
+
+EWXWEXPORT(void,wxEvtHandler_SetEvtHandlerEnabled)(wxEvtHandler* self,bool enabled)
+{
+        self->SetEvtHandlerEnabled(enabled);
+}
+
+EWXWEXPORT(bool,wxEvtHandler_GetEvtHandlerEnabled)(wxEvtHandler* self)
+{
+        return self->GetEvtHandlerEnabled();
+}
+
+EWXWEXPORT(bool,wxEvtHandler_ProcessEvent)(wxEvtHandler* self,wxEvent* event)
+{
+        return self->ProcessEvent(*event);
+}
+
+EWXWEXPORT(void,wxEvtHandler_AddPendingEvent)(wxEvtHandler* self,wxEvent* event)
+{
+        self->AddPendingEvent(*event);
+}
+
+EWXWEXPORT(void,wxEvtHandler_ProcessPendingEvents)(wxEvtHandler* self)
+{
+        self->ProcessPendingEvents();
+}
+
+EWXWEXPORT(void*,Null_AcceleratorTable)()
+{
+        return (void*)&wxNullAcceleratorTable;
+}
+
+EWXWEXPORT(void*,Null_Bitmap)()
+{
+        return (void*)&wxNullBitmap;
+}
+
+EWXWEXPORT(void*,Null_Icon)()
+{
+        return (void*)&wxNullIcon;
+}
+
+EWXWEXPORT(void*,Null_Cursor)()
+{
+        return (void*)&wxNullCursor;
+}
+
+EWXWEXPORT(void*,Null_Pen)()
+{
+        return (void*)&wxNullPen;
+}
+
+EWXWEXPORT(void*,Null_Brush)()
+{
+        return (void*)&wxNullBrush;
+}
+
+EWXWEXPORT(void*,Null_Palette)()
+{
+        return (void*)&wxNullPalette;
+}
+
+EWXWEXPORT(void*,Null_Font)()
+{
+        return (void*)&wxNullFont;
+}
+
+EWXWEXPORT(void*,Null_Colour)()
+{
+        return (void*)&wxNullColour;
+}
+/*
+EWXWEXPORT(bool,wxDllLoader_LoadLibrary)(void* _name,int* _success)
+{
+        bool success;
+
+        wxDllType result = wxDllLoader::LoadLibrary ((const wxChar*)_name, &success);
+
+        if (success)
+                *_success = 1;
+        else
+                *_success = 0;
+
+        return result;
+}
+
+EWXWEXPORT(void,wxDllLoader_UnloadLibrary)(int _handle)
+{
+        wxDllLoader::UnloadLibrary ((wxDllType)_handle);
+}
+
+EWXWEXPORT(void*,wxDllLoader_GetSymbol)(int _handle,void* _name)
+{
+        return wxDllLoader::GetSymbol ((wxDllType)_handle, (const wxChar*)_name);
+}
+*/
+EWXWEXPORT(void,wxCFree)(void* _ptr)
+{
+        free (_ptr);
+}
+
+EWXWEXPORT(void*,wxClassInfo_CreateClassByName)(wxString* _inf)
+{
+        wxClassInfo* inf = wxClassInfo::FindClass (*_inf);
+        if (inf)
+                return inf->CreateObject();
+        return NULL;
+}
+
+EWXWEXPORT(void*,wxClassInfo_GetClassName)(wxObject* self)
+{
+        wxClassInfo* inf = self->GetClassInfo();
+        if (inf)
+                return (void*)inf->GetClassName();
+        return NULL;
+}
+
+EWXWEXPORT(bool,wxClassInfo_IsKindOf)(wxObject* self,wxString* _name)
+{
+        wxClassInfo* inf = wxClassInfo::FindClass (*_name);
+        if (inf)
+                return self->IsKindOf(inf);
+        return false;
+}
+
+EWXWEXPORT(int,wxEvent_NewEventType)()
+{
+        return (int)wxNewEventType();
+}
+}
diff --git a/src/include/eljgrid.h b/src/include/eljgrid.h
--- a/src/include/eljgrid.h
+++ b/src/include/eljgrid.h
@@ -1,97 +1,97 @@
-#ifndef __ELJGRID_H
-#define __ELJGRID_H
-
-#include "wx/grid.h"
-
-extern "C"
-{
-typedef int   _cdecl (*TGridGetInt)(void* _obj);
-typedef int   _cdecl (*TGridIsEmpty)(void* _obj, int row, int col);
-typedef void* _cdecl (*TGridGetValue)(void* _obj, int row, int col);
-typedef void  _cdecl (*TGridSetValue)(void* _obj, int row, int col, void* val);
-typedef void  _cdecl (*TGridClear)(void* _obj);
-typedef int   _cdecl (*TGridModify)(void* _obj, int pos, int num);
-typedef int   _cdecl (*TGridMultiModify)(void* _obj, int num);
-typedef void  _cdecl (*TGridSetLabel)(void* _obj, int idx, void* val);
-typedef void* _cdecl (*TGridGetLabel)(void* _obj, int idx);
-}
-
-class ELJGridTable : public wxGridTableBase
-{
-	private:
-		void* EiffelObject;
-		TGridGetInt EifGetNumberRows;
-		TGridGetInt EifGetNumberCols;
-		TGridGetValue EifGetValue;
-		TGridSetValue EifSetValue;
-		TGridIsEmpty EifIsEmptyCell;
-		TGridClear EifClear;
-		TGridModify EifInsertRows;
-		TGridMultiModify EifAppendRows;
-		TGridModify EifDeleteRows;
-		TGridModify EifInsertCols;
-		TGridMultiModify EifAppendCols;
-		TGridModify EifDeleteCols;
-		TGridSetLabel EifSetRowLabelValue;
-		TGridSetLabel EifSetColLabelValue;
-		TGridGetLabel EifGetRowLabelValue;
-		TGridGetLabel EifGetColLabelValue;
-	public:
-		ELJGridTable (void* _obj,
-		              void* _EifGetNumberRows,
-		              void* _EifGetNumberCols,
-		              void* _EifGetValue,
-		              void* _EifSetValue,
-		              void* _EifIsEmptyCell,
-		              void* _EifClear,
-		              void* _EifInsertRows,
-		              void* _EifAppendRows,
-		              void* _EifDeleteRows,
-		              void* _EifInsertCols,
-		              void* _EifAppendCols,
-		              void* _EifDeleteCols,
-		              void* _EifSetRowLabelValue,
-		              void* _EifSetColLabelValue,
-		              void* _EifGetRowLabelValue,
-		              void* _EifGetColLabelValue): wxGridTableBase()
-		{
-			EiffelObject = _obj;
-			EifGetNumberRows = (TGridGetInt)_EifGetNumberRows;
-			EifGetNumberCols = (TGridGetInt)_EifGetNumberCols;
-			EifGetValue = (TGridGetValue)_EifGetValue;
-			EifSetValue = (TGridSetValue)_EifSetValue;
-			EifIsEmptyCell = (TGridIsEmpty)_EifIsEmptyCell;
-			EifClear = (TGridClear)_EifClear;
-			EifInsertRows = (TGridModify)_EifInsertRows;
-			EifAppendRows = (TGridMultiModify)_EifAppendRows;
-			EifDeleteRows = (TGridModify)_EifDeleteRows;
-			EifInsertCols = (TGridModify)_EifInsertCols;
-			EifAppendCols = (TGridMultiModify)_EifAppendCols;
-			EifDeleteCols = (TGridModify)_EifDeleteCols;
-			EifSetRowLabelValue = (TGridSetLabel)_EifSetRowLabelValue;
-			EifSetColLabelValue = (TGridSetLabel)_EifSetColLabelValue;
-			EifGetRowLabelValue = (TGridGetLabel)_EifGetRowLabelValue;
-			EifGetColLabelValue = (TGridGetLabel)_EifGetColLabelValue;
-		};
-		
-		int GetNumberRows() {return EifGetNumberRows(EiffelObject);};
-		int GetNumberCols() {return EifGetNumberCols(EiffelObject);};
-		wxString GetValue(int row, int col) {return (wxChar*)EifGetValue(EiffelObject, row, col);};
-		void SetValue(int row, int col, const wxString& s) {EifSetValue(EiffelObject, row, col, (void*)s.wchar_str());};
-		bool IsEmptyCell(int row, int col) {return EifIsEmptyCell(EiffelObject, row, col) != 0;};
-
-		void Clear() {EifClear(EiffelObject);};
-		bool InsertRows(size_t pos, size_t numRows) {return EifInsertRows(EiffelObject, (int)pos, (int)numRows) != 0;};
-		bool AppendRows(size_t numRows) {return EifAppendRows(EiffelObject, (int)numRows) != 0;};
-		bool DeleteRows(size_t pos, size_t numRows) {return EifDeleteRows(EiffelObject, (int)pos, (int)numRows) != 0;};
-		bool InsertCols(size_t pos, size_t numCols) {return EifInsertCols(EiffelObject, (int)pos, (int)numCols) != 0;};
-		bool AppendCols(size_t numCols) {return EifAppendCols(EiffelObject, (int)numCols) != 0;};
-		bool DeleteCols(size_t pos, size_t numCols) {return EifDeleteCols(EiffelObject, (int)pos, (int)numCols) != 0;};
-
-		void SetRowLabelValue(int row, const wxString& s) {EifSetRowLabelValue(EiffelObject, row, (void*)s.wchar_str());};
-		void SetColLabelValue(int col, const wxString& s) {EifSetColLabelValue(EiffelObject, col, (void*)s.wchar_str());};
-		wxString GetRowLabelValue(int row) {return (wxChar*)EifGetRowLabelValue(EiffelObject, row);};
-		wxString GetColLabelValue(int col) {return (wxChar*)EifGetColLabelValue(EiffelObject, col);};
-};
-
-#endif
+#ifndef __ELJGRID_H
+#define __ELJGRID_H
+
+#include "wx/grid.h"
+
+extern "C"
+{
+typedef int   _cdecl (*TGridGetInt)(void* _obj);
+typedef int   _cdecl (*TGridIsEmpty)(void* _obj, int row, int col);
+typedef void* _cdecl (*TGridGetValue)(void* _obj, int row, int col);
+typedef void  _cdecl (*TGridSetValue)(void* _obj, int row, int col, void* val);
+typedef void  _cdecl (*TGridClear)(void* _obj);
+typedef int   _cdecl (*TGridModify)(void* _obj, int pos, int num);
+typedef int   _cdecl (*TGridMultiModify)(void* _obj, int num);
+typedef void  _cdecl (*TGridSetLabel)(void* _obj, int idx, void* val);
+typedef void* _cdecl (*TGridGetLabel)(void* _obj, int idx);
+}
+
+class ELJGridTable : public wxGridTableBase
+{
+	private:
+		void* EiffelObject;
+		TGridGetInt EifGetNumberRows;
+		TGridGetInt EifGetNumberCols;
+		TGridGetValue EifGetValue;
+		TGridSetValue EifSetValue;
+		TGridIsEmpty EifIsEmptyCell;
+		TGridClear EifClear;
+		TGridModify EifInsertRows;
+		TGridMultiModify EifAppendRows;
+		TGridModify EifDeleteRows;
+		TGridModify EifInsertCols;
+		TGridMultiModify EifAppendCols;
+		TGridModify EifDeleteCols;
+		TGridSetLabel EifSetRowLabelValue;
+		TGridSetLabel EifSetColLabelValue;
+		TGridGetLabel EifGetRowLabelValue;
+		TGridGetLabel EifGetColLabelValue;
+	public:
+		ELJGridTable (void* _obj,
+		              void* _EifGetNumberRows,
+		              void* _EifGetNumberCols,
+		              void* _EifGetValue,
+		              void* _EifSetValue,
+		              void* _EifIsEmptyCell,
+		              void* _EifClear,
+		              void* _EifInsertRows,
+		              void* _EifAppendRows,
+		              void* _EifDeleteRows,
+		              void* _EifInsertCols,
+		              void* _EifAppendCols,
+		              void* _EifDeleteCols,
+		              void* _EifSetRowLabelValue,
+		              void* _EifSetColLabelValue,
+		              void* _EifGetRowLabelValue,
+		              void* _EifGetColLabelValue): wxGridTableBase()
+		{
+			EiffelObject = _obj;
+			EifGetNumberRows = (TGridGetInt)_EifGetNumberRows;
+			EifGetNumberCols = (TGridGetInt)_EifGetNumberCols;
+			EifGetValue = (TGridGetValue)_EifGetValue;
+			EifSetValue = (TGridSetValue)_EifSetValue;
+			EifIsEmptyCell = (TGridIsEmpty)_EifIsEmptyCell;
+			EifClear = (TGridClear)_EifClear;
+			EifInsertRows = (TGridModify)_EifInsertRows;
+			EifAppendRows = (TGridMultiModify)_EifAppendRows;
+			EifDeleteRows = (TGridModify)_EifDeleteRows;
+			EifInsertCols = (TGridModify)_EifInsertCols;
+			EifAppendCols = (TGridMultiModify)_EifAppendCols;
+			EifDeleteCols = (TGridModify)_EifDeleteCols;
+			EifSetRowLabelValue = (TGridSetLabel)_EifSetRowLabelValue;
+			EifSetColLabelValue = (TGridSetLabel)_EifSetColLabelValue;
+			EifGetRowLabelValue = (TGridGetLabel)_EifGetRowLabelValue;
+			EifGetColLabelValue = (TGridGetLabel)_EifGetColLabelValue;
+		};
+		
+		int GetNumberRows() {return EifGetNumberRows(EiffelObject);};
+		int GetNumberCols() {return EifGetNumberCols(EiffelObject);};
+		wxString GetValue(int row, int col) {return (wxChar*)EifGetValue(EiffelObject, row, col);};
+		void SetValue(int row, int col, const wxString& s) {EifSetValue(EiffelObject, row, col, (void*)s.wchar_str());};
+		bool IsEmptyCell(int row, int col) {return EifIsEmptyCell(EiffelObject, row, col) != 0;};
+
+		void Clear() {EifClear(EiffelObject);};
+		bool InsertRows(size_t pos, size_t numRows) {return EifInsertRows(EiffelObject, (int)pos, (int)numRows) != 0;};
+		bool AppendRows(size_t numRows) {return EifAppendRows(EiffelObject, (int)numRows) != 0;};
+		bool DeleteRows(size_t pos, size_t numRows) {return EifDeleteRows(EiffelObject, (int)pos, (int)numRows) != 0;};
+		bool InsertCols(size_t pos, size_t numCols) {return EifInsertCols(EiffelObject, (int)pos, (int)numCols) != 0;};
+		bool AppendCols(size_t numCols) {return EifAppendCols(EiffelObject, (int)numCols) != 0;};
+		bool DeleteCols(size_t pos, size_t numCols) {return EifDeleteCols(EiffelObject, (int)pos, (int)numCols) != 0;};
+
+		void SetRowLabelValue(int row, const wxString& s) {EifSetRowLabelValue(EiffelObject, row, (void*)s.wchar_str());};
+		void SetColLabelValue(int col, const wxString& s) {EifSetColLabelValue(EiffelObject, col, (void*)s.wchar_str());};
+		wxString GetRowLabelValue(int row) {return (wxChar*)EifGetRowLabelValue(EiffelObject, row);};
+		wxString GetColLabelValue(int col) {return (wxChar*)EifGetColLabelValue(EiffelObject, col);};
+};
+
+#endif
diff --git a/src/include/ewxw_def.h b/src/include/ewxw_def.h
--- a/src/include/ewxw_def.h
+++ b/src/include/ewxw_def.h
@@ -1,39 +1,39 @@
-#ifndef __EWXW_DEF_H
-#define __EWXW_DEF_H
-
-#ifdef EXPORT
-#undef EXPORT
-#endif
-#define EXPORT extern "C"
-
-#ifdef __WATCOMC__
-  #include <windows.h>
-  #define EWXWEXPORT(TYPE,FUNC_NAME) TYPE __export __cdecl FUNC_NAME
-#else
-  #ifdef _WIN32
-    #define EWXWEXPORT(TYPE,FUNC_NAME) __declspec(dllexport) TYPE __cdecl FUNC_NAME
-    #undef EXPORT
-    #define EXPORT extern "C" __declspec(dllexport) 
-  #else
-    #define EWXWEXPORT(TYPE,FUNC_NAME) TYPE FUNC_NAME
-  #endif
-  #ifndef _cdecl
-    #define _cdecl
-  #endif
-#endif
-
-#define EWXWCONSTANTINT(NAME,VAL) \
-  EWXWEXPORT(int,exp##NAME)() \
-    { return (int)VAL;};
-#define EWXWCONSTANTSTR(NAME,VAL) \
-  EWXWEXPORT(wxString*,exp##NAME)() \
-    { return new wxString((const wchar_t*)VAL,wxConvLocal);};
-#ifdef __EWX_PREPROCESS
-# undef EWXWEXPORT
-# undef EWXWCONSTANTINT
-# undef EWXWCONSTANTSTR
-# define EWXWCONSTANTINT(NAME,VAL) def_const_int(#NAME,VAL);
-# define EWXWCONSTANTSTR(NAME,VAL) def_const_str(#NAME,VAL);
-#endif
-
-#endif /* #ifndef __EWXW_DEF_H */
+#ifndef __EWXW_DEF_H
+#define __EWXW_DEF_H
+
+#ifdef EXPORT
+#undef EXPORT
+#endif
+#define EXPORT extern "C"
+
+#ifdef __WATCOMC__
+  #include <windows.h>
+  #define EWXWEXPORT(TYPE,FUNC_NAME) TYPE __export __cdecl FUNC_NAME
+#else
+  #ifdef _WIN32
+    #define EWXWEXPORT(TYPE,FUNC_NAME) __declspec(dllexport) TYPE __cdecl FUNC_NAME
+    #undef EXPORT
+    #define EXPORT extern "C" __declspec(dllexport) 
+  #else
+    #define EWXWEXPORT(TYPE,FUNC_NAME) TYPE FUNC_NAME
+  #endif
+  #ifndef _cdecl
+    #define _cdecl
+  #endif
+#endif
+
+#define EWXWCONSTANTINT(NAME,VAL) \
+  EWXWEXPORT(int,exp##NAME)() \
+    { return (int)VAL;};
+#define EWXWCONSTANTSTR(NAME,VAL) \
+  EWXWEXPORT(wxString*,exp##NAME)() \
+    { return new wxString((const wchar_t*)VAL,wxConvLocal);};
+#ifdef __EWX_PREPROCESS
+# undef EWXWEXPORT
+# undef EWXWCONSTANTINT
+# undef EWXWCONSTANTSTR
+# define EWXWCONSTANTINT(NAME,VAL) def_const_int(#NAME,VAL);
+# define EWXWCONSTANTSTR(NAME,VAL) def_const_str(#NAME,VAL);
+#endif
+
+#endif /* #ifndef __EWXW_DEF_H */
diff --git a/src/include/graphicscontext.h b/src/include/graphicscontext.h
--- a/src/include/graphicscontext.h
+++ b/src/include/graphicscontext.h
@@ -21,6 +21,9 @@
 void  wxGraphicsContext_Delete(TSelf(wxGraphicsContext) self);
 TClass(wxGraphicsContext)  wxGraphicsContext_CreateFromNative( void* context );
 TClass(wxGraphicsContext)  wxGraphicsContext_CreateFromNativeWindow( void* window );
+TClass(wxGraphicsPath)     wxGraphicsContext_CreatePath( TSelf(wxGraphicsContext) self);
+TClass(wxGraphicsMatrix)   wxGraphicsContext_CreateMatrix( TSelf(wxGraphicsContext) self, double a, double b, double c, double d, double tx , double ty );
+TClass(wxGraphicsMatrix)   wxGraphicsContext_CreateDefaultMatrix( TSelf(wxGraphicsContext) self);
 void  wxGraphicsContext_Clip( TSelf(wxGraphicsContext) self, TClass(wxRegion) region );
 void  wxGraphicsContext_ClipByRectangle( TSelf(wxGraphicsContext) self, TRectDouble(x,y,w,h) );
 void  wxGraphicsContext_ResetClip( TSelf(wxGraphicsContext) self );
@@ -50,6 +53,8 @@
 void  wxGraphicsContext_SetGraphicsPen( TSelf(wxGraphicsContext) self, TClass(wxGraphicsPen) pen );
 void  wxGraphicsContext_StrokeLine( TSelf(wxGraphicsContext) self, TPointDouble(x1,y1), TPointDouble(x2,y2) );
 void  wxGraphicsContext_StrokeLines( TSelf(wxGraphicsContext) self, size_t n, void* x, void* y, int style );
+void  wxGraphicsContext_PushState( TSelf(wxGraphicsContext) self );
+void  wxGraphicsContext_PopState( TSelf(wxGraphicsContext) self );
 
 /*-----------------------------------------------------------------------------
   GraphicsFont
diff --git a/src/include/stc.h b/src/include/stc.h
--- a/src/include/stc.h
+++ b/src/include/stc.h
@@ -1,114 +1,114 @@
-
-#include "stc_gen.h" 
-
-/* wxStyledTextCtrl */
-TClassDefExtend(wxStyledTextCtrl,wxControl)
-TClass(wxStyledTextCtrl) wxStyledTextCtrl_Create( TClass(wxWindow) _prt, int _id, TClass(wxString) _txt, TRect(_lft,_top,_wdt,_hgt), int style );
-
-
-/* tricky handwritten functions */
-TClassDef(wxSTCDoc)
-TClassDef(wxMemoryBuffer)
-TClass(wxColour) wxStyledTextCtrl_IndicatorGetForeground( TSelf(wxStyledTextCtrl) _obj, int indic);
-TClass(wxColour) wxStyledTextCtrl_GetCaretLineBackground( TSelf(wxStyledTextCtrl) _obj );
-/* SetCaretLineBack is changed name to SetCaretLineBackground.
-   So I avoid to use stc_gen.h for backward compatibility. */
-void wxStyledTextCtrl_SetCaretLineBackground(TSelf(wxStyledTextCtrl) _obj, TColorRGB(back_r,back_g,back_b));
-TClass(wxColour) wxStyledTextCtrl_GetCaretForeground( TSelf(wxStyledTextCtrl) _obj );
-TClass(wxString) wxStyledTextCtrl_GetLine( TSelf(wxStyledTextCtrl) _obj, int line);
-TClass(wxString) wxStyledTextCtrl_GetText( TSelf(wxStyledTextCtrl) _obj );
-TClass(wxString) wxStyledTextCtrl_GetTextRange( TSelf(wxStyledTextCtrl) _obj, int startPos, int endPos);
-TClass(wxString) wxStyledTextCtrl_GetSelectedText( TSelf(wxStyledTextCtrl) _obj );
-TClass(wxSTCDoc) wxStyledTextCtrl_CreateDocument( TSelf(wxStyledTextCtrl) _obj );
-TClass(wxColour) wxStyledTextCtrl_GetEdgeColour( TSelf(wxStyledTextCtrl) _obj );
-TClass(wxSTCDoc) wxStyledTextCtrl_GetDocPointer( TSelf(wxStyledTextCtrl) _obj );
-TClass(wxPoint) wxStyledTextCtrl_PointFromPosition( TSelf(wxStyledTextCtrl) _obj );
-
-
-/* wxStyledTextEvent */
-TClassDefExtend(wxStyledTextEvent, wxCommandEvent);
-
-/* The wxStyledTextEvent's get-functions */
-int wxStyledTextEvent_GetPosition( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetKey( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetModifiers( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetModificationType( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetLength( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetLinesAdded( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetLine( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetFoldLevelNow( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetFoldLevelPrev( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetMargin( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetMessage( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetWParam( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetLParam( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetListType( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetX( TSelf(wxStyledTextEvent) _obj);
-int wxStyledTextEvent_GetY( TSelf(wxStyledTextEvent) _obj);
-TClass(wxString) wxStyledTextEvent_GetDragText( TSelf(wxStyledTextEvent) _obj );
-TBool wxStyledTextEvent_GetDragAllowMove( TSelf(wxStyledTextEvent) _obj );
-int wxStyledTextEvent_GetDragResult( TSelf(wxStyledTextEvent) _obj );
-TBool wxStyledTextEvent_GetShift( TSelf(wxStyledTextEvent) _obj );
-TBool wxStyledTextEvent_GetControl( TSelf(wxStyledTextEvent) _obj );
-TBool wxStyledTextEvent_GetAlt( TSelf(wxStyledTextEvent) _obj );
-
-TClass(wxString) wxStyledTextEvent_GetText( TSelf(wxStyledTextEvent) _obj );
-TClass(wxStyledTextEvent) wxStyledTextEvent_Clone( TSelf(wxStyledTextEvent) _obj );
-
-
-/* The wxStyledTextEvent's set-functions */
-void wxStyledTextEvent_SetPosition( TSelf(wxStyledTextEvent) _obj, int pos);
-void wxStyledTextEvent_SetKey( TSelf(wxStyledTextEvent) _obj, int k);
-void wxStyledTextEvent_SetModifiers( TSelf(wxStyledTextEvent) _obj, int m);
-void wxStyledTextEvent_SetModificationType( TSelf(wxStyledTextEvent) _obj, int t);
-void wxStyledTextEvent_SetText( TSelf(wxStyledTextEvent) _obj, TClass(wxString) t);
-void wxStyledTextEvent_SetLength( TSelf(wxStyledTextEvent) _obj, int len);
-void wxStyledTextEvent_SetLinesAdded( TSelf(wxStyledTextEvent) _obj, int num);
-void wxStyledTextEvent_SetLine( TSelf(wxStyledTextEvent) _obj, int val);
-void wxStyledTextEvent_SetFoldLevelNow( TSelf(wxStyledTextEvent) _obj, int val);
-void wxStyledTextEvent_SetFoldLevelPrev( TSelf(wxStyledTextEvent) _obj, int val);
-void wxStyledTextEvent_SetMargin( TSelf(wxStyledTextEvent) _obj, int val);
-void wxStyledTextEvent_SetMessage( TSelf(wxStyledTextEvent) _obj, int val);
-void wxStyledTextEvent_SetWParam( TSelf(wxStyledTextEvent) _obj, int val);
-void wxStyledTextEvent_SetLParam( TSelf(wxStyledTextEvent) _obj, int val);
-void wxStyledTextEvent_SetListType( TSelf(wxStyledTextEvent) _obj, int val);
-void wxStyledTextEvent_SetX( TSelf(wxStyledTextEvent) _obj, int val);
-void wxStyledTextEvent_SetY( TSelf(wxStyledTextEvent) _obj, int val);
-void wxStyledTextEvent_SetDragText( TSelf(wxStyledTextEvent) _obj, TClass(wxString) val);
-void wxStyledTextEvent_SetDragAllowMove( TSelf(wxStyledTextEvent) _obj, TBool val);
-/* void wxStyledTextEvent_SetDragResult( TSelf(wxStyledTextEvent) _obj, TClass(wxDragResult) val); */
-void wxStyledTextEvent_SetDragResult( TSelf(wxStyledTextEvent) _obj, int val);
-
-/* The wxStyledTextEvent's events */
-int expEVT_STC_CHANGE();
-int expEVT_STC_STYLENEEDED();
-int expEVT_STC_CHARADDED();
-int expEVT_STC_SAVEPOINTREACHED();
-int expEVT_STC_SAVEPOINTLEFT();
-int expEVT_STC_ROMODIFYATTEMPT();
-int expEVT_STC_KEY();
-int expEVT_STC_DOUBLECLICK();
-int expEVT_STC_UPDATEUI();
-int expEVT_STC_MODIFIED();
-int expEVT_STC_MACRORECORD();
-int expEVT_STC_MARGINCLICK();
-int expEVT_STC_NEEDSHOWN();
-/* expEVT_STC_POSCHANGED is removed in wxWidgets-2.6.x. */
-/* int expEVT_STC_POSCHANGED(); */
-int expEVT_STC_PAINTED();
-int expEVT_STC_USERLISTSELECTION();
-int expEVT_STC_URIDROPPED();
-int expEVT_STC_DWELLSTART();
-int expEVT_STC_DWELLEND();
-int expEVT_STC_START_DRAG();
-int expEVT_STC_DRAG_OVER();
-int expEVT_STC_DO_DROP();
-int expEVT_STC_ZOOM();
-int expEVT_STC_HOTSPOT_CLICK();
-int expEVT_STC_HOTSPOT_DCLICK();
-int expEVT_STC_CALLTIP_CLICK();
-int expEVT_STC_AUTOCOMP_SELECTION(); 
-
-/* Styled Text Control as an XML Resource */
-TClassDefExtend(wxXmlResource,wxObject)
-TClass(wxStyledTextCtrl) wxXmlResource_GetStyledTextCtrl( TSelf(wxWindow) _obj, TClass(wxString) str_id );
+
+#include "stc_gen.h" 
+
+/* wxStyledTextCtrl */
+TClassDefExtend(wxStyledTextCtrl,wxControl)
+TClass(wxStyledTextCtrl) wxStyledTextCtrl_Create( TClass(wxWindow) _prt, int _id, TClass(wxString) _txt, TRect(_lft,_top,_wdt,_hgt), int style );
+
+
+/* tricky handwritten functions */
+TClassDef(wxSTCDoc)
+TClassDef(wxMemoryBuffer)
+TClass(wxColour) wxStyledTextCtrl_IndicatorGetForeground( TSelf(wxStyledTextCtrl) _obj, int indic);
+TClass(wxColour) wxStyledTextCtrl_GetCaretLineBackground( TSelf(wxStyledTextCtrl) _obj );
+/* SetCaretLineBack is changed name to SetCaretLineBackground.
+   So I avoid to use stc_gen.h for backward compatibility. */
+void wxStyledTextCtrl_SetCaretLineBackground(TSelf(wxStyledTextCtrl) _obj, TColorRGB(back_r,back_g,back_b));
+TClass(wxColour) wxStyledTextCtrl_GetCaretForeground( TSelf(wxStyledTextCtrl) _obj );
+TClass(wxString) wxStyledTextCtrl_GetLine( TSelf(wxStyledTextCtrl) _obj, int line);
+TClass(wxString) wxStyledTextCtrl_GetText( TSelf(wxStyledTextCtrl) _obj );
+TClass(wxString) wxStyledTextCtrl_GetTextRange( TSelf(wxStyledTextCtrl) _obj, int startPos, int endPos);
+TClass(wxString) wxStyledTextCtrl_GetSelectedText( TSelf(wxStyledTextCtrl) _obj );
+TClass(wxSTCDoc) wxStyledTextCtrl_CreateDocument( TSelf(wxStyledTextCtrl) _obj );
+TClass(wxColour) wxStyledTextCtrl_GetEdgeColour( TSelf(wxStyledTextCtrl) _obj );
+TClass(wxSTCDoc) wxStyledTextCtrl_GetDocPointer( TSelf(wxStyledTextCtrl) _obj );
+TClass(wxPoint) wxStyledTextCtrl_PointFromPosition( TSelf(wxStyledTextCtrl) _obj );
+
+
+/* wxStyledTextEvent */
+TClassDefExtend(wxStyledTextEvent, wxCommandEvent);
+
+/* The wxStyledTextEvent's get-functions */
+int wxStyledTextEvent_GetPosition( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetKey( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetModifiers( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetModificationType( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetLength( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetLinesAdded( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetLine( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetFoldLevelNow( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetFoldLevelPrev( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetMargin( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetMessage( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetWParam( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetLParam( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetListType( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetX( TSelf(wxStyledTextEvent) _obj);
+int wxStyledTextEvent_GetY( TSelf(wxStyledTextEvent) _obj);
+TClass(wxString) wxStyledTextEvent_GetDragText( TSelf(wxStyledTextEvent) _obj );
+TBool wxStyledTextEvent_GetDragAllowMove( TSelf(wxStyledTextEvent) _obj );
+int wxStyledTextEvent_GetDragResult( TSelf(wxStyledTextEvent) _obj );
+TBool wxStyledTextEvent_GetShift( TSelf(wxStyledTextEvent) _obj );
+TBool wxStyledTextEvent_GetControl( TSelf(wxStyledTextEvent) _obj );
+TBool wxStyledTextEvent_GetAlt( TSelf(wxStyledTextEvent) _obj );
+
+TClass(wxString) wxStyledTextEvent_GetText( TSelf(wxStyledTextEvent) _obj );
+TClass(wxStyledTextEvent) wxStyledTextEvent_Clone( TSelf(wxStyledTextEvent) _obj );
+
+
+/* The wxStyledTextEvent's set-functions */
+void wxStyledTextEvent_SetPosition( TSelf(wxStyledTextEvent) _obj, int pos);
+void wxStyledTextEvent_SetKey( TSelf(wxStyledTextEvent) _obj, int k);
+void wxStyledTextEvent_SetModifiers( TSelf(wxStyledTextEvent) _obj, int m);
+void wxStyledTextEvent_SetModificationType( TSelf(wxStyledTextEvent) _obj, int t);
+void wxStyledTextEvent_SetText( TSelf(wxStyledTextEvent) _obj, TClass(wxString) t);
+void wxStyledTextEvent_SetLength( TSelf(wxStyledTextEvent) _obj, int len);
+void wxStyledTextEvent_SetLinesAdded( TSelf(wxStyledTextEvent) _obj, int num);
+void wxStyledTextEvent_SetLine( TSelf(wxStyledTextEvent) _obj, int val);
+void wxStyledTextEvent_SetFoldLevelNow( TSelf(wxStyledTextEvent) _obj, int val);
+void wxStyledTextEvent_SetFoldLevelPrev( TSelf(wxStyledTextEvent) _obj, int val);
+void wxStyledTextEvent_SetMargin( TSelf(wxStyledTextEvent) _obj, int val);
+void wxStyledTextEvent_SetMessage( TSelf(wxStyledTextEvent) _obj, int val);
+void wxStyledTextEvent_SetWParam( TSelf(wxStyledTextEvent) _obj, int val);
+void wxStyledTextEvent_SetLParam( TSelf(wxStyledTextEvent) _obj, int val);
+void wxStyledTextEvent_SetListType( TSelf(wxStyledTextEvent) _obj, int val);
+void wxStyledTextEvent_SetX( TSelf(wxStyledTextEvent) _obj, int val);
+void wxStyledTextEvent_SetY( TSelf(wxStyledTextEvent) _obj, int val);
+void wxStyledTextEvent_SetDragText( TSelf(wxStyledTextEvent) _obj, TClass(wxString) val);
+void wxStyledTextEvent_SetDragAllowMove( TSelf(wxStyledTextEvent) _obj, TBool val);
+/* void wxStyledTextEvent_SetDragResult( TSelf(wxStyledTextEvent) _obj, TClass(wxDragResult) val); */
+void wxStyledTextEvent_SetDragResult( TSelf(wxStyledTextEvent) _obj, int val);
+
+/* The wxStyledTextEvent's events */
+int expEVT_STC_CHANGE();
+int expEVT_STC_STYLENEEDED();
+int expEVT_STC_CHARADDED();
+int expEVT_STC_SAVEPOINTREACHED();
+int expEVT_STC_SAVEPOINTLEFT();
+int expEVT_STC_ROMODIFYATTEMPT();
+int expEVT_STC_KEY();
+int expEVT_STC_DOUBLECLICK();
+int expEVT_STC_UPDATEUI();
+int expEVT_STC_MODIFIED();
+int expEVT_STC_MACRORECORD();
+int expEVT_STC_MARGINCLICK();
+int expEVT_STC_NEEDSHOWN();
+/* expEVT_STC_POSCHANGED is removed in wxWidgets-2.6.x. */
+/* int expEVT_STC_POSCHANGED(); */
+int expEVT_STC_PAINTED();
+int expEVT_STC_USERLISTSELECTION();
+int expEVT_STC_URIDROPPED();
+int expEVT_STC_DWELLSTART();
+int expEVT_STC_DWELLEND();
+int expEVT_STC_START_DRAG();
+int expEVT_STC_DRAG_OVER();
+int expEVT_STC_DO_DROP();
+int expEVT_STC_ZOOM();
+int expEVT_STC_HOTSPOT_CLICK();
+int expEVT_STC_HOTSPOT_DCLICK();
+int expEVT_STC_CALLTIP_CLICK();
+int expEVT_STC_AUTOCOMP_SELECTION(); 
+
+/* Styled Text Control as an XML Resource */
+TClassDefExtend(wxXmlResource,wxObject)
+TClass(wxStyledTextCtrl) wxXmlResource_GetStyledTextCtrl( TSelf(wxWindow) _obj, TClass(wxString) str_id );
diff --git a/src/include/wxc.h b/src/include/wxc.h
--- a/src/include/wxc.h
+++ b/src/include/wxc.h
@@ -1,553 +1,554 @@
-#ifndef wxc_h
-#define wxc_h
-
-/* eiffel uses stdcall but we use __cdecl!! */
-#ifdef _stdcall
-# undef _stdcall
-#endif
-
-#define _stdcall
-
-#define EXPORT
-
-
-/*-----------------------------------------------------------------------------
-
-  Standard includes
-
------------------------------------------------------------------------------*/
-
-#include "wxc_types.h"
-#include "wxc_glue.h"
-
-
-
-
-
-/*-----------------------------------------------------------------------------
-
-  Modular extra exports
-
------------------------------------------------------------------------------*/
-
-#include "dragimage.h"
-#include "graphicscontext.h"
-#include "glcanvas.h"
-#include "sound.h"
-#include "managed.h"
-#include "mediactrl.h"
-#include "previewframe.h"
-#include "printout.h"
-#include "textstream.h"
-#include "stc.h"
-
-/*-----------------------------------------------------------------------------
-  Extra exports
------------------------------------------------------------------------------*/
-
-/* wxClosure */
-TClassDefExtend(wxClosure,wxObject)
-TClass(wxClosure)  wxClosure_Create( TClosureFun _fun_CEvent, void* _data );
-void*              wxClosure_GetData( TSelf(wxClosure) _obj );
-
-TClass(wxClosure)  wxEvtHandler_GetClosure( TSelf(wxEvtHandler) _obj, int id, int type );
-
-/** Get the client data in the form of a closure. Use 'closureGetData' to get to the actual data.*/
-TClass(wxClosure)  wxEvtHandler_GetClientClosure( TSelf(wxEvtHandler) _obj );
-/** Set the client data as a closure. The closure data contains the data while the function is called on deletion. */
-void               wxEvtHandler_SetClientClosure( TSelf(wxEvtHandler) _obj, TClass(wxClosure) closure );
-
-/** Get the reference data of an object as a closure: only works if properly initialized. Use 'closureGetData' to get to the actual data. */
-TClass(wxClosure)  wxObject_GetClientClosure( TSelf(wxObject) _obj );
-/** Set the reference data of an object as a closure. The closure data contains the data while the function is called on deletion. Returns 'True' on success. Only works if the reference data is unused by wxWidgets! */
-void               wxObject_SetClientClosure( TSelf(wxObject) _obj, TClass(wxClosure) closure );
-
-
-/* extra class definitions for classInfo */
-
-TClassDefExtend(wxGauge95,wxGauge)
-
-TClassDefExtend(wxGaugeMSW,wxGauge)
-
-TClassDefExtend(wxSlider95,wxSlider)
-
-TClassDefExtend(wxSliderMSW,wxSlider)
-
-
-
-
-
-/* Object */
-
-void wxObject_Delete( TSelf(wxObject) obj );
-
-
-/* Frame */
-TClass(wxString) wxFrame_GetTitle( TSelf(wxFrame) _obj );
-void        wxFrame_SetTitle( TSelf(wxFrame) _frame, TClass(wxString) _txt );
-TBool       wxFrame_SetShape( TSelf(wxFrame) self, TClass(wxRegion) region);
-
-TBool       wxFrame_ShowFullScreen( TSelf(wxFrame) self, TBool show, int style);
-
-TBool       wxFrame_IsFullScreen( TSelf(wxFrame) self );
-
-void        wxFrame_Centre( TSelf(wxFrame) self, int orientation );
-
-
-/* Create/Delete */
-void   wxCursor_Delete( TSelf(wxCursor) _obj );
-void  wxDateTime_Delete(TSelf(wxDateTime) _obj);
-
-/* wxMouseEvent */
-int   wxMouseEvent_GetWheelDelta( TSelf(wxMouseEvent) _obj );
-int   wxMouseEvent_GetWheelRotation( TSelf(wxMouseEvent) _obj );
-int   wxMouseEvent_GetButton( TSelf(wxMouseEvent) _obj );
-
-
-TClass(wxPoint) wxcGetMousePosition( );
-
-
-
-
-
-/* wxDC */
-
-double wxDC_GetUserScaleX( TSelf(wxDC) dc );
-
-double wxDC_GetUserScaleY( TSelf(wxDC) dc );
-
-
-/* wxWindow */
-TClass(wxPoint) wxWindow_ConvertDialogToPixelsEx( TSelf(wxWindow) _obj );
-
-TClass(wxPoint) wxWindow_ConvertPixelsToDialogEx( TSelf(wxWindow) _obj );
-
-TClass(wxPoint) wxWindow_ScreenToClient2( TSelf(wxWindow) _obj, TPoint(x,y) );
-
-
-
-/* wxString helpers */
-
-TClass(wxString) wxString_Create( TString buffer );
-
-TClass(wxString) wxString_CreateLen( TString buffer, int len );
-
-void             wxString_Delete( TSelf(wxString) s );
-
-TStringLen       wxString_GetString( TSelf(wxString) s, TStringOut buffer );
-
-size_t           wxString_Length( TSelf(wxString) s );
-
-
-
-/* menu */
-TClass(wxMenuBar) wxMenu_GetMenuBar( TSelf(wxMenu) _obj );
-
-TClass(wxFrame)   wxMenuBar_GetFrame( TSelf(wxMenuBar) _obj );
-
-
-
-int wxListEvent_GetCacheFrom( TSelf(wxListEvent) _obj);
-
-int wxListEvent_GetCacheTo( TSelf(wxListEvent) _obj);
-
-
-
-void wxListCtrl_AssignImageList( TSelf(wxListCtrl) _obj, TClass(wxImageList) images, int which );
-
-void wxListCtrl_GetColumn2( TSelf(wxListCtrl) _obj, int col, TClassRef(wxListItem) item);
-
-void wxListCtrl_GetItem2( TSelf(wxListCtrl) _obj, TClassRef(wxListItem) info);
-
-TClass(wxPoint) wxListCtrl_GetItemPosition2( TSelf(wxListCtrl) _obj, int item );
-
-/** Sort items in a list control. Takes a closure that is called with a 'CommandEvent' where the @Int@ is the item data of the first item and the @ExtraLong@ the item data of the second item. The event handler should set the @Int@ to 0 when the items are equal, -1 when the first is less, and 1 when the second is less. */
-
-TBool wxListCtrl_SortItems2(TSelf(wxListCtrl) _obj, TClass(wxClosure) closure );
-
-
-
-/* tree ctrl */
-
-TClassDefExtend(wxcTreeItemData,wxTreeItemData)
-
-
-
-/** Create tree item data with a closure. The closure data contains the data while the function is called on deletion. */
-
-TClass(wxcTreeItemData) wxcTreeItemData_Create( TClass(wxClosure) closure );
-
-/** Get the client data in the form of a closure. Use 'closureGetData' to get to the actual data.*/
-
-TClass(wxClosure) wxcTreeItemData_GetClientClosure( TSelf(wxcTreeItemData) self );
-
-/** Set the tree item data with a closure. The closure data contains the data while the function is called on deletion. */
-
-void  wxcTreeItemData_SetClientClosure( TSelf(wxcTreeItemData) self, TClass(wxClosure) closure );
-
-
-
-TClass(wxTreeItemId) wxTreeItemId_Clone( TSelf(wxTreeItemId) _obj);
-
-TClass(wxTreeItemId) wxTreeItemId_CreateFromValue(TIntPtr value);
-
-TIntPtr wxTreeItemId_GetValue( TSelf(wxTreeItemId) _obj);
-
-
-
-
-
-TClass(wxKeyEvent) wxTreeEvent_GetKeyEvent( TSelf(wxTreeEvent) _obj);
-
-int    wxTreeEvent_IsEditCancelled( TSelf(wxTreeEvent) _obj);
-
-void   wxTreeEvent_Allow( TSelf(wxTreeEvent) _obj);
-
-
-
-TClass(wxTreeCtrl) wxTreeCtrl_Create2( TClass(wxWindow) _prt, int _id, TRect(_lft,_top,_wdt,_hgt), int _stl );
-
-void   wxTreeCtrl_InsertItem2( TSelf(wxTreeCtrl) _obj, TClass(wxWindow) parent, TClass(wxTreeItemId) idPrevious, TClass(wxString) text, int image, int selectedImage, TClass(wxClosure) closure, TClassRef(wxTreeItemId) _item );
-
-void   wxTreeCtrl_InsertItemByIndex2( TSelf(wxTreeCtrl) _obj, TClass(wxWindow) parent, int index, TClass(wxString) text, int image, int selectedImage, TClass(wxClosure) closure, TClassRef(wxTreeItemId) _item );
-
-TClass(wxClosure)  wxTreeCtrl_GetItemClientClosure( TSelf(wxTreeCtrl) _obj, TClass(wxTreeItemId) item );
-
-void   wxTreeCtrl_SetItemClientClosure( TSelf(wxTreeCtrl) _obj, TClass(wxTreeItemId) item, TClass(wxClosure) closure );
-
-void   wxTreeCtrl_AssignImageList(TSelf(wxTreeCtrl) _obj, TClass(wxImageList) imageList );
-
-void   wxTreeCtrl_AssignStateImageList(TSelf(wxTreeCtrl) _obj, TClass(wxImageList) imageList );
-
-
-
-
-
-/* dc */
-
-/** Get the color of pixel. Note: this is not a portable method at the moment and its use is discouraged. */
-
-void wxDC_GetPixel2( TSelf(wxDC) _obj, TPoint(x,y), TClassRef(wxColour) col);
-
-
-
-/* scrolledwindow */
-void wxScrolledWindow_SetScrollRate( TSelf(wxScrolledWindow) _obj, int xstep, int ystep );
-
-
-/* wxObject */
-TClassDef(wxObject)
-TClass(wxClassInfo)  wxObject_GetClassInfo( TSelf(wxObject) _obj );
-TBool       wxObject_IsKindOf( TSelf(wxObject) _obj, TClass(wxClassInfo) classInfo );
-TBool       wxObject_IsScrolledWindow( TSelf(wxObject) _obj );
-
-
-/* wxClassInfo */
-TClassDef(wxClassInfo)
-TClass(wxClassInfo)  wxClassInfo_FindClass( TClass(wxString) _txt );
-TClass(wxString) wxClassInfo_GetBaseClassName1( TSelf(wxClassInfo) _obj );
-TClass(wxString) wxClassInfo_GetBaseClassName2( TSelf(wxClassInfo) _obj );
-TClass(wxString) wxClassInfo_GetClassNameEx( TSelf(wxClassInfo) _obj );
-int         wxClassInfo_GetSize( TSelf(wxClassInfo) _obj );
-TBool       wxClassInfo_IsKindOfEx( TSelf(wxClassInfo) _obj, TClass(wxClassInfo) classInfo );
-
-/* wxNotebook */
-void        wxNotebook_AssignImageList( TSelf(wxNotebook) _obj, TClass(wxImageList) imageList );
-
-/* Timers */
-TClassDefExtend(wxTimerEx,wxTimer)
-void               wxTimerEx_Connect( TSelf(wxTimerEx) _obj, TClass(wxClosure) closure );
-TClass(wxTimerEx)  wxTimerEx_Create(  );
-TClass(wxClosure)  wxTimerEx_GetClosure( TSelf(wxTimerEx) _obj );
-
-/* Menu */
-
-void  wxMenu_AppendRadioItem( TSelf(wxMenu) self, int id, TClass(wxString) text, TClass(wxString) help);
-
-
-
-
-
-/* Menu Item */
-TClass(wxMenuItem)  wxMenuItem_CreateSeparator();
-TClass(wxMenuItem)  wxMenuItem_CreateEx(int id, TClass(wxString) label, TClass(wxString) help, int itemkind, TClass(wxMenu) submenu);
-
-
-/* Toolbar */
-
-void wxToolBar_AddTool2( TSelf(wxToolBar) _obj, int toolId, TClass(wxString) label, TClass(wxBitmap) bmp, TClass(wxBitmap) bmpDisabled, int itemKind, TClass(wxString) shortHelp, TClass(wxString) longHelp );
-
-
-/* Progress dialog */
-TClass(wxProgressDialog) wxProgressDialog_Create( TClass(wxString) title, TClass(wxString) message, int max, TClass(wxWindow) parent, int style );
-TBool wxProgressDialog_Update(TSelf(wxProgressDialog) obj, int value );
-TBool wxProgressDialog_UpdateWithMessage( TSelf(wxProgressDialog) obj, int value, TClass(wxString) message );
-void wxProgressDialog_Resume( TSelf(wxProgressDialog) obj );
-
-/** Get the version number of wxWidgets as a number composed of the major version times 1000, minor version times 100, and the release number. For example, release 2.1.15 becomes 2115. */
-int wxVersionNumber();
-/** Check if a preprocessor macro is defined. For example, @wxIsDefined("__WXGTK__")@ or @wxIsDefined("wxUSE_GIF")@. */
-TBoolInt wxIsDefined( TString s );
-
-/* Input sink */
-TClassDefExtend(wxInputSink,wxThread)
-
-/** Create an event driven input stream. It is unsafe to reference the original inputStream after this call! The last parameter @bufferLen@ gives the default input batch size. The sink is automatically destroyed whenever the input stream has no more input. */
-TClass(wxInputSink) wxInputSink_Create( TClass(wxInputStream) input, TClass(wxEvtHandler) evtHandler, int bufferLen );
-/** After creation, retrieve the @id@ of the sink to connect to @wxEVT_INPUT_SINK@ events. */
-int   wxInputSink_GetId( TSelf(wxInputSink) obj );
-/** After event connection, start non-blocking reading of the inputstream. This will generate @inputSinkEvent@ events. */
-void  wxInputSink_Start( TSelf(wxInputSink) obj );
-
-/* Input sink events */
-TClassDefExtend(wxInputSinkEvent,wxEvent)
-
-/** Get the input status (@wxSTREAM_NO_ERROR@ is ok). */
-int wxInputSinkEvent_LastError( TSelf(wxInputSinkEvent) obj );
-/** The number of characters in the input buffer. */
-int wxInputSinkEvent_LastRead( TSelf(wxInputSinkEvent) obj );
-/** The input buffer. */
-char* wxInputSinkEvent_LastInput( TSelf(wxInputSinkEvent) obj );
-
-
-/* html events */
-TClassDefExtend(wxcHtmlEvent,wxCommandEvent)
-
-TClass(wxMouseEvent) wxcHtmlEvent_GetMouseEvent( TSelf(wxcHtmlEvent) self );
-TClass(wxHtmlCell)   wxcHtmlEvent_GetHtmlCell( TSelf(wxcHtmlEvent) self );
-
-/** Return the /id/ attribute of the associated html cell (if applicable) */
-
-TClass(wxString)     wxcHtmlEvent_GetHtmlCellId( TSelf(wxcHtmlEvent) self );
-
-/** Return the /href/ attribute of the associated html anchor (if applicable) */
-TClass(wxString)     wxcHtmlEvent_GetHref( TSelf(wxcHtmlEvent) self );
-TClass(wxString)     wxcHtmlEvent_GetTarget( TSelf(wxcHtmlEvent) self );
-TClass(wxPoint)      wxcHtmlEvent_GetLogicalPosition( TSelf(wxcHtmlEvent) self );
-
-/* html window */
-TClassDefExtend(wxcHtmlWindow,wxHtmlWindow)
-TClass(wxcHtmlWindow) wxcHtmlWindow_Create( TClass(wxWindow) _prt, int _id, TRect(_lft,_top,_wdt,_hgt), int _stl, TClass(wxString) _txt );
-
-TClass(wxHtmlWindow) wxHtmlWindow_Create( TClass(wxWindow) _prt, int _id, TRect(_lft,_top,_wdt,_hgt), int _stl, TClass(wxString) _txt );
-TBool                wxHtmlWindow_AppendToPage( TSelf(wxHtmlWindow) _obj, TClass(wxString) source );
-TClass(wxHtmlContainerCell) wxHtmlWindow_GetInternalRepresentation( TSelf(wxHtmlWindow) _obj );
-TClass(wxString)     wxHtmlWindow_GetOpenedAnchor( TSelf(wxHtmlWindow) _obj ) ;
-TClass(wxString)     wxHtmlWindow_GetOpenedPage( TSelf(wxHtmlWindow) _obj );
-TClass(wxString)     wxHtmlWindow_GetOpenedPageTitle( TSelf(wxHtmlWindow) _obj );
-TClass(wxFrame)      wxHtmlWindow_GetRelatedFrame( TSelf(wxHtmlWindow) _obj );
-TBool                wxHtmlWindow_HistoryBack( TSelf(wxHtmlWindow) _obj);
-TBool                wxHtmlWindow_HistoryCanBack( TSelf(wxHtmlWindow) _obj );
-TBool                wxHtmlWindow_HistoryCanForward( TSelf(wxHtmlWindow) _obj );
-void                 wxHtmlWindow_HistoryClear( TSelf(wxHtmlWindow) _obj);
-TBool                wxHtmlWindow_HistoryForward( TSelf(wxHtmlWindow) _obj );
-TBool                wxHtmlWindow_LoadPage( TSelf(wxHtmlWindow) _obj, TClass(wxString) location );
-void                 wxHtmlWindow_ReadCustomization( TSelf(wxHtmlWindow) _obj, TClass(wxConfigBase) cfg, TClass(wxString) path);
-void                 wxHtmlWindow_SetBorders( TSelf(wxHtmlWindow) _obj, int b );
-void                 wxHtmlWindow_SetFonts( TSelf(wxHtmlWindow) _obj, TClass(wxString) normal_face, TClass(wxString) fixed_face, int * sizes );
-void                 wxHtmlWindow_SetPage( TSelf(wxHtmlWindow) _obj, TClass(wxString) source );
-void                 wxHtmlWindow_SetRelatedFrame( TSelf(wxHtmlWindow) _obj , TClass(wxFrame) frame, TClass(wxString) format );
-void                 wxHtmlWindow_SetRelatedStatusBar( TSelf(wxHtmlWindow) _obj, int bar);
-void                 wxHtmlWindow_WriteCustomization( TSelf(wxHtmlWindow) _obj, TClass(wxConfigBase) cfg, TClass(wxString) path );
-
-/* wxGridCellTextEnterEditor */
-
-TClassDefExtend(wxGridCellTextEnterEditor,wxGridCellTextEditor)
-
-TClass(wxGridCellTextEnterEditor) wxGridCellTextEnterEditor_Ctor();
-
-
-
-/* logger */
-TClass(wxLogStderr)   wxLogStderr_Create();
-TClass(wxLogStderr)   wxLogStderr_CreateStdOut();
-TClass(wxLogNull)     wxLogNull_Create();
-TClass(wxLogTextCtrl) wxLogTextCtrl_Create( TClass(wxTextCtrl) text );
-TClass(wxLogWindow)   wxLogWindow_Create( TClass(wxWindow) parent, TString title, TBool showit, TBool passthrough );
-TClass(wxFrame)       wxLogWindow_GetFrame( TSelf(wxLogWindow) obj );
-
-void   LogError(TClass(wxString) _msg);
-void   LogFatalError(TClass(wxString) _msg);
-void   LogWarning(TClass(wxString) _msg);
-void   LogMessage(TClass(wxString) _msg);
-void   LogVerbose(TClass(wxString) _msg);
-void   LogStatus(TClass(wxString) _msg);
-void   LogSysError(TClass(wxString) _msg);
-void   LogDebug(TClass(wxString) _msg);
-void   LogTrace(TClass(wxString) mask, TClass(wxString) _msg);
-
-void       wxLog_AddTraceMask( TSelf(wxLog) _obj, TClass(wxString) str );
-void       wxLog_Delete( TSelf(wxLog) _obj );
-void       wxLog_DontCreateOnDemand( TSelf(wxLog) _obj );
-void       wxLog_Flush( TSelf(wxLog) _obj );
-void       wxLog_FlushActive( TSelf(wxLog) _obj );
-TClass(wxLog)  wxLog_GetActiveTarget(  );
-char*      wxLog_GetTimestamp( TSelf(wxLog) _obj );
-int        wxLog_GetTraceMask( TSelf(wxLog) _obj );
-int        wxLog_GetVerbose( TSelf(wxLog) _obj );
-TBool      wxLog_HasPendingMessages( TSelf(wxLog) _obj );
-TBool      wxLog_IsAllowedTraceMask( TSelf(wxLog) _obj, TClass(wxMask) mask );
-void       wxLog_OnLog( TSelf(wxLog) _obj, int level, TStringVoid szString, int t );
-void       wxLog_RemoveTraceMask( TSelf(wxLog) _obj, TClass(wxString) str );
-void       wxLog_Resume( TSelf(wxLog) _obj );
-TClass(wxLog)  wxLog_SetActiveTarget( TSelf(wxLog) pLogger );
-void       wxLog_SetTimestamp( TSelf(wxLog) _obj, TStringVoid ts );
-void       wxLog_SetTraceMask( TSelf(wxLog) _obj, int ulMask );
-void       wxLog_SetVerbose( TSelf(wxLog) _obj, TBoolInt bVerbose );
-void       wxLog_Suspend( TSelf(wxLog) _obj );
-
-
-/* process */
-TClass(wxProcess) wxProcess_Open( TClass(wxString) cmd, int flags );
-TBool      wxProcess_IsErrorAvailable( TSelf(wxProcess) _obj );
-TBool      wxProcess_IsInputAvailable( TSelf(wxProcess) _obj );
-TBool      wxProcess_IsInputOpened( TSelf(wxProcess) _obj );
-int        wxKill( int pid, int signal );
-
-void       wxStreamBase_Delete( TSelf(wxStreamBase) obj);
-
-/* Dialogs */
-void        wxGetColourFromUser(TClass(wxWindow) parent, TClass(wxColour) colInit, TClassRef(wxColour) colour );
-void        wxGetFontFromUser(TClass(wxWindow) parent, TClass(wxFont) fontInit, TClassRef(wxFont) font );
-TStringLen  wxGetPasswordFromUser(TString message, TString caption, TString defaultText, TClass(wxWindow) parent, TStringOut _buf );
-TStringLen  wxGetTextFromUser(TString message, TString caption, TString defaultText, TClass(wxWindow) parent, TPoint(x,y), TBool center, TStringOut _buf );
-long        wxGetNumberFromUser( TClass(wxString) message, TClass(wxString) prompt, TClass(wxString) caption, long value, long min, long max, TClass(wxWindow) parent, TPoint(x,y) );
-void        wxcBell();
-void        wxcBeginBusyCursor();
-void        wxcEndBusyCursor();
-void        wxcIsBusy();
-
-/* text ctrl */
-TBool               wxTextCtrl_EmulateKeyPress( TSelf(wxTextCtrl) _obj, TClass(wxKeyEvent) keyevent);
-TClass (wxTextAttr) wxTextCtrl_GetDefaultStyle( TSelf(wxTextCtrl) _obj );
-TClass(wxString)    wxTextCtrl_GetRange( TSelf(wxTextCtrl) _obj, long from, long to );
-TClass(wxString)    wxTextCtrl_GetStringSelection( TSelf(wxTextCtrl) _obj );
-TBool               wxTextCtrl_IsMultiLine( TSelf(wxTextCtrl) _obj );
-TBool               wxTextCtrl_IsSingleLine( TSelf(wxTextCtrl) _obj );
-TBool               wxTextCtrl_SetDefaultStyle( TSelf(wxTextCtrl) _obj, TClass(wxTextAttr) style);
-void                wxTextCtrl_SetMaxLength( TSelf(wxTextCtrl) _obj, long len );
-TBool               wxTextCtrl_SetStyle( TSelf(wxTextCtrl) _obj, long start, long end, TClass(wxTextAttr) style );
-
-/* text attributes */
-TClass(wxTextAttr)  wxTextAttr_Create(TClass(wxColour) colText, TClass(wxColour) colBack, TClass(wxFont) font);
-TClass(wxTextAttr)  wxTextAttr_CreateDefault();
-void      wxTextAttr_Delete( TSelf(wxTextAttr) _obj );
-void      wxTextAttr_GetBackgroundColour( TSelf(wxTextAttr) _obj, TClassRef(wxColour) colour  );
-void      wxTextAttr_GetFont( TSelf(wxTextAttr) _obj, TClassRef(wxFont) font );
-void      wxTextAttr_GetTextColour( TSelf(wxTextAttr) _obj, TClassRef(wxColour) colour );
-TBool     wxTextAttr_HasBackgroundColour( TSelf(wxTextAttr) _obj );
-TBool     wxTextAttr_HasFont( TSelf(wxTextAttr) _obj );
-TBool     wxTextAttr_HasTextColour( TSelf(wxTextAttr) _obj );
-TBool     wxTextAttr_IsDefault( TSelf(wxTextAttr) _obj );
-void      wxTextAttr_SetTextColour(TSelf(wxTextAttr) _obj, TClass(wxColour) colour );
-void      wxTextAttr_SetBackgroundColour(TSelf(wxTextAttr) _obj, TClass(wxColour) colour );
-void      wxTextAttr_SetFont(TSelf(wxTextAttr) _obj, TClass(wxFont) font );
-
-
-/* ConfigBase */
-
-TClassDefExtend(wxFileConfig,wxConfigBase)
-
-
-
-TClass(wxConfigBase) wxConfigBase_Get();
-
-void                 wxConfigBase_Set( TClass(wxConfigBase) self );
-
-TClass(wxFileConfig) wxFileConfig_Create( TClass(wxInputStream) inp );
-
-
-
-/* Image.cpp */
-
-TClass(wxBitmap) wxBitmap_CreateFromImage( TClass(wxImage) image, int depth );
-
-TClass(wxImage) wxImage_CreateFromDataEx( TSize(width,height), void* data, TBoolInt isStaticData);
-
-void wxImage_Delete( TSelf(wxImage) image );
-
-
-
-/** Create from rgb int. */
-
-TClass(wxColour) wxColour_CreateFromInt(int rgb);
-
-/** Return colors as an rgb int. */
-
-int wxColour_GetInt( TSelf(wxColour) colour);
-
-/** Create from rgba unsigned int. */
-
-TClass(wxColour) wxColour_CreateFromUnsignedInt(TUInt rgba);
-
-/** Return colors as an rgba unsigned int. */
-
-TUInt wxColour_GetUnsignedInt( TSelf(wxColour) colour);
-
-
-
-/** Create from system colour. */
-
-TClass(wxColour) wxcSystemSettingsGetColour( int systemColour );
-
-
-
-
-
-/* basic pixel manipulation */
-
-void wxcSetPixelRGB( TUInt8* buffer, int width, TPoint(x,y), int rgb  );
-
-int  wxcGetPixelRGB( TUInt8* buffer, int width, TPoint(x,y) );
-
-void wxcSetPixelRowRGB( TUInt8* buffer, int width, TPoint(x,y), int rgbStart, int rgbEnd, int count );
-
-void wxcInitPixelsRGB( TUInt8* buffer, TSize(width,height), int rgba );
-
-void wxcSetPixelRGBA( TUInt8* buffer, int width, TPoint(x,y), TUInt rgba  );
-
-TUInt  wxcGetPixelRGBA( TUInt8* buffer, int width, TPoint(x,y) );
-
-void wxcSetPixelRowRGBA( TUInt8* buffer, int width, TPoint(x,y), int rgbaStart, int rgbEnd, TUInt count );
-
-void wxcInitPixelsRGBA( TUInt8* buffer, TSize(width,height), TUInt rgba );
-
-
-
-/* malloc/free */
-
-void* wxcMalloc(int size );
-
-void  wxcFree( void* p );
-
-
-
-/* wakeup idle */
-
-void wxcWakeUpIdle();
-
-
-
-/* application directory */
-
-/** Return the directory of the application. On unix systems (except MacOS X), it is not always possible to determine this correctly. Therefore, the APPDIR environment variable is returned first if it is defined. */
-
-TClass(wxString) wxGetApplicationDir();
-
-/** Return the full path of the application. On unix systems (except MacOS X), it is not always possible to determine this correctly. */
-
-TClass(wxString) wxGetApplicationPath();
-
-
-
-/* ELJApp */
-void  ELJApp_InitializeC( TClass(wxClosure) closure, int _argc, TChar** _argv );
-
-int   ELJApp_GetIdleInterval();
-
-void  ELJApp_SetIdleInterval( int interval );
-
-
-
-
-#endif /* wxc_h */
+#ifndef wxc_h
+#define wxc_h
+
+/* eiffel uses stdcall but we use __cdecl!! */
+#ifdef _stdcall
+# undef _stdcall
+#endif
+
+#define _stdcall
+
+#define EXPORT
+
+
+/*-----------------------------------------------------------------------------
+
+  Standard includes
+
+-----------------------------------------------------------------------------*/
+
+#include "wxc_types.h"
+#include "wxc_glue.h"
+
+
+
+
+
+/*-----------------------------------------------------------------------------
+
+  Modular extra exports
+
+-----------------------------------------------------------------------------*/
+
+#include "dragimage.h"
+#include "graphicscontext.h"
+#include "glcanvas.h"
+#include "sound.h"
+#include "managed.h"
+#include "mediactrl.h"
+#include "previewframe.h"
+#include "printout.h"
+#include "textstream.h"
+#include "stc.h"
+
+/*-----------------------------------------------------------------------------
+  Extra exports
+-----------------------------------------------------------------------------*/
+
+/* wxClosure */
+TClassDefExtend(wxClosure,wxObject)
+TClass(wxClosure)  wxClosure_Create( TClosureFun _fun_CEvent, void* _data );
+void*              wxClosure_GetData( TSelf(wxClosure) _obj );
+
+TClass(wxClosure)  wxEvtHandler_GetClosure( TSelf(wxEvtHandler) _obj, int id, int type );
+
+/** Get the client data in the form of a closure. Use 'closureGetData' to get to the actual data.*/
+TClass(wxClosure)  wxEvtHandler_GetClientClosure( TSelf(wxEvtHandler) _obj );
+/** Set the client data as a closure. The closure data contains the data while the function is called on deletion. */
+void               wxEvtHandler_SetClientClosure( TSelf(wxEvtHandler) _obj, TClass(wxClosure) closure );
+
+/** Get the reference data of an object as a closure: only works if properly initialized. Use 'closureGetData' to get to the actual data. */
+TClass(wxClosure)  wxObject_GetClientClosure( TSelf(wxObject) _obj );
+/** Set the reference data of an object as a closure. The closure data contains the data while the function is called on deletion. Returns 'True' on success. Only works if the reference data is unused by wxWidgets! */
+void               wxObject_SetClientClosure( TSelf(wxObject) _obj, TClass(wxClosure) closure );
+
+
+/* extra class definitions for classInfo */
+
+TClassDefExtend(wxGauge95,wxGauge)
+
+TClassDefExtend(wxGaugeMSW,wxGauge)
+
+TClassDefExtend(wxSlider95,wxSlider)
+
+TClassDefExtend(wxSliderMSW,wxSlider)
+
+
+
+
+
+/* Object */
+
+void wxObject_Delete( TSelf(wxObject) obj );
+
+
+/* Frame */
+TClass(wxString) wxFrame_GetTitle( TSelf(wxFrame) _obj );
+void        wxFrame_SetTitle( TSelf(wxFrame) _frame, TClass(wxString) _txt );
+TBool       wxFrame_SetShape( TSelf(wxFrame) self, TClass(wxRegion) region);
+
+TBool       wxFrame_ShowFullScreen( TSelf(wxFrame) self, TBool show, int style);
+
+TBool       wxFrame_IsFullScreen( TSelf(wxFrame) self );
+
+void        wxFrame_Centre( TSelf(wxFrame) self, int orientation );
+
+
+/* Create/Delete */
+void   wxCursor_Delete( TSelf(wxCursor) _obj );
+void  wxDateTime_Delete(TSelf(wxDateTime) _obj);
+
+/* wxMouseEvent */
+int   wxMouseEvent_GetWheelDelta( TSelf(wxMouseEvent) _obj );
+int   wxMouseEvent_GetWheelRotation( TSelf(wxMouseEvent) _obj );
+int   wxMouseEvent_GetButton( TSelf(wxMouseEvent) _obj );
+
+
+TClass(wxPoint) wxcGetMousePosition( );
+
+
+
+
+
+/* wxDC */
+
+double wxDC_GetUserScaleX( TSelf(wxDC) dc );
+
+double wxDC_GetUserScaleY( TSelf(wxDC) dc );
+
+
+/* wxWindow */
+TClass(wxPoint) wxWindow_ConvertDialogToPixelsEx( TSelf(wxWindow) _obj );
+
+TClass(wxPoint) wxWindow_ConvertPixelsToDialogEx( TSelf(wxWindow) _obj );
+
+TClass(wxPoint) wxWindow_ScreenToClient2( TSelf(wxWindow) _obj, TPoint(x,y) );
+
+
+
+/* wxString helpers */
+
+TClass(wxString) wxString_Create( TString buffer );
+
+TClass(wxString) wxString_CreateLen( TString buffer, int len );
+
+void             wxString_Delete( TSelf(wxString) s );
+
+TStringLen       wxString_GetString( TSelf(wxString) s, TStringOut buffer );
+
+size_t           wxString_Length( TSelf(wxString) s );
+
+
+
+/* menu */
+TClass(wxMenuBar) wxMenu_GetMenuBar( TSelf(wxMenu) _obj );
+
+TClass(wxFrame)   wxMenuBar_GetFrame( TSelf(wxMenuBar) _obj );
+
+
+
+int wxListEvent_GetCacheFrom( TSelf(wxListEvent) _obj);
+
+int wxListEvent_GetCacheTo( TSelf(wxListEvent) _obj);
+
+
+
+void wxListCtrl_AssignImageList( TSelf(wxListCtrl) _obj, TClass(wxImageList) images, int which );
+
+void wxListCtrl_GetColumn2( TSelf(wxListCtrl) _obj, int col, TClassRef(wxListItem) item);
+
+void wxListCtrl_GetItem2( TSelf(wxListCtrl) _obj, TClassRef(wxListItem) info);
+
+TClass(wxPoint) wxListCtrl_GetItemPosition2( TSelf(wxListCtrl) _obj, int item );
+
+/** Sort items in a list control. Takes a closure that is called with a 'CommandEvent' where the @Int@ is the item data of the first item and the @ExtraLong@ the item data of the second item. The event handler should set the @Int@ to 0 when the items are equal, -1 when the first is less, and 1 when the second is less. */
+
+TBool wxListCtrl_SortItems2(TSelf(wxListCtrl) _obj, TClass(wxClosure) closure );
+
+
+
+/* tree ctrl */
+
+TClassDefExtend(wxcTreeItemData,wxTreeItemData)
+
+
+
+/** Create tree item data with a closure. The closure data contains the data while the function is called on deletion. */
+
+TClass(wxcTreeItemData) wxcTreeItemData_Create( TClass(wxClosure) closure );
+
+/** Get the client data in the form of a closure. Use 'closureGetData' to get to the actual data.*/
+
+TClass(wxClosure) wxcTreeItemData_GetClientClosure( TSelf(wxcTreeItemData) self );
+
+/** Set the tree item data with a closure. The closure data contains the data while the function is called on deletion. */
+
+void  wxcTreeItemData_SetClientClosure( TSelf(wxcTreeItemData) self, TClass(wxClosure) closure );
+
+
+
+TClass(wxTreeItemId) wxTreeItemId_Clone( TSelf(wxTreeItemId) _obj);
+
+TClass(wxTreeItemId) wxTreeItemId_CreateFromValue(TIntPtr value);
+
+TIntPtr wxTreeItemId_GetValue( TSelf(wxTreeItemId) _obj);
+
+
+
+
+
+TClass(wxKeyEvent) wxTreeEvent_GetKeyEvent( TSelf(wxTreeEvent) _obj);
+
+int    wxTreeEvent_IsEditCancelled( TSelf(wxTreeEvent) _obj);
+
+void   wxTreeEvent_Allow( TSelf(wxTreeEvent) _obj);
+
+
+
+TClass(wxTreeCtrl) wxTreeCtrl_Create2( TClass(wxWindow) _prt, int _id, TRect(_lft,_top,_wdt,_hgt), int _stl );
+
+void   wxTreeCtrl_InsertItem2( TSelf(wxTreeCtrl) _obj, TClass(wxWindow) parent, TClass(wxTreeItemId) idPrevious, TClass(wxString) text, int image, int selectedImage, TClass(wxClosure) closure, TClassRef(wxTreeItemId) _item );
+
+void   wxTreeCtrl_InsertItemByIndex2( TSelf(wxTreeCtrl) _obj, TClass(wxWindow) parent, int index, TClass(wxString) text, int image, int selectedImage, TClass(wxClosure) closure, TClassRef(wxTreeItemId) _item );
+
+TClass(wxClosure)  wxTreeCtrl_GetItemClientClosure( TSelf(wxTreeCtrl) _obj, TClass(wxTreeItemId) item );
+
+void   wxTreeCtrl_SetItemClientClosure( TSelf(wxTreeCtrl) _obj, TClass(wxTreeItemId) item, TClass(wxClosure) closure );
+
+void   wxTreeCtrl_AssignImageList(TSelf(wxTreeCtrl) _obj, TClass(wxImageList) imageList );
+
+void   wxTreeCtrl_AssignStateImageList(TSelf(wxTreeCtrl) _obj, TClass(wxImageList) imageList );
+
+
+
+
+
+/* dc */
+
+/** Get the color of pixel. Note: this is not a portable method at the moment and its use is discouraged. */
+
+void wxDC_GetPixel2( TSelf(wxDC) _obj, TPoint(x,y), TClassRef(wxColour) col);
+
+
+
+/* scrolledwindow */
+void wxScrolledWindow_SetScrollRate( TSelf(wxScrolledWindow) _obj, int xstep, int ystep );
+
+
+/* wxObject */
+TClassDef(wxObject)
+TClass(wxClassInfo)  wxObject_GetClassInfo( TSelf(wxObject) _obj );
+TBool       wxObject_IsKindOf( TSelf(wxObject) _obj, TClass(wxClassInfo) classInfo );
+TBool       wxObject_IsScrolledWindow( TSelf(wxObject) _obj );
+
+
+/* wxClassInfo */
+TClassDef(wxClassInfo)
+TClass(wxClassInfo)  wxClassInfo_FindClass( TClass(wxString) _txt );
+TClass(wxString) wxClassInfo_GetBaseClassName1( TSelf(wxClassInfo) _obj );
+TClass(wxString) wxClassInfo_GetBaseClassName2( TSelf(wxClassInfo) _obj );
+TClass(wxString) wxClassInfo_GetClassNameEx( TSelf(wxClassInfo) _obj );
+int         wxClassInfo_GetSize( TSelf(wxClassInfo) _obj );
+TBool       wxClassInfo_IsKindOfEx( TSelf(wxClassInfo) _obj, TClass(wxClassInfo) classInfo );
+
+/* wxNotebook */
+void        wxNotebook_AssignImageList( TSelf(wxNotebook) _obj, TClass(wxImageList) imageList );
+
+/* Timers */
+TClassDefExtend(wxTimerEx,wxTimer)
+void               wxTimerEx_Connect( TSelf(wxTimerEx) _obj, TClass(wxClosure) closure );
+TClass(wxTimerEx)  wxTimerEx_Create(  );
+TClass(wxClosure)  wxTimerEx_GetClosure( TSelf(wxTimerEx) _obj );
+
+/* Menu */
+
+void  wxMenu_AppendRadioItem( TSelf(wxMenu) self, int id, TClass(wxString) text, TClass(wxString) help);
+
+
+
+
+
+/* Menu Item */
+TClass(wxMenuItem)  wxMenuItem_CreateSeparator();
+TClass(wxMenuItem)  wxMenuItem_CreateEx(int id, TClass(wxString) label, TClass(wxString) help, int itemkind, TClass(wxMenu) submenu);
+
+
+/* Toolbar */
+
+void wxToolBar_AddTool2( TSelf(wxToolBar) _obj, int toolId, TClass(wxString) label, TClass(wxBitmap) bmp, TClass(wxBitmap) bmpDisabled, int itemKind, TClass(wxString) shortHelp, TClass(wxString) longHelp );
+
+
+/* Progress dialog */
+TClass(wxProgressDialog) wxProgressDialog_Create( TClass(wxString) title, TClass(wxString) message, int max, TClass(wxWindow) parent, int style );
+TBool wxProgressDialog_Update(TSelf(wxProgressDialog) obj, int value );
+TBool wxProgressDialog_UpdateWithMessage( TSelf(wxProgressDialog) obj, int value, TClass(wxString) message );
+void wxProgressDialog_Resume( TSelf(wxProgressDialog) obj );
+
+/** Get the version number of wxWidgets as a number composed of the major version times 1000, minor version times 100, and the release number. For example, release 2.1.15 becomes 2115. */
+int wxVersionNumber();
+/** Check if a preprocessor macro is defined. For example, @wxIsDefined("__WXGTK__")@ or @wxIsDefined("wxUSE_GIF")@. */
+TBoolInt wxIsDefined( TString s );
+
+/* Input sink */
+TClassDefExtend(wxInputSink,wxThread)
+
+/** Create an event driven input stream. It is unsafe to reference the original inputStream after this call! The last parameter @bufferLen@ gives the default input batch size. The sink is automatically destroyed whenever the input stream has no more input. */
+TClass(wxInputSink) wxInputSink_Create( TClass(wxInputStream) input, TClass(wxEvtHandler) evtHandler, int bufferLen );
+/** After creation, retrieve the @id@ of the sink to connect to @wxEVT_INPUT_SINK@ events. */
+int   wxInputSink_GetId( TSelf(wxInputSink) obj );
+/** After event connection, start non-blocking reading of the inputstream. This will generate @inputSinkEvent@ events. */
+void  wxInputSink_Start( TSelf(wxInputSink) obj );
+
+/* Input sink events */
+TClassDefExtend(wxInputSinkEvent,wxEvent)
+
+/** Get the input status (@wxSTREAM_NO_ERROR@ is ok). */
+int wxInputSinkEvent_LastError( TSelf(wxInputSinkEvent) obj );
+/** The number of characters in the input buffer. */
+int wxInputSinkEvent_LastRead( TSelf(wxInputSinkEvent) obj );
+/** The input buffer. */
+char* wxInputSinkEvent_LastInput( TSelf(wxInputSinkEvent) obj );
+
+
+/* html events */
+TClassDefExtend(wxcHtmlEvent,wxCommandEvent)
+
+TClass(wxMouseEvent) wxcHtmlEvent_GetMouseEvent( TSelf(wxcHtmlEvent) self );
+TClass(wxHtmlCell)   wxcHtmlEvent_GetHtmlCell( TSelf(wxcHtmlEvent) self );
+
+/** Return the /id/ attribute of the associated html cell (if applicable) */
+
+TClass(wxString)     wxcHtmlEvent_GetHtmlCellId( TSelf(wxcHtmlEvent) self );
+
+/** Return the /href/ attribute of the associated html anchor (if applicable) */
+TClass(wxString)     wxcHtmlEvent_GetHref( TSelf(wxcHtmlEvent) self );
+TClass(wxString)     wxcHtmlEvent_GetTarget( TSelf(wxcHtmlEvent) self );
+TClass(wxPoint)      wxcHtmlEvent_GetLogicalPosition( TSelf(wxcHtmlEvent) self );
+
+/* html window */
+TClassDefExtend(wxcHtmlWindow,wxHtmlWindow)
+TClass(wxcHtmlWindow) wxcHtmlWindow_Create( TClass(wxWindow) _prt, int _id, TRect(_lft,_top,_wdt,_hgt), int _stl, TClass(wxString) _txt );
+
+TClass(wxHtmlWindow) wxHtmlWindow_Create( TClass(wxWindow) _prt, int _id, TRect(_lft,_top,_wdt,_hgt), int _stl, TClass(wxString) _txt );
+TBool                wxHtmlWindow_AppendToPage( TSelf(wxHtmlWindow) _obj, TClass(wxString) source );
+TClass(wxHtmlContainerCell) wxHtmlWindow_GetInternalRepresentation( TSelf(wxHtmlWindow) _obj );
+TClass(wxString)     wxHtmlWindow_GetOpenedAnchor( TSelf(wxHtmlWindow) _obj ) ;
+TClass(wxString)     wxHtmlWindow_GetOpenedPage( TSelf(wxHtmlWindow) _obj );
+TClass(wxString)     wxHtmlWindow_GetOpenedPageTitle( TSelf(wxHtmlWindow) _obj );
+TClass(wxFrame)      wxHtmlWindow_GetRelatedFrame( TSelf(wxHtmlWindow) _obj );
+TBool                wxHtmlWindow_HistoryBack( TSelf(wxHtmlWindow) _obj);
+TBool                wxHtmlWindow_HistoryCanBack( TSelf(wxHtmlWindow) _obj );
+TBool                wxHtmlWindow_HistoryCanForward( TSelf(wxHtmlWindow) _obj );
+void                 wxHtmlWindow_HistoryClear( TSelf(wxHtmlWindow) _obj);
+TBool                wxHtmlWindow_HistoryForward( TSelf(wxHtmlWindow) _obj );
+TBool                wxHtmlWindow_LoadPage( TSelf(wxHtmlWindow) _obj, TClass(wxString) location );
+void                 wxHtmlWindow_ReadCustomization( TSelf(wxHtmlWindow) _obj, TClass(wxConfigBase) cfg, TClass(wxString) path);
+void                 wxHtmlWindow_SetBorders( TSelf(wxHtmlWindow) _obj, int b );
+void                 wxHtmlWindow_SetFonts( TSelf(wxHtmlWindow) _obj, TClass(wxString) normal_face, TClass(wxString) fixed_face, int * sizes );
+void                 wxHtmlWindow_SetPage( TSelf(wxHtmlWindow) _obj, TClass(wxString) source );
+void                 wxHtmlWindow_SetRelatedFrame( TSelf(wxHtmlWindow) _obj , TClass(wxFrame) frame, TClass(wxString) format );
+void                 wxHtmlWindow_SetRelatedStatusBar( TSelf(wxHtmlWindow) _obj, int bar);
+void                 wxHtmlWindow_WriteCustomization( TSelf(wxHtmlWindow) _obj, TClass(wxConfigBase) cfg, TClass(wxString) path );
+
+/* wxGridCellTextEnterEditor */
+
+TClassDefExtend(wxGridCellTextEnterEditor,wxGridCellTextEditor)
+
+TClass(wxGridCellTextEnterEditor) wxGridCellTextEnterEditor_Ctor();
+
+
+
+/* logger */
+TClass(wxLogStderr)   wxLogStderr_Create();
+TClass(wxLogStderr)   wxLogStderr_CreateStdOut();
+TClass(wxLogNull)     wxLogNull_Create();
+TClass(wxLogTextCtrl) wxLogTextCtrl_Create( TClass(wxTextCtrl) text );
+TClass(wxLogWindow)   wxLogWindow_Create( TClass(wxWindow) parent, TString title, TBool showit, TBool passthrough );
+TClass(wxFrame)       wxLogWindow_GetFrame( TSelf(wxLogWindow) obj );
+
+void   LogError(TClass(wxString) _msg);
+void   LogFatalError(TClass(wxString) _msg);
+void   LogWarning(TClass(wxString) _msg);
+void   LogMessage(TClass(wxString) _msg);
+void   LogVerbose(TClass(wxString) _msg);
+void   LogStatus(TClass(wxString) _msg);
+void   LogSysError(TClass(wxString) _msg);
+void   LogDebug(TClass(wxString) _msg);
+void   LogTrace(TClass(wxString) mask, TClass(wxString) _msg);
+
+void       wxLog_AddTraceMask( TSelf(wxLog) _obj, TClass(wxString) str );
+void       wxLog_Delete( TSelf(wxLog) _obj );
+void       wxLog_DontCreateOnDemand( TSelf(wxLog) _obj );
+void       wxLog_Flush( TSelf(wxLog) _obj );
+void       wxLog_FlushActive( TSelf(wxLog) _obj );
+TClass(wxLog)  wxLog_GetActiveTarget(  );
+char*      wxLog_GetTimestamp( TSelf(wxLog) _obj );
+int        wxLog_GetTraceMask( TSelf(wxLog) _obj );
+int        wxLog_GetVerbose( TSelf(wxLog) _obj );
+TBool      wxLog_HasPendingMessages( TSelf(wxLog) _obj );
+TBool      wxLog_IsAllowedTraceMask( TSelf(wxLog) _obj, TClass(wxMask) mask );
+void       wxLog_OnLog( TSelf(wxLog) _obj, int level, TStringVoid szString, int t );
+void       wxLog_RemoveTraceMask( TSelf(wxLog) _obj, TClass(wxString) str );
+void       wxLog_Resume( TSelf(wxLog) _obj );
+TClass(wxLog)  wxLog_SetActiveTarget( TSelf(wxLog) pLogger );
+void       wxLog_SetTimestamp( TSelf(wxLog) _obj, TStringVoid ts );
+// Obsolete
+// void       wxLog_SetTraceMask( TSelf(wxLog) _obj, int ulMask );
+void       wxLog_SetVerbose( TSelf(wxLog) _obj, TBoolInt bVerbose );
+void       wxLog_Suspend( TSelf(wxLog) _obj );
+
+
+/* process */
+TClass(wxProcess) wxProcess_Open( TClass(wxString) cmd, int flags );
+TBool      wxProcess_IsErrorAvailable( TSelf(wxProcess) _obj );
+TBool      wxProcess_IsInputAvailable( TSelf(wxProcess) _obj );
+TBool      wxProcess_IsInputOpened( TSelf(wxProcess) _obj );
+int        wxKill( int pid, int signal );
+
+void       wxStreamBase_Delete( TSelf(wxStreamBase) obj);
+
+/* Dialogs */
+void        wxGetColourFromUser(TClass(wxWindow) parent, TClass(wxColour) colInit, TClassRef(wxColour) colour );
+void        wxGetFontFromUser(TClass(wxWindow) parent, TClass(wxFont) fontInit, TClassRef(wxFont) font );
+TStringLen  wxGetPasswordFromUser(TString message, TString caption, TString defaultText, TClass(wxWindow) parent, TStringOut _buf );
+TStringLen  wxGetTextFromUser(TString message, TString caption, TString defaultText, TClass(wxWindow) parent, TPoint(x,y), TBool center, TStringOut _buf );
+long        wxGetNumberFromUser( TClass(wxString) message, TClass(wxString) prompt, TClass(wxString) caption, long value, long min, long max, TClass(wxWindow) parent, TPoint(x,y) );
+void        wxcBell();
+void        wxcBeginBusyCursor();
+void        wxcEndBusyCursor();
+void        wxcIsBusy();
+
+/* text ctrl */
+TBool               wxTextCtrl_EmulateKeyPress( TSelf(wxTextCtrl) _obj, TClass(wxKeyEvent) keyevent);
+TClass (wxTextAttr) wxTextCtrl_GetDefaultStyle( TSelf(wxTextCtrl) _obj );
+TClass(wxString)    wxTextCtrl_GetRange( TSelf(wxTextCtrl) _obj, long from, long to );
+TClass(wxString)    wxTextCtrl_GetStringSelection( TSelf(wxTextCtrl) _obj );
+TBool               wxTextCtrl_IsMultiLine( TSelf(wxTextCtrl) _obj );
+TBool               wxTextCtrl_IsSingleLine( TSelf(wxTextCtrl) _obj );
+TBool               wxTextCtrl_SetDefaultStyle( TSelf(wxTextCtrl) _obj, TClass(wxTextAttr) style);
+void                wxTextCtrl_SetMaxLength( TSelf(wxTextCtrl) _obj, long len );
+TBool               wxTextCtrl_SetStyle( TSelf(wxTextCtrl) _obj, long start, long end, TClass(wxTextAttr) style );
+
+/* text attributes */
+TClass(wxTextAttr)  wxTextAttr_Create(TClass(wxColour) colText, TClass(wxColour) colBack, TClass(wxFont) font);
+TClass(wxTextAttr)  wxTextAttr_CreateDefault();
+void      wxTextAttr_Delete( TSelf(wxTextAttr) _obj );
+void      wxTextAttr_GetBackgroundColour( TSelf(wxTextAttr) _obj, TClassRef(wxColour) colour  );
+void      wxTextAttr_GetFont( TSelf(wxTextAttr) _obj, TClassRef(wxFont) font );
+void      wxTextAttr_GetTextColour( TSelf(wxTextAttr) _obj, TClassRef(wxColour) colour );
+TBool     wxTextAttr_HasBackgroundColour( TSelf(wxTextAttr) _obj );
+TBool     wxTextAttr_HasFont( TSelf(wxTextAttr) _obj );
+TBool     wxTextAttr_HasTextColour( TSelf(wxTextAttr) _obj );
+TBool     wxTextAttr_IsDefault( TSelf(wxTextAttr) _obj );
+void      wxTextAttr_SetTextColour(TSelf(wxTextAttr) _obj, TClass(wxColour) colour );
+void      wxTextAttr_SetBackgroundColour(TSelf(wxTextAttr) _obj, TClass(wxColour) colour );
+void      wxTextAttr_SetFont(TSelf(wxTextAttr) _obj, TClass(wxFont) font );
+
+
+/* ConfigBase */
+
+TClassDefExtend(wxFileConfig,wxConfigBase)
+
+
+
+TClass(wxConfigBase) wxConfigBase_Get();
+
+void                 wxConfigBase_Set( TClass(wxConfigBase) self );
+
+TClass(wxFileConfig) wxFileConfig_Create( TClass(wxInputStream) inp );
+
+
+
+/* Image.cpp */
+
+TClass(wxBitmap) wxBitmap_CreateFromImage( TClass(wxImage) image, int depth );
+
+TClass(wxImage) wxImage_CreateFromDataEx( TSize(width,height), void* data, TBoolInt isStaticData);
+
+void wxImage_Delete( TSelf(wxImage) image );
+
+
+
+/** Create from rgb int. */
+
+TClass(wxColour) wxColour_CreateFromInt(int rgb);
+
+/** Return colors as an rgb int. */
+
+int wxColour_GetInt( TSelf(wxColour) colour);
+
+/** Create from rgba unsigned int. */
+
+TClass(wxColour) wxColour_CreateFromUnsignedInt(TUInt rgba);
+
+/** Return colors as an rgba unsigned int. */
+
+TUInt wxColour_GetUnsignedInt( TSelf(wxColour) colour);
+
+
+
+/** Create from system colour. */
+
+TClass(wxColour) wxcSystemSettingsGetColour( int systemColour );
+
+
+
+
+
+/* basic pixel manipulation */
+
+void wxcSetPixelRGB( TUInt8* buffer, int width, TPoint(x,y), int rgb  );
+
+int  wxcGetPixelRGB( TUInt8* buffer, int width, TPoint(x,y) );
+
+void wxcSetPixelRowRGB( TUInt8* buffer, int width, TPoint(x,y), int rgbStart, int rgbEnd, int count );
+
+void wxcInitPixelsRGB( TUInt8* buffer, TSize(width,height), int rgba );
+
+void wxcSetPixelRGBA( TUInt8* buffer, int width, TPoint(x,y), TUInt rgba  );
+
+TUInt  wxcGetPixelRGBA( TUInt8* buffer, int width, TPoint(x,y) );
+
+void wxcSetPixelRowRGBA( TUInt8* buffer, int width, TPoint(x,y), int rgbaStart, int rgbEnd, TUInt count );
+
+void wxcInitPixelsRGBA( TUInt8* buffer, TSize(width,height), TUInt rgba );
+
+
+
+/* malloc/free */
+
+void* wxcMalloc(int size );
+
+void  wxcFree( void* p );
+
+
+
+/* wakeup idle */
+
+void wxcWakeUpIdle();
+
+
+
+/* application directory */
+
+/** Return the directory of the application. On unix systems (except MacOS X), it is not always possible to determine this correctly. Therefore, the APPDIR environment variable is returned first if it is defined. */
+
+TClass(wxString) wxGetApplicationDir();
+
+/** Return the full path of the application. On unix systems (except MacOS X), it is not always possible to determine this correctly. */
+
+TClass(wxString) wxGetApplicationPath();
+
+
+
+/* ELJApp */
+void  ELJApp_InitializeC( TClass(wxClosure) closure, int _argc, TChar** _argv );
+
+int   ELJApp_GetIdleInterval();
+
+void  ELJApp_SetIdleInterval( int interval );
+
+
+
+
+#endif /* wxc_h */
diff --git a/src/include/wxc_glue.h b/src/include/wxc_glue.h
--- a/src/include/wxc_glue.h
+++ b/src/include/wxc_glue.h
@@ -648,7 +648,8 @@
 void       ELJLog_Resume( TSelf(ELJLog) _obj );
 void*      ELJLog_SetActiveTarget( TSelf(ELJLog) pLogger );
 void       ELJLog_SetTimestamp( TSelf(ELJLog) _obj, void* ts );
-void       ELJLog_SetTraceMask( TSelf(ELJLog) _obj, int ulMask );
+// Deprecated:
+//void       ELJLog_SetTraceMask( TSelf(ELJLog) _obj, int ulMask );
 void       ELJLog_SetVerbose( TSelf(ELJLog) _obj, int bVerbose );
 void       ELJLog_Suspend( TSelf(ELJLog) _obj );
 
@@ -2334,9 +2335,9 @@
 void       wxGrid_AutoSizeRows( TSelf(wxGrid) _obj, TBoolInt setAsMin );
 void       wxGrid_BeginBatch( TSelf(wxGrid) _obj );
 TClass(wxRect) wxGrid_BlockToDeviceRect( TSelf(wxGrid) _obj, int top, int left, int bottom, int right );
-TBool      wxGrid_CanDragColSize( TSelf(wxGrid) _obj );
+TBool      wxGrid_CanDragColSize( TSelf(wxGrid) _obj, int col );
 TBool      wxGrid_CanDragGridSize( TSelf(wxGrid) _obj );
-TBool      wxGrid_CanDragRowSize( TSelf(wxGrid) _obj );
+TBool      wxGrid_CanDragRowSize( TSelf(wxGrid) _obj, int row );
 TBool      wxGrid_CanEnableCellControl( TSelf(wxGrid) _obj );
 TClass(wxRect) wxGrid_CellToRect( TSelf(wxGrid) _obj, int row, int col );
 void       wxGrid_ClearGrid( TSelf(wxGrid) _obj );
@@ -2829,8 +2830,10 @@
 int        wxImage_CountColours( TSelf(wxImage) _obj, int stopafter );
 TClass(wxImage) wxImage_CreateDefault(  );
 TClass(wxImage) wxImage_CreateFromBitmap( TClass(wxBitmap) bitmap );
-TClass(wxImage) wxImage_CreateFromByteString( TByteString(data,length), int type );
-TClass(wxImage) wxImage_CreateFromLazyByteString( TByteStringLazy(data,length), int type );
+// TClass(wxImage) wxImage_CreateFromByteString( TByteString(data,length), int type );
+TClass(wxImage) wxImage_CreateFromByteString( TSize(width, height), TByteString(data, length) );
+// TClass(wxImage) wxImage_CreateFromLazyByteString( TByteStringLazy(data,length), int type );
+TClass(wxImage) wxImage_CreateFromLazyByteString( TSize(width, height), TByteStringLazy(data, length) );
 TClass(wxImage) wxImage_CreateFromData( TSize(width,height), void* data );
 TClass(wxImage) wxImage_CreateFromFile( TClass(wxString) name );
 TClass(wxImage) wxImage_CreateSized( TSize(width,height) );
@@ -3310,7 +3313,8 @@
 TClass(wxClientData) wxMenu_GetClientData( TSelf(wxMenu) _obj );
 TClass(wxString) wxMenu_GetHelpString( TSelf(wxMenu) _obj, int id );
 TClass(wxWindow) wxMenu_GetInvokingWindow( TSelf(wxMenu) _obj );
-TClass(wxString) wxMenu_GetLabel( TSelf(wxMenu) _obj, int id );
+// TClass(wxString) wxMenu_GetLabel( TSelf(wxMenu) _obj, int id );
+TClass(wxString) wxMenu_GetLabelText( TSelf(wxMenu) _obj, int id );
 size_t     wxMenu_GetMenuItemCount( TSelf(wxMenu) _obj );
 int        wxMenu_GetMenuItems( TSelf(wxMenu) _obj, TClass(wxList) _lst );
 TClass(wxMenu) wxMenu_GetParent( TSelf(wxMenu) _obj );
@@ -3350,7 +3354,8 @@
 int        wxMenuBar_FindMenuItem( TSelf(wxMenuBar) _obj, TClass(wxString) menuString, TClass(wxString) itemString );
 TClass(wxString) wxMenuBar_GetHelpString( TSelf(wxMenuBar) _obj, int id );
 TClass(wxString) wxMenuBar_GetLabel( TSelf(wxMenuBar) _obj, int id );
-TClass(wxString) wxMenuBar_GetLabelTop( TSelf(wxMenuBar) _obj, int pos );
+// TClass(wxString) wxMenuBar_GetLabelTop( TSelf(wxMenuBar) _obj, int pos );
+TClass(wxString) wxMenuBar_GetMenuLabel( TSelf(wxMenuBar) _obj, int pos );
 TClass(wxMenu) wxMenuBar_GetMenu( TSelf(wxMenuBar) _obj, int pos );
 int        wxMenuBar_GetMenuCount( TSelf(wxMenuBar) _obj );
 int        wxMenuBar_Insert( TSelf(wxMenuBar) _obj, int pos, TClass(wxMenu) menu, TClass(wxString) title );
@@ -3361,7 +3366,8 @@
 void       wxMenuBar_SetHelpString( TSelf(wxMenuBar) _obj, int id, TClass(wxString) helpString );
 void       wxMenuBar_SetItemLabel( TSelf(wxMenuBar) _obj, int id, TClass(wxString) label );
 void       wxMenuBar_SetLabel( TSelf(wxMenuBar) _obj, TClass(wxString) s );
-void       wxMenuBar_SetLabelTop( TSelf(wxMenuBar) _obj, int pos, TClass(wxString) label );
+// void       wxMenuBar_SetLabelTop( TSelf(wxMenuBar) _obj, int pos, TClass(wxString) label );
+void       wxMenuBar_SetMenuLabel( TSelf(wxMenuBar) _obj, int pos, TClass(wxString) label );
 
 /* wxMenuEvent */
 TClassDefExtend(wxMenuEvent,wxEvent)
@@ -3376,11 +3382,14 @@
 void       wxMenuItem_Enable( TSelf(wxMenuItem) _obj, TBool enable );
 TClass(wxString) wxMenuItem_GetHelp( TSelf(wxMenuItem) _obj );
 int        wxMenuItem_GetId( TSelf(wxMenuItem) _obj );
-TClass(wxString) wxMenuItem_GetLabel( TSelf(wxMenuItem) _obj );
-TClass(wxString) wxMenuItem_GetLabelFromText( TStringVoid text );
+// TClass(wxString) wxMenuItem_GetLabel( TSelf(wxMenuItem) _obj );
+TClass(wxString) wxMenuItem_GetItemLabelText( TSelf(wxMenuItem) _obj );
+// TClass(wxString) wxMenuItem_GetLabelFromText( TStringVoid text );
+TClass(wxString) wxMenuItem_GetLabelText( TStringVoid text );
 TClass(wxMenu) wxMenuItem_GetMenu( TSelf(wxMenuItem) _obj );
 TClass(wxMenu) wxMenuItem_GetSubMenu( TSelf(wxMenuItem) _obj );
-TClass(wxString) wxMenuItem_GetText( TSelf(wxMenuItem) _obj );
+// TClass(wxString) wxMenuItem_GetText( TSelf(wxMenuItem) _obj );
+TClass(wxString) wxMenuItem_GetItemLabel( TSelf(wxMenuItem) _obj );
 TBool      wxMenuItem_IsCheckable( TSelf(wxMenuItem) _obj );
 TBool      wxMenuItem_IsChecked( TSelf(wxMenuItem) _obj );
 TBool      wxMenuItem_IsEnabled( TSelf(wxMenuItem) _obj );
@@ -3390,7 +3399,8 @@
 void       wxMenuItem_SetHelp( TSelf(wxMenuItem) _obj, TClass(wxString) str );
 void       wxMenuItem_SetId( TSelf(wxMenuItem) _obj, int id );
 void       wxMenuItem_SetSubMenu( TSelf(wxMenuItem) _obj, TClass(wxMenu) menu );
-void       wxMenuItem_SetText( TSelf(wxMenuItem) _obj, TClass(wxString) str );
+// void       wxMenuItem_SetText( TSelf(wxMenuItem) _obj, TClass(wxString) str );
+void       wxMenuItem_SetItemLabel( TSelf(wxMenuItem) _obj, TClass(wxString) str );
 
 /* wxMessageDialog */
 TClassDefExtend(wxMessageDialog,wxDialog)
@@ -3841,6 +3851,7 @@
 void       wxPrintData_SetFilename( TSelf(wxPrintData) _obj, TClass(wxString) filename );
 void       wxPrintData_SetFontMetricPath( TSelf(wxPrintData) _obj, TClass(wxString) path );
 void       wxPrintData_SetNoCopies( TSelf(wxPrintData) _obj, int v );
+// void       wxPrintData_SetOrientation( TSelf(wxPrintData) _obj, wxPrintOrientation orient );
 void       wxPrintData_SetOrientation( TSelf(wxPrintData) _obj, int orient );
 void       wxPrintData_SetPaperId( TSelf(wxPrintData) _obj, int sizeId );
 void       wxPrintData_SetPaperSize( TSelf(wxPrintData) _obj, TSize(w,h) );
@@ -4305,7 +4316,8 @@
 TBool      wxSizer_ReplaceWindow( TSelf(wxSizer) _obj, TClass(wxWindow) oldwin, TClass(wxWindow) newwin, TBool recursive );
 TBool      wxSizer_ReplaceSizer( TSelf(wxSizer) _obj, TClass(wxSizer) oldsz, TClass(wxSizer) newsz, TBool recursive );
 TBool      wxSizer_Replace( TSelf(wxSizer) _obj, int oldindex, TClass(wxSizerItem) newitem );
-void       wxSizer_SetVirtualSizeHints( TSelf(wxSizer) _obj, TClass(wxWindow) window );
+// The following is replaced with wxSizer_FitInside
+// void       wxSizer_SetVirtualSizeHints( TSelf(wxSizer) _obj, TClass(wxWindow) window );
 TBool      wxSizer_ShowWindow( TSelf(wxSizer) _obj, TClass(wxWindow) window, TBool show, TBool recursive );
 TBool      wxSizer_ShowSizer( TSelf(wxSizer) _obj, TClass(wxSizer) sizer, TBool show, TBool recursive );
 TBool      wxSizer_Show( TSelf(wxSizer) _obj, TClass(wxSizer) sizer, int index, TBool show );
@@ -4333,8 +4345,10 @@
 void       wxSizerItem_SetFloatRatio( TSelf(wxSizerItem) _obj, float ratio );
 void       wxSizerItem_SetInitSize( TSelf(wxSizerItem) _obj, TPoint(x,y) );
 void       wxSizerItem_SetRatio( TSelf(wxSizerItem) _obj, TSize(width,height) );
-void       wxSizerItem_SetSizer( TSelf(wxSizerItem) _obj, TClass(wxSizer) sizer );
-void       wxSizerItem_SetWindow( TSelf(wxSizerItem) _obj, TClass(wxWindow) window );
+// void       wxSizerItem_SetSizer( TSelf(wxSizerItem) _obj, TClass(wxSizer) sizer );
+void       wxSizerItem_AssignSizer( TSelf(wxSizerItem) _obj, TClass(wxSizer) sizer );
+// void       wxSizerItem_SetWindow( TSelf(wxSizerItem) _obj, TClass(wxWindow) window );
+void       wxSizerItem_AssignWindow( TSelf(wxSizerItem) _obj, TClass(wxWindow) window );
 void       wxSizerItem_Delete( TSelf(wxSizerItem) _obj );
 void       wxSizerItem_DeleteWindows( TSelf(wxSizerItem) _obj );
 void       wxSizerItem_DetachSizer( TSelf(wxSizerItem) _obj );
@@ -4343,7 +4357,8 @@
 TClass(wxSize) wxSizerItem_GetSpacer( TSelf(wxSizerItem) _obj );
 int        wxSizerItem_IsShown( TSelf(wxSizerItem) _obj );
 void       wxSizerItem_SetProportion( TSelf(wxSizerItem) _obj, int proportion );
-void       wxSizerItem_SetSpacer( TSelf(wxSizerItem) _obj, TSize(width,height) );
+// void       wxSizerItem_SetSpacer( TSelf(wxSizerItem) _obj, TSize(width,height) );
+void       wxSizerItem_AssignSpacer( TSelf(wxSizerItem) _obj, TSize(width,height) );
 void       wxSizerItem_Show( TSelf(wxSizerItem) _obj, int show );
 
 
@@ -4367,7 +4382,8 @@
 void       wxSlider_SetSelection( TSelf(wxSlider) _obj, int minPos, int maxPos );
 void       wxSlider_SetThumbLength( TSelf(wxSlider) _obj, int len );
 void       wxSlider_SetTick( TSelf(wxSlider) _obj, int tickPos );
-void       wxSlider_SetTickFreq( TSelf(wxSlider) _obj, int n, int pos );
+// Obsolete
+// void       wxSlider_SetTickFreq( TSelf(wxSlider) _obj, int n, int pos );
 void       wxSlider_SetValue( TSelf(wxSlider) _obj, int value );
 
 /* wxSockAddress */
@@ -4440,7 +4456,8 @@
 void       wxSplitterWindow_SetBorderSize( TSelf(wxSplitterWindow) _obj, int width );
 void       wxSplitterWindow_SetMinimumPaneSize( TSelf(wxSplitterWindow) _obj, int min );
 void       wxSplitterWindow_SetSashPosition( TSelf(wxSplitterWindow) _obj, int position, TBool redraw );
-void       wxSplitterWindow_SetSashSize( TSelf(wxSplitterWindow) _obj, int width );
+// Obsolete
+// void       wxSplitterWindow_SetSashSize( TSelf(wxSplitterWindow) _obj, int width );
 void       wxSplitterWindow_SetSplitMode( TSelf(wxSplitterWindow) _obj, int mode );
 TBool      wxSplitterWindow_SplitHorizontally( TSelf(wxSplitterWindow) _obj, TClass(wxWindow) window1, TClass(wxWindow) window2, int sashPosition );
 TBool      wxSplitterWindow_SplitVertically( TSelf(wxSplitterWindow) _obj, TClass(wxWindow) window1, TClass(wxWindow) window2, int sashPosition );
@@ -4704,8 +4721,10 @@
 TClassDefExtend(wxToolBar,wxToolBarBase)
 TBool      wxToolBar_AddControl( TSelf(wxToolBar) _obj, TClass(wxControl) ctrl );
 void       wxToolBar_AddSeparator( TSelf(wxToolBar) _obj );
-void       wxToolBar_AddTool( TSelf(wxToolBar) _obj, int id, TClass(wxBitmap) bmp, TClass(wxString) shelp, TClass(wxString) lhelp );
-void       wxToolBar_AddToolEx( TSelf(wxToolBar) _obj, int id, TClass(wxBitmap) bmp1, TClass(wxBitmap) bmp2, TBool isToggle, TPoint(x,y), TClass(wxObject) data, TClass(wxString) shelp, TClass(wxString) lhelp );
+// void       wxToolBar_AddTool( TSelf(wxToolBar) _obj, int id, TClass(wxBitmap) bmp, TClass(wxString) shelp, TClass(wxString) lhelp );
+void       wxToolBar_AddTool( TSelf(wxToolBar) _obj, int toolid, TClass(wxString) label, TClass(wxBitmap) bitmap, TClass(wxBitmap) bmpDisabled, int kind, TClass(wxString) shortHelp, TClass(wxString) longHelp, TClass(wxObject) data);
+// Obsolete
+// void    wxToolBar_AddToolEx( TSelf(wxToolBar) _obj, int id, TClass(wxBitmap) bmp1, TClass(wxBitmap) bmp2, TBool isToggle, TPoint(x,y), TClass(wxObject) data, TClass(wxString) shelp, TClass(wxString) lhelp );
 TClass(wxToolBar) wxToolBar_Create( TClass(wxWindow) _prt, int _id, TRect(_lft,_top,_wdt,_hgt), int _stl );
 void       wxToolBar_Delete( TSelf(wxToolBar) _obj );
 TBool      wxToolBar_DeleteTool( TSelf(wxToolBar) _obj, int id );
@@ -4722,7 +4741,8 @@
 TBool      wxToolBar_GetToolState( TSelf(wxToolBar) _obj, int id );
 void       wxToolBar_InsertControl( TSelf(wxToolBar) _obj, int pos, TClass(wxControl) ctrl );
 void       wxToolBar_InsertSeparator( TSelf(wxToolBar) _obj, int pos );
-void       wxToolBar_InsertTool( TSelf(wxToolBar) _obj, int pos, int id, TClass(wxBitmap) bmp1, TClass(wxBitmap) bmp2, TBool isToggle, TClass(wxObject) data, TClass(wxString) shelp, TClass(wxString) lhelp );
+// Obsolete
+// void       wxToolBar_InsertTool( TSelf(wxToolBar) _obj, int pos, int id, TClass(wxBitmap) bmp1, TClass(wxBitmap) bmp2, TBool isToggle, TClass(wxObject) data, TClass(wxString) shelp, TClass(wxString) lhelp );
 TBool      wxToolBar_Realize( TSelf(wxToolBar) _obj );
 void       wxToolBar_RemoveTool( TSelf(wxToolBar) _obj, int id );
 void       wxToolBar_SetMargins( TSelf(wxToolBar) _obj, TPoint(x,y) );
@@ -4892,7 +4912,9 @@
 TClass(wxValidator) wxValidator_Create(  );
 void       wxValidator_Delete( TSelf(wxValidator) _obj );
 TClass(wxWindow) wxValidator_GetWindow( TSelf(wxValidator) _obj );
-void       wxValidator_SetBellOnError( TBool doIt );
+// Obsolete
+// void       wxValidator_SetBellOnError( TBool doIt );
+void       wxValidator_SuppressBellOnError( TBool doIt );
 void       wxValidator_SetWindow( TSelf(wxValidator) _obj, TClass(wxWindow) win );
 TBool      wxValidator_TransferFromWindow( TSelf(wxValidator) _obj );
 TBool      wxValidator_TransferToWindow( TSelf(wxValidator) _obj );
@@ -4989,7 +5011,8 @@
 int        wxWindow_LayoutPhase1( TSelf(wxWindow) _obj, int* noChanges );
 int        wxWindow_LayoutPhase2( TSelf(wxWindow) _obj, int* noChanges );
 void       wxWindow_Lower( TSelf(wxWindow) _obj );
-void       wxWindow_MakeModal( TSelf(wxWindow) _obj, TBool modal );
+// Obsolete
+// void       wxWindow_MakeModal( TSelf(wxWindow) _obj, TBool modal );
 void       wxWindow_Move( TSelf(wxWindow) _obj, TPoint(x,y) );
 void       wxWindow_MoveConstraint( TSelf(wxWindow) _obj, TPoint(x,y) );
 void*      wxWindow_PopEventHandler( TSelf(wxWindow) _obj, TBool deleteHandler );
diff --git a/wxc.cabal b/wxc.cabal
--- a/wxc.cabal
+++ b/wxc.cabal
@@ -1,277 +1,277 @@
-name:         wxc
-version:      0.90.1.1
-license:      OtherLicense
-license-file: LICENSE
-maintainer:   wxhaskell-devel@lists.sourceforge.net
-category:     GUI, User interfaces
-synopsis:     wxHaskell C++ wrapper
-description:
-  wxHaskell is a portable and native GUI library for Haskell. It is
-  built on top of wxWidgets, a comprehensive C++ library that is
-  portable across all major GUI platforms, including GTK, Windows,
-  X11, and MacOS X. This version works with wxWidgets 2.9 only.
-
-  Distributed under the WXWINDOWS LIBRARY LICENSE. Please see
-  LICENSE file, but note that this is essentially LGPL with an
-  exception allowing binary distribution of proprietary software.
-  This is the same license as wxWidgets itself uses.
-
-homepage:     http://haskell.org/haskellwiki/WxHaskell
-
-cabal-version: >= 1.2
-build-type:    Custom
-
-extra-source-files:
-    src/cpp/apppath.cpp
-    src/cpp/dragimage.cpp
-    src/cpp/eljaccelerator.cpp
-    src/cpp/eljartprov.cpp
-    src/cpp/eljbitmap.cpp
-    src/cpp/eljbrush.cpp
-    src/cpp/eljbusyinfo.cpp
-    src/cpp/eljbutton.cpp
-    src/cpp/eljcalendarctrl.cpp
-    src/cpp/eljcaret.cpp
-    src/cpp/eljcheckbox.cpp
-    src/cpp/eljchecklistbox.cpp
-    src/cpp/eljchoice.cpp
-    src/cpp/eljclipboard.cpp
-    src/cpp/eljcoldata.cpp
-    src/cpp/eljcolour.cpp
-    src/cpp/eljcolourdlg.cpp
-    src/cpp/eljcombobox.cpp
-    src/cpp/eljconfigbase.cpp
-    src/cpp/eljcontrol.cpp
-    src/cpp/eljctxhelp.cpp
-    src/cpp/eljcursor.cpp
-    src/cpp/eljdataformat.cpp
-    src/cpp/eljdatetime.cpp
-    src/cpp/eljdc.cpp
-    src/cpp/eljdcsvg.cpp
-    src/cpp/eljdialog.cpp
-    src/cpp/eljdirdlg.cpp
-    src/cpp/eljdnd.cpp
-    src/cpp/eljdrawing.cpp
-    src/cpp/eljevent.cpp
-    src/cpp/eljfiledialog.cpp
-    src/cpp/eljfilehist.cpp
-    src/cpp/eljfindrepldlg.cpp
-    src/cpp/eljfont.cpp
-    src/cpp/eljfontdata.cpp
-    src/cpp/eljfontdlg.cpp
-    src/cpp/eljframe.cpp
-    src/cpp/eljgauge.cpp
-    src/cpp/eljgrid.cpp
-    src/cpp/eljhelpcontroller.cpp
-    src/cpp/eljicnbndl.cpp
-    src/cpp/eljicon.cpp
-    src/cpp/eljimage.cpp
-    src/cpp/eljimagelist.cpp
-    src/cpp/eljlayoutconstraints.cpp
-    src/cpp/eljlistbox.cpp
-    src/cpp/eljlistctrl.cpp
-    src/cpp/eljlocale.cpp
-    src/cpp/eljlog.cpp
-    src/cpp/eljmask.cpp
-    src/cpp/eljmdi.cpp
-    src/cpp/eljmenu.cpp
-    src/cpp/eljmenubar.cpp
-    src/cpp/eljmessagedialog.cpp
-    src/cpp/eljmime.cpp
-    src/cpp/eljminiframe.cpp
-    src/cpp/eljnotebook.cpp
-    src/cpp/eljpalette.cpp
-    src/cpp/eljpanel.cpp
-    src/cpp/eljpen.cpp
-    src/cpp/eljprintdlg.cpp
-    src/cpp/eljprinting.cpp
-    src/cpp/eljprocess.cpp
-    src/cpp/eljradiobox.cpp
-    src/cpp/eljradiobutton.cpp
-    src/cpp/eljrc.cpp
-    src/cpp/eljregion.cpp
-    src/cpp/eljregioniter.cpp
-    src/cpp/eljsash.cpp
-    src/cpp/eljscrollbar.cpp
-    src/cpp/eljscrolledwindow.cpp
-    src/cpp/eljsingleinst.cpp
-    src/cpp/eljsizer.cpp
-    src/cpp/eljslider.cpp
-    src/cpp/eljspinctrl.cpp
-    src/cpp/eljsplitterwindow.cpp
-    src/cpp/eljstaticbox.cpp
-    src/cpp/eljstaticline.cpp
-    src/cpp/eljstatictext.cpp
-    src/cpp/eljstatusbar.cpp
-    src/cpp/eljsystemsettings.cpp
-    src/cpp/eljtextctrl.cpp
-    src/cpp/eljtimer.cpp
-    src/cpp/eljtipwnd.cpp
-    src/cpp/eljtglbtn.cpp
-    src/cpp/eljtoolbar.cpp
-    src/cpp/eljvalidator.cpp
-    src/cpp/eljwindow.cpp
-    src/cpp/eljwizard.cpp
-    src/cpp/ewxw_main.cpp
-    src/cpp/extra.cpp
-    src/cpp/glcanvas.cpp
-    src/cpp/graphicscontext.cpp
-    src/cpp/image.cpp
-    src/cpp/managed.cpp
-    src/cpp/mediactrl.cpp
-    src/cpp/previewframe.cpp
-    src/cpp/printout.cpp
-    src/cpp/sckaddr.cpp
-    src/cpp/socket.cpp
-    src/cpp/sound.cpp
-    src/cpp/stc.cpp
-    src/cpp/stc_gen.cpp
-    src/cpp/std.cpp
-    src/cpp/taskbaricon.cpp
-    src/cpp/textstream.cpp
-    src/cpp/treectrl.cpp
-    src/cpp/wrapper.cpp
-
-
-library
-
-  include-dirs:
-    src/include
-  
-  install-includes:
-    dragimage.h
-    eljgrid.h
-    ewxw_def.h
-    graphicscontext.h
-    glcanvas.h
-    managed.h
-    mediactrl.h
-    previewframe.h
-    printout.h
-    sound.h
-    stc.h
-    stc_gen.h
-    textstream.h
-    wrapper.h
-    wxc.h
-    wxc_glue.h
-    wxc_types.h
-
-  build-depends:
-    base >= 4 && < 5,
-    wxdirect >= 0.90.1.0
-
-  x-dll-sources:
-    src/cpp/apppath.cpp
-    src/cpp/dragimage.cpp
-    src/cpp/eljaccelerator.cpp
-    src/cpp/eljartprov.cpp
-    src/cpp/eljbitmap.cpp
-    src/cpp/eljbrush.cpp
-    src/cpp/eljbusyinfo.cpp
-    src/cpp/eljbutton.cpp
-    src/cpp/eljcalendarctrl.cpp
-    src/cpp/eljcaret.cpp
-    src/cpp/eljcheckbox.cpp
-    src/cpp/eljchecklistbox.cpp
-    src/cpp/eljchoice.cpp
-    src/cpp/eljclipboard.cpp
-    src/cpp/eljcoldata.cpp
-    src/cpp/eljcolour.cpp
-    src/cpp/eljcolourdlg.cpp
-    src/cpp/eljcombobox.cpp
-    src/cpp/eljconfigbase.cpp
-    src/cpp/eljcontrol.cpp
-    src/cpp/eljctxhelp.cpp
-    src/cpp/eljcursor.cpp
-    src/cpp/eljdataformat.cpp
-    src/cpp/eljdatetime.cpp
-    src/cpp/eljdc.cpp
-    src/cpp/eljdcsvg.cpp
-    src/cpp/eljdialog.cpp
-    src/cpp/eljdirdlg.cpp
-    src/cpp/eljdnd.cpp
-    src/cpp/eljdrawing.cpp
-    src/cpp/eljevent.cpp
-    src/cpp/eljfiledialog.cpp
-    src/cpp/eljfilehist.cpp
-    src/cpp/eljfindrepldlg.cpp
-    src/cpp/eljfont.cpp
-    src/cpp/eljfontdata.cpp
-    src/cpp/eljfontdlg.cpp
-    src/cpp/eljframe.cpp
-    src/cpp/eljgauge.cpp
-    src/cpp/eljgrid.cpp
-    src/cpp/eljhelpcontroller.cpp
-    src/cpp/eljicnbndl.cpp
-    src/cpp/eljicon.cpp
-    src/cpp/eljimage.cpp
-    src/cpp/eljimagelist.cpp
-    src/cpp/eljlayoutconstraints.cpp
-    src/cpp/eljlistbox.cpp
-    src/cpp/eljlistctrl.cpp
-    src/cpp/eljlocale.cpp
-    src/cpp/eljlog.cpp
-    src/cpp/eljmask.cpp
-    src/cpp/eljmdi.cpp
-    src/cpp/eljmenu.cpp
-    src/cpp/eljmenubar.cpp
-    src/cpp/eljmessagedialog.cpp
-    src/cpp/eljmime.cpp
-    src/cpp/eljminiframe.cpp
-    src/cpp/eljnotebook.cpp
-    src/cpp/eljpalette.cpp
-    src/cpp/eljpanel.cpp
-    src/cpp/eljpen.cpp
-    src/cpp/eljprintdlg.cpp
-    src/cpp/eljprinting.cpp
-    src/cpp/eljprocess.cpp
-    src/cpp/eljradiobox.cpp
-    src/cpp/eljradiobutton.cpp
-    src/cpp/eljrc.cpp
-    src/cpp/eljregion.cpp
-    src/cpp/eljregioniter.cpp
-    src/cpp/eljsash.cpp
-    src/cpp/eljscrollbar.cpp
-    src/cpp/eljscrolledwindow.cpp
-    src/cpp/eljsingleinst.cpp
-    src/cpp/eljsizer.cpp
-    src/cpp/eljslider.cpp
-    src/cpp/eljspinctrl.cpp
-    src/cpp/eljsplitterwindow.cpp
-    src/cpp/eljstaticbox.cpp
-    src/cpp/eljstaticline.cpp
-    src/cpp/eljstatictext.cpp
-    src/cpp/eljstatusbar.cpp
-    src/cpp/eljsystemsettings.cpp
-    src/cpp/eljtextctrl.cpp
-    src/cpp/eljtimer.cpp
-    src/cpp/eljtipwnd.cpp
-    src/cpp/eljtglbtn.cpp
-    src/cpp/eljtoolbar.cpp
-    src/cpp/eljvalidator.cpp
-    src/cpp/eljwindow.cpp
-    src/cpp/eljwizard.cpp
-    src/cpp/ewxw_main.cpp
-    src/cpp/extra.cpp
-    src/cpp/glcanvas.cpp
-    src/cpp/graphicscontext.cpp
-    src/cpp/image.cpp
-    src/cpp/managed.cpp
-    src/cpp/mediactrl.cpp
-    src/cpp/previewframe.cpp
-    src/cpp/printout.cpp
-    src/cpp/sckaddr.cpp
-    src/cpp/socket.cpp
-    src/cpp/sound.cpp
-    src/cpp/stc.cpp
-    src/cpp/std.cpp
-    src/cpp/taskbaricon.cpp
-    src/cpp/textstream.cpp
-    src/cpp/treectrl.cpp
-    src/cpp/wrapper.cpp
-
-  x-dll-name: wxc
-
-  x-dll-extra-libraries:
-
+name:         wxc
+version:      0.91.0.0
+license:      OtherLicense
+license-file: LICENSE
+maintainer:   wxhaskell-devel@lists.sourceforge.net
+category:     GUI, User interfaces
+synopsis:     wxHaskell C++ wrapper
+description:
+  wxHaskell is a portable and native GUI library for Haskell. It is
+  built on top of wxWidgets, a comprehensive C++ library that is
+  portable across all major GUI platforms, including GTK, Windows,
+  X11, and MacOS X. This version works with wxWidgets 2.9 and 3.0.
+
+  Distributed under the WXWINDOWS LIBRARY LICENSE. Please see
+  LICENSE file, but note that this is essentially LGPL with an
+  exception allowing binary distribution of proprietary software.
+  This is the same license as wxWidgets itself uses.
+
+homepage:     http://haskell.org/haskellwiki/WxHaskell
+
+cabal-version: >= 1.2
+build-type:    Custom
+
+extra-source-files:
+    src/cpp/apppath.cpp
+    src/cpp/dragimage.cpp
+    src/cpp/eljaccelerator.cpp
+    src/cpp/eljartprov.cpp
+    src/cpp/eljbitmap.cpp
+    src/cpp/eljbrush.cpp
+    src/cpp/eljbusyinfo.cpp
+    src/cpp/eljbutton.cpp
+    src/cpp/eljcalendarctrl.cpp
+    src/cpp/eljcaret.cpp
+    src/cpp/eljcheckbox.cpp
+    src/cpp/eljchecklistbox.cpp
+    src/cpp/eljchoice.cpp
+    src/cpp/eljclipboard.cpp
+    src/cpp/eljcoldata.cpp
+    src/cpp/eljcolour.cpp
+    src/cpp/eljcolourdlg.cpp
+    src/cpp/eljcombobox.cpp
+    src/cpp/eljconfigbase.cpp
+    src/cpp/eljcontrol.cpp
+    src/cpp/eljctxhelp.cpp
+    src/cpp/eljcursor.cpp
+    src/cpp/eljdataformat.cpp
+    src/cpp/eljdatetime.cpp
+    src/cpp/eljdc.cpp
+    src/cpp/eljdcsvg.cpp
+    src/cpp/eljdialog.cpp
+    src/cpp/eljdirdlg.cpp
+    src/cpp/eljdnd.cpp
+    src/cpp/eljdrawing.cpp
+    src/cpp/eljevent.cpp
+    src/cpp/eljfiledialog.cpp
+    src/cpp/eljfilehist.cpp
+    src/cpp/eljfindrepldlg.cpp
+    src/cpp/eljfont.cpp
+    src/cpp/eljfontdata.cpp
+    src/cpp/eljfontdlg.cpp
+    src/cpp/eljframe.cpp
+    src/cpp/eljgauge.cpp
+    src/cpp/eljgrid.cpp
+    src/cpp/eljhelpcontroller.cpp
+    src/cpp/eljicnbndl.cpp
+    src/cpp/eljicon.cpp
+    src/cpp/eljimage.cpp
+    src/cpp/eljimagelist.cpp
+    src/cpp/eljlayoutconstraints.cpp
+    src/cpp/eljlistbox.cpp
+    src/cpp/eljlistctrl.cpp
+    src/cpp/eljlocale.cpp
+    src/cpp/eljlog.cpp
+    src/cpp/eljmask.cpp
+    src/cpp/eljmdi.cpp
+    src/cpp/eljmenu.cpp
+    src/cpp/eljmenubar.cpp
+    src/cpp/eljmessagedialog.cpp
+    src/cpp/eljmime.cpp
+    src/cpp/eljminiframe.cpp
+    src/cpp/eljnotebook.cpp
+    src/cpp/eljpalette.cpp
+    src/cpp/eljpanel.cpp
+    src/cpp/eljpen.cpp
+    src/cpp/eljprintdlg.cpp
+    src/cpp/eljprinting.cpp
+    src/cpp/eljprocess.cpp
+    src/cpp/eljradiobox.cpp
+    src/cpp/eljradiobutton.cpp
+    src/cpp/eljrc.cpp
+    src/cpp/eljregion.cpp
+    src/cpp/eljregioniter.cpp
+    src/cpp/eljsash.cpp
+    src/cpp/eljscrollbar.cpp
+    src/cpp/eljscrolledwindow.cpp
+    src/cpp/eljsingleinst.cpp
+    src/cpp/eljsizer.cpp
+    src/cpp/eljslider.cpp
+    src/cpp/eljspinctrl.cpp
+    src/cpp/eljsplitterwindow.cpp
+    src/cpp/eljstaticbox.cpp
+    src/cpp/eljstaticline.cpp
+    src/cpp/eljstatictext.cpp
+    src/cpp/eljstatusbar.cpp
+    src/cpp/eljsystemsettings.cpp
+    src/cpp/eljtextctrl.cpp
+    src/cpp/eljtimer.cpp
+    src/cpp/eljtipwnd.cpp
+    src/cpp/eljtglbtn.cpp
+    src/cpp/eljtoolbar.cpp
+    src/cpp/eljvalidator.cpp
+    src/cpp/eljwindow.cpp
+    src/cpp/eljwizard.cpp
+    src/cpp/ewxw_main.cpp
+    src/cpp/extra.cpp
+    src/cpp/glcanvas.cpp
+    src/cpp/graphicscontext.cpp
+    src/cpp/image.cpp
+    src/cpp/managed.cpp
+    src/cpp/mediactrl.cpp
+    src/cpp/previewframe.cpp
+    src/cpp/printout.cpp
+    src/cpp/sckaddr.cpp
+    src/cpp/socket.cpp
+    src/cpp/sound.cpp
+    src/cpp/stc.cpp
+    src/cpp/stc_gen.cpp
+    src/cpp/std.cpp
+    src/cpp/taskbaricon.cpp
+    src/cpp/textstream.cpp
+    src/cpp/treectrl.cpp
+    src/cpp/wrapper.cpp
+
+
+library
+
+  include-dirs:
+    src/include
+  
+  install-includes:
+    dragimage.h
+    eljgrid.h
+    ewxw_def.h
+    graphicscontext.h
+    glcanvas.h
+    managed.h
+    mediactrl.h
+    previewframe.h
+    printout.h
+    sound.h
+    stc.h
+    stc_gen.h
+    textstream.h
+    wrapper.h
+    wxc.h
+    wxc_glue.h
+    wxc_types.h
+
+  build-depends:
+    base >= 4 && < 5,
+    wxdirect >= 0.90.1.1
+
+  x-dll-sources:
+    src/cpp/apppath.cpp
+    src/cpp/dragimage.cpp
+    src/cpp/eljaccelerator.cpp
+    src/cpp/eljartprov.cpp
+    src/cpp/eljbitmap.cpp
+    src/cpp/eljbrush.cpp
+    src/cpp/eljbusyinfo.cpp
+    src/cpp/eljbutton.cpp
+    src/cpp/eljcalendarctrl.cpp
+    src/cpp/eljcaret.cpp
+    src/cpp/eljcheckbox.cpp
+    src/cpp/eljchecklistbox.cpp
+    src/cpp/eljchoice.cpp
+    src/cpp/eljclipboard.cpp
+    src/cpp/eljcoldata.cpp
+    src/cpp/eljcolour.cpp
+    src/cpp/eljcolourdlg.cpp
+    src/cpp/eljcombobox.cpp
+    src/cpp/eljconfigbase.cpp
+    src/cpp/eljcontrol.cpp
+    src/cpp/eljctxhelp.cpp
+    src/cpp/eljcursor.cpp
+    src/cpp/eljdataformat.cpp
+    src/cpp/eljdatetime.cpp
+    src/cpp/eljdc.cpp
+    src/cpp/eljdcsvg.cpp
+    src/cpp/eljdialog.cpp
+    src/cpp/eljdirdlg.cpp
+    src/cpp/eljdnd.cpp
+    src/cpp/eljdrawing.cpp
+    src/cpp/eljevent.cpp
+    src/cpp/eljfiledialog.cpp
+    src/cpp/eljfilehist.cpp
+    src/cpp/eljfindrepldlg.cpp
+    src/cpp/eljfont.cpp
+    src/cpp/eljfontdata.cpp
+    src/cpp/eljfontdlg.cpp
+    src/cpp/eljframe.cpp
+    src/cpp/eljgauge.cpp
+    src/cpp/eljgrid.cpp
+    src/cpp/eljhelpcontroller.cpp
+    src/cpp/eljicnbndl.cpp
+    src/cpp/eljicon.cpp
+    src/cpp/eljimage.cpp
+    src/cpp/eljimagelist.cpp
+    src/cpp/eljlayoutconstraints.cpp
+    src/cpp/eljlistbox.cpp
+    src/cpp/eljlistctrl.cpp
+    src/cpp/eljlocale.cpp
+    src/cpp/eljlog.cpp
+    src/cpp/eljmask.cpp
+    src/cpp/eljmdi.cpp
+    src/cpp/eljmenu.cpp
+    src/cpp/eljmenubar.cpp
+    src/cpp/eljmessagedialog.cpp
+    src/cpp/eljmime.cpp
+    src/cpp/eljminiframe.cpp
+    src/cpp/eljnotebook.cpp
+    src/cpp/eljpalette.cpp
+    src/cpp/eljpanel.cpp
+    src/cpp/eljpen.cpp
+    src/cpp/eljprintdlg.cpp
+    src/cpp/eljprinting.cpp
+    src/cpp/eljprocess.cpp
+    src/cpp/eljradiobox.cpp
+    src/cpp/eljradiobutton.cpp
+    src/cpp/eljrc.cpp
+    src/cpp/eljregion.cpp
+    src/cpp/eljregioniter.cpp
+    src/cpp/eljsash.cpp
+    src/cpp/eljscrollbar.cpp
+    src/cpp/eljscrolledwindow.cpp
+    src/cpp/eljsingleinst.cpp
+    src/cpp/eljsizer.cpp
+    src/cpp/eljslider.cpp
+    src/cpp/eljspinctrl.cpp
+    src/cpp/eljsplitterwindow.cpp
+    src/cpp/eljstaticbox.cpp
+    src/cpp/eljstaticline.cpp
+    src/cpp/eljstatictext.cpp
+    src/cpp/eljstatusbar.cpp
+    src/cpp/eljsystemsettings.cpp
+    src/cpp/eljtextctrl.cpp
+    src/cpp/eljtimer.cpp
+    src/cpp/eljtipwnd.cpp
+    src/cpp/eljtglbtn.cpp
+    src/cpp/eljtoolbar.cpp
+    src/cpp/eljvalidator.cpp
+    src/cpp/eljwindow.cpp
+    src/cpp/eljwizard.cpp
+    src/cpp/ewxw_main.cpp
+    src/cpp/extra.cpp
+    src/cpp/glcanvas.cpp
+    src/cpp/graphicscontext.cpp
+    src/cpp/image.cpp
+    src/cpp/managed.cpp
+    src/cpp/mediactrl.cpp
+    src/cpp/previewframe.cpp
+    src/cpp/printout.cpp
+    src/cpp/sckaddr.cpp
+    src/cpp/socket.cpp
+    src/cpp/sound.cpp
+    src/cpp/stc.cpp
+    src/cpp/std.cpp
+    src/cpp/taskbaricon.cpp
+    src/cpp/textstream.cpp
+    src/cpp/treectrl.cpp
+    src/cpp/wrapper.cpp
+
+  x-dll-name: wxc
+
+  x-dll-extra-libraries:
+
