/*
 * This file was generated automatically by ExtUtils::ParseXS version 3.44 from the
 * contents of GDI.xs. Do not edit this file, edit GDI.xs instead.
 *
 *    ANY CHANGES MADE HERE WILL BE LOST!
 *
 */

/////////////////////////////////////////////////////////////////////////////
// Name:        GDI.xs
// Purpose:     XS for various GDI objects
// Author:      Mattia Barbon
// Modified by:
// Created:     29/10/2000
// RCS-ID:      $Id: GDI.xs 2935 2010-07-04 11:46:58Z mbarbon $
// Copyright:   (c) 2000-2003, 2005-2010 Mattia Barbon
// Licence:     This program is free software; you can redistribute it and/or
//              modify it under the same terms as Perl itself
/////////////////////////////////////////////////////////////////////////////

#undef bool
#define PERL_NO_GET_CONTEXT

#include "cpp/wxapi.h"

#undef THIS

WXPLI_BOOT_ONCE(Wx_GDI);
#define boot_Wx_GDI wxPli_boot_Wx_GDI

#if WXPERL_W_VERSION_LT( 2, 9, 0 )
typedef int wxBrushStyle;
typedef int wxPenStyle;
typedef int wxPenJoin;
typedef int wxPenCap;
typedef int wxRasterOperationMode;
typedef int wxMappingMode;
typedef int wxPolygonFillMode;
typedef int wxFloodFillStyle;
#endif
#if WXPERL_W_VERSION_LT( 2, 9, 1 )
typedef int wxImageResizeQuality;
#endif

#ifndef PERL_UNUSED_VAR
#  define PERL_UNUSED_VAR(var) if (0) var = var
#endif

#ifndef dVAR
#  define dVAR		dNOOP
#endif


/* This stuff is not part of the API! You have been warned. */
#ifndef PERL_VERSION_DECIMAL
#  define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s)
#endif
#ifndef PERL_DECIMAL_VERSION
#  define PERL_DECIMAL_VERSION \
	  PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)
#endif
#ifndef PERL_VERSION_GE
#  define PERL_VERSION_GE(r,v,s) \
	  (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s))
#endif
#ifndef PERL_VERSION_LE
#  define PERL_VERSION_LE(r,v,s) \
	  (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s))
#endif

/* XS_INTERNAL is the explicit static-linkage variant of the default
 * XS macro.
 *
 * XS_EXTERNAL is the same as XS_INTERNAL except it does not include
 * "STATIC", ie. it exports XSUB symbols. You probably don't want that
 * for anything but the BOOT XSUB.
 *
 * See XSUB.h in core!
 */


/* TODO: This might be compatible further back than 5.10.0. */
#if PERL_VERSION_GE(5, 10, 0) && PERL_VERSION_LE(5, 15, 1)
#  undef XS_EXTERNAL
#  undef XS_INTERNAL
#  if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
#    define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name)
#    define XS_INTERNAL(name) STATIC XSPROTO(name)
#  endif
#  if defined(__SYMBIAN32__)
#    define XS_EXTERNAL(name) EXPORT_C XSPROTO(name)
#    define XS_INTERNAL(name) EXPORT_C STATIC XSPROTO(name)
#  endif
#  ifndef XS_EXTERNAL
#    if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
#      define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__)
#      define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__)
#    else
#      ifdef __cplusplus
#        define XS_EXTERNAL(name) extern "C" XSPROTO(name)
#        define XS_INTERNAL(name) static XSPROTO(name)
#      else
#        define XS_EXTERNAL(name) XSPROTO(name)
#        define XS_INTERNAL(name) STATIC XSPROTO(name)
#      endif
#    endif
#  endif
#endif

/* perl >= 5.10.0 && perl <= 5.15.1 */


/* The XS_EXTERNAL macro is used for functions that must not be static
 * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL
 * macro defined, the best we can do is assume XS is the same.
 * Dito for XS_INTERNAL.
 */
#ifndef XS_EXTERNAL
#  define XS_EXTERNAL(name) XS(name)
#endif
#ifndef XS_INTERNAL
#  define XS_INTERNAL(name) XS(name)
#endif

/* Now, finally, after all this mess, we want an ExtUtils::ParseXS
 * internal macro that we're free to redefine for varying linkage due
 * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use
 * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to!
 */

#undef XS_EUPXS
#if defined(PERL_EUPXS_ALWAYS_EXPORT)
#  define XS_EUPXS(name) XS_EXTERNAL(name)
#else
   /* default to internal */
#  define XS_EUPXS(name) XS_INTERNAL(name)
#endif

#ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
#define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)

/* prototype to pass -Wmissing-prototypes */
STATIC void
S_croak_xs_usage(const CV *const cv, const char *const params);

STATIC void
S_croak_xs_usage(const CV *const cv, const char *const params)
{
    const GV *const gv = CvGV(cv);

    PERL_ARGS_ASSERT_CROAK_XS_USAGE;

    if (gv) {
        const char *const gvname = GvNAME(gv);
        const HV *const stash = GvSTASH(gv);
        const char *const hvname = stash ? HvNAME(stash) : NULL;

        if (hvname)
	    Perl_croak_nocontext("Usage: %s::%s(%s)", hvname, gvname, params);
        else
	    Perl_croak_nocontext("Usage: %s(%s)", gvname, params);
    } else {
        /* Pants. I don't think that it should be possible to get here. */
	Perl_croak_nocontext("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params);
    }
}
#undef  PERL_ARGS_ASSERT_CROAK_XS_USAGE

#define croak_xs_usage        S_croak_xs_usage

#endif

/* NOTE: the prototype of newXSproto() is different in versions of perls,
 * so we define a portable version of newXSproto()
 */
#ifdef newXS_flags
#define newXSproto_portable(name, c_impl, file, proto) newXS_flags(name, c_impl, file, proto, 0)
#else
#define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
#endif /* !defined(newXS_flags) */

#if PERL_VERSION_LE(5, 21, 5)
#  define newXS_deffile(a,b) Perl_newXS(aTHX_ a,b,file)
#else
#  define newXS_deffile(a,b) Perl_newXS_deffile(aTHX_ a,b)
#endif


/* INCLUDE_COMMAND:  Including output of '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/Animation.xsp' from 'GDI.xs' */


/* INCLUDE:  Including 'XS/Colour.xs' from '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/Animation.xsp' */


/* INCLUDE:  Including 'XS/ColourDatabase.xs' from 'XS/Colour.xs' */


/* INCLUDE:  Including 'XS/Font.xs' from 'XS/ColourDatabase.xs' */


/* INCLUDE_COMMAND:  Including output of '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/ImageList.xsp' from 'XS/Font.xs' */


/* INCLUDE:  Including 'XS/Bitmap.xs' from '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/ImageList.xsp' */


/* INCLUDE:  Including 'XS/Icon.xs' from 'XS/Bitmap.xs' */


/* INCLUDE:  Including 'XS/Cursor.xs' from 'XS/Icon.xs' */


/* INCLUDE_COMMAND:  Including output of '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/DC.xsp' from 'XS/Cursor.xs' */


/* INCLUDE:  Including 'XS/Overlay.xs' from '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/DC.xsp' */


/* INCLUDE:  Including 'XS/Pen.xs' from 'XS/Overlay.xs' */


/* INCLUDE_COMMAND:  Including output of '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/Brush.xsp' from 'XS/Pen.xs' */


/* INCLUDE:  Including 'XS/Image.xs' from '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/Brush.xsp' */


/* INCLUDE:  Including 'XS/Palette.xs' from 'XS/Image.xs' */

#include <wx/palette.h>

XS_EUPXS(XS_Wx__Palette_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Palette_new)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "CLASS, r, g, b");
    {
	SV*	r = ST(1)
;
	SV*	g = ST(2)
;
	SV*	b = ST(3)
;
    unsigned char* red;
    unsigned char* green;
    unsigned char* blue;
    int rn, gn, bn;
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxPalette *	RETVAL;
    rn = wxPli_av_2_uchararray( aTHX_ r, &red );
    gn = wxPli_av_2_uchararray( aTHX_ g, &green );
    bn = wxPli_av_2_uchararray( aTHX_ b, &blue );

    if( rn != gn || gn != bn )
    {
      croak( "arrays must be of the same size" );
    }

    RETVAL = new wxPalette( rn, red, green, blue );

    delete[] red;
    delete[] green;
    delete[] blue;
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Palette", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Palette_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Palette_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Palette_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Palette_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPalette *    THIS = (wxPalette *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Palette" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Palette", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}

#if WXPERL_W_VERSION_GE( 2, 6, 1 )
#define XSubPPtmpAAAA 1


XS_EUPXS(XS_Wx__Palette_GetColoursCount); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Palette_GetColoursCount)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPalette *    THIS = (wxPalette *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Palette" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetColoursCount();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Palette_GetPixel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Palette_GetPixel)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, red, green, blue");
    {
	unsigned char	red = (unsigned char)SvUV(ST(1))
;
	unsigned char	green = (unsigned char)SvUV(ST(2))
;
	unsigned char	blue = (unsigned char)SvUV(ST(3))
;
	wxPalette *    THIS = (wxPalette *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Palette" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetPixel(red, green, blue);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Palette_GetRGB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Palette_GetRGB)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, pixel");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	int	pixel = (int)SvIV(ST(1))
;
    unsigned char red, green, blue;
	wxPalette *    THIS = (wxPalette *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Palette" )
;
    if( THIS->GetRGB( pixel, &red, &green, &blue ) ) 
    {
      EXTEND( SP, 3 );
      PUSHs( sv_2mortal( newSVuv( red ) ) );
      PUSHs( sv_2mortal( newSVuv( green ) ) );
      PUSHs( sv_2mortal( newSVuv( blue ) ) ); 
    }
    else
    {
      EXTEND( SP, 3 );
      PUSHs( &PL_sv_undef );
      PUSHs( &PL_sv_undef );
      PUSHs( &PL_sv_undef );
    }
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Palette_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Palette_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPalette *    THIS = (wxPalette *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Palette" )
;
	bool	RETVAL;

	RETVAL = THIS->Ok();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAAAB 1


XS_EUPXS(XS_Wx__Palette_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Palette_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPalette *    THIS = (wxPalette *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Palette" )
;
	bool	RETVAL;

	RETVAL = THIS->IsOk();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

/* INCLUDE: Returning to 'XS/Image.xs' from 'XS/Palette.xs' */

#include <wx/image.h>
#include <wx/bitmap.h>
#include "cpp/streams.h"
#include "cpp/overload.h"

XS_EUPXS(XS_Wx__Image_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    BEGIN_OVERLOAD()
        MATCH_VOIDM_REDISP( newNull )
	MATCH_REDISP( wxPliOvl_wico, newIcon )
        MATCH_REDISP( wxPliOvl_wbmp, newBitmap )
        MATCH_REDISP( wxPliOvl_wist_n, newStreamType )
        MATCH_REDISP( wxPliOvl_wist_s, newStreamMIME )
        MATCH_REDISP_COUNT( wxPliOvl_n_n, newWH, 2 )
        MATCH_REDISP( wxPliOvl_n_n_s, newData )
        MATCH_REDISP( wxPliOvl_n_n_s_s, newDataAlpha )
        MATCH_REDISP( wxPliOvl_s_n, newNameType )
        MATCH_REDISP( wxPliOvl_s_s, newNameMIME )
    END_OVERLOAD( Wx::Image::new )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Image_newNull); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_newNull)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	SV*	CLASS = ST(0)
;
	wxImage *	RETVAL;
    RETVAL = new wxImage();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_newWH); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_newWH)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, width, height");
    {
	SV*	CLASS = ST(0)
;
	int	width = (int)SvIV(ST(1))
;
	int	height = (int)SvIV(ST(2))
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( width, height );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_newData); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_newData)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "CLASS, width, height, dt");
    {
	SV*	CLASS = ST(0)
;
	int	width = (int)SvIV(ST(1))
;
	int	height = (int)SvIV(ST(2))
;
	SV*	dt = ST(3)
;
    STRLEN len;
    unsigned char* data = (unsigned char*)SvPV( dt, len );
    unsigned char* newdata;
	wxImage *	RETVAL;
    if( len != (STRLEN) width * height * 3 )
    {
        croak( "not enough data in image constructor" );
    }
    newdata = (unsigned char*)malloc( width * height * 3 );
    memcpy( newdata, data, width * height * 3 );

    RETVAL = new wxImage( width, height, newdata );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 5, 3 )
#define XSubPPtmpAAAC 1


XS_EUPXS(XS_Wx__Image_newDataAlpha); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_newDataAlpha)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "CLASS, width, height, dt, al");
    {
	SV*	CLASS = ST(0)
;
	int	width = (int)SvIV(ST(1))
;
	int	height = (int)SvIV(ST(2))
;
	SV*	dt = ST(3)
;
	SV*	al = ST(4)
;
    STRLEN len_data, len_alpha;
    unsigned char* data = (unsigned char*)SvPV( dt, len_data );
    unsigned char* alpha = (unsigned char*)SvPV( al, len_alpha );
	wxImage *	RETVAL;
    if( len_data != (STRLEN) width * height * 3 ||
        len_alpha != (STRLEN) width * height )
    {
        croak( "not enough data in image constructor" );
    }
    unsigned char* newdata = (unsigned char*) malloc( len_data );
    memcpy( newdata, data, len_data );
    unsigned char* newalpha = (unsigned char*) malloc( len_alpha );
    memcpy( newalpha, alpha, len_alpha );

    RETVAL = new wxImage( width, height, newdata, newalpha );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Image_newNameType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_newNameType)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "CLASS, name, type, index = -1");
    {
	SV*	CLASS = ST(0)
;
	wxString	name;
	wxBitmapType	type = (wxBitmapType)SvIV(ST(2))
;
	int	index;
	wxImage *	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	if (items < 4)
	    index = -1;
	else {
	    index = (int)SvIV(ST(3))
;
	}
    RETVAL = new wxImage( name, type, index );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_newNameMIME); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_newNameMIME)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "CLASS, name, mimetype, index = -1");
    {
	SV*	CLASS = ST(0)
;
	wxString	name;
	wxString	mimetype;
	int	index;
	wxImage *	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

    WXSTRING_INPUT( mimetype, wxString, ST(2) )
;

	if (items < 4)
	    index = -1;
	else {
	    index = (int)SvIV(ST(3))
;
	}
    RETVAL = new wxImage( name, mimetype, index );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_newStreamType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_newStreamType)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "CLASS, stream, type, index = -1");
    {
	SV*	CLASS = ST(0)
;
	wxPliInputStream	stream;
	wxBitmapType	type = (wxBitmapType)SvIV(ST(2))
;
	int	index;
	wxImage *	RETVAL;

    wxPli_sv_2_istream( aTHX_ ST(1), stream )
;

	if (items < 4)
	    index = -1;
	else {
	    index = (int)SvIV(ST(3))
;
	}
    RETVAL = new wxImage( stream, type, index );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_newStreamMIME); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_newStreamMIME)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "CLASS, stream, mime, index = -1");
    {
	SV*	CLASS = ST(0)
;
	wxPliInputStream	stream;
	wxString	mime;
	int	index;
	wxImage *	RETVAL;

    wxPli_sv_2_istream( aTHX_ ST(1), stream )
;

    WXSTRING_INPUT( mime, wxString, ST(2) )
;

	if (items < 4)
	    index = -1;
	else {
	    index = (int)SvIV(ST(3))
;
	}
    RETVAL = new wxImage( stream, mime, index );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_newBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_newBitmap)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, bitmap");
    {
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( bitmap->ConvertToImage() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_newIcon); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_newIcon)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, icon");
    {
	wxIcon*    icon = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Icon" )
;
	wxImage *	RETVAL;
    wxBitmap tmp; tmp.CopyFromIcon( *icon );
    RETVAL = new wxImage( tmp.ConvertToImage() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Image", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_AddHandler); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_AddHandler)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handler");
    {
	wxImageHandler*    handler = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
    wxImage::AddHandler( handler );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_ConvertToMono); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_ConvertToMono)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, r, g, b");
    {
	unsigned char	r = (unsigned char)SvUV(ST(1))
;
	unsigned char	g = (unsigned char)SvUV(ST(2))
;
	unsigned char	b = (unsigned char)SvUV(ST(3))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->ConvertToMono( r, g, b ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 5, 3 )
#define XSubPPtmpAAAD 1


XS_EUPXS(XS_Wx__Image_ConvertAlphaToMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_ConvertAlphaToMask)
{
    dVAR; dXSARGS;
    if (items < 1 || items > 2)
       croak_xs_usage(cv,  "THIS, threshold = 128");
    {
	unsigned char	threshold;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

	if (items < 2)
	    threshold = 128;
	else {
	    threshold = (unsigned char)SvUV(ST(1))
;
	}

	RETVAL = THIS->ConvertAlphaToMask(threshold);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif
#if WXPERL_W_VERSION_GE( 2, 5, 4 )
#define XSubPPtmpAAAE 1


XS_EUPXS(XS_Wx__Image_ConvertColourToAlpha); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_ConvertColourToAlpha)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, r, g, b");
    {
	unsigned char	r = (unsigned char)SvUV(ST(1))
;
	unsigned char	g = (unsigned char)SvUV(ST(2))
;
	unsigned char	b = (unsigned char)SvUV(ST(3))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

	RETVAL = THIS->ConvertColourToAlpha(r, g, b);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif
#if WXPERL_W_VERSION_GE( 2, 7, 0 )
#define XSubPPtmpAAAF 1


XS_EUPXS(XS_Wx__Image_ConvertToGreyscale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_ConvertToGreyscale)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->ConvertToGreyscale() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Image_Copy); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Copy)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->Copy() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_Create); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Create)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, width, height");
    {
	int	width = (int)SvIV(ST(1))
;
	int	height = (int)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

	THIS->Create(width, height);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_Destroy); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Destroy)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

	THIS->Destroy();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_FindHandlerName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_FindHandlerName)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "name");
    {
	wxString	name;
	wxImageHandler *	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(0) )
;
    RETVAL = wxImage::FindHandler( name );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_FindHandlerExtType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_FindHandlerExtType)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "extension, type");
    {
	wxString	extension;
	wxBitmapType	type = (wxBitmapType)SvIV(ST(1))
;
	wxImageHandler *	RETVAL;

    WXSTRING_INPUT( extension, wxString, ST(0) )
;
    RETVAL = wxImage::FindHandler( extension, type );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_FindHandlerType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_FindHandlerType)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "type");
    {
	wxBitmapType	type = (wxBitmapType)SvIV(ST(0))
;
	wxImageHandler *	RETVAL;
    RETVAL = wxImage::FindHandler( type );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_FindHandlerMime); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_FindHandlerMime)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "mime");
    {
	wxString	mime;
	wxImageHandler *	RETVAL;

    WXSTRING_INPUT( mime, wxString, ST(0) )
;
    RETVAL = wxImage::FindHandlerMime( mime );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 5, 3 )
#define XSubPPtmpAAAG 1


XS_EUPXS(XS_Wx__Image_GetAlpha); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetAlpha)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    BEGIN_OVERLOAD()
        MATCH_VOIDM_REDISP( GetAlphaData )
        MATCH_REDISP( wxPliOvl_n_n, GetAlphaXY )
    END_OVERLOAD( Wx::Image::GetAlpha )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Image_GetAlphaXY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetAlphaXY)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	int	x = (int)SvIV(ST(1))
;
	int	y = (int)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	unsigned char	RETVAL;
	dXSTARG;
    RETVAL = THIS->GetAlpha( x, y );
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetAlphaData); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetAlphaData)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	SV *	RETVAL;
    unsigned char* alpha = THIS->GetAlpha();

    if( alpha == NULL )
        XSRETURN_UNDEF;

    RETVAL = newSVpvn( (char*) alpha, THIS->GetWidth() * THIS->GetHeight() );
	RETVAL = sv_2mortal(RETVAL);
	ST(0) = RETVAL;
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Image_GetData); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetData)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	SV *	RETVAL;
    STRLEN len = THIS->GetWidth() * THIS->GetHeight() * 3;
    RETVAL = newSVpvn( (char*)THIS->GetData(), len );
	RETVAL = sv_2mortal(RETVAL);
	ST(0) = RETVAL;
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetBlue); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetBlue)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	int	x = (int)SvIV(ST(1))
;
	int	y = (int)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	unsigned char	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetBlue(x, y);
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetGreen); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetGreen)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	int	x = (int)SvIV(ST(1))
;
	int	y = (int)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	unsigned char	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetGreen(x, y);
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetRed); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetRed)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	int	x = (int)SvIV(ST(1))
;
	int	y = (int)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	unsigned char	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetRed(x, y);
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetHeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetHeight)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetHeight();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetMaskBlue); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetMaskBlue)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	unsigned char	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetMaskBlue();
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetMaskGreen); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetMaskGreen)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	unsigned char	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetMaskGreen();
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetMaskRed); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetMaskRed)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	unsigned char	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetMaskRed();
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetOption); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetOption)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, name");
    {
	wxString	name;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxString	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	RETVAL = THIS->GetOption(name);
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetOptionInt); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetOptionInt)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, name");
    {
	wxString	name;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	int	RETVAL;
	dXSTARG;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	RETVAL = THIS->GetOptionInt(name);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetPalette); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetPalette)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxPalette *	RETVAL;
    RETVAL = new wxPalette( THIS->GetPalette() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Palette", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetSubImage); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetSubImage)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, rect");
    {
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Rect" )
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->GetSubImage( *rect ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetWidth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetWidth();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 5, 3 )
#define XSubPPtmpAAAH 1


XS_EUPXS(XS_Wx__Image_HasAlpha); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_HasAlpha)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

	RETVAL = THIS->HasAlpha();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif
#if WXPERL_W_VERSION_GE( 2, 5, 4 )
#define XSubPPtmpAAAI 1


XS_EUPXS(XS_Wx__Image_InitAlpha); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_InitAlpha)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

	THIS->InitAlpha();
    }
    XSRETURN_EMPTY;
}

#endif
#if WXPERL_W_VERSION_GE( 2, 6, 1 )
#define XSubPPtmpAAAJ 1


XS_EUPXS(XS_Wx__Image_IsTransparent); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_IsTransparent)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, x, y, threshold = wxIMAGE_ALPHA_THRESHOLD");
    {
	int	x = (int)SvIV(ST(1))
;
	int	y = (int)SvIV(ST(2))
;
	unsigned char	threshold;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

	if (items < 4)
	    threshold = wxIMAGE_ALPHA_THRESHOLD;
	else {
	    threshold = (unsigned char)SvUV(ST(3))
;
	}

	RETVAL = THIS->IsTransparent(x, y, threshold);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Image_HasMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_HasMask)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

	RETVAL = THIS->HasMask();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_HasOption); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_HasOption)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, name");
    {
	wxString	name;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	RETVAL = THIS->HasOption(name);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_HasPalette); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_HasPalette)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

	RETVAL = THIS->HasPalette();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_InsertHandler); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_InsertHandler)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handler");
    {
	wxImageHandler*    handler = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
    wxImage::InsertHandler( handler );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_LoadFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_LoadFile)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wist_n, LoadStreamType )
        MATCH_REDISP( wxPliOvl_wist_s, LoadStreamMIME )
        MATCH_REDISP( wxPliOvl_s_n, LoadFileType )
        MATCH_REDISP( wxPliOvl_s_s, LoadFileMIME )
    END_OVERLOAD( Wx::Image::LoadFile )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Image_LoadFileType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_LoadFileType)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, name, type, index = -1");
    {
	wxString	name;
	wxBitmapType	type = (wxBitmapType)SvIV(ST(2))
;
	int	index;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	if (items < 4)
	    index = -1;
	else {
	    index = (int)SvIV(ST(3))
;
	}
    RETVAL = THIS->LoadFile( name, type, index );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_LoadFileMIME); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_LoadFileMIME)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, name, type, index = -1");
    {
	wxString	name;
	wxString	type;
	int	index;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

    WXSTRING_INPUT( type, wxString, ST(2) )
;

	if (items < 4)
	    index = -1;
	else {
	    index = (int)SvIV(ST(3))
;
	}
    RETVAL = THIS->LoadFile( name, type, index );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_LoadStreamType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_LoadStreamType)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, stream, type, index = -1");
    {
	wxPliInputStream	stream;
	wxBitmapType	type = (wxBitmapType)SvIV(ST(2))
;
	int	index;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

    wxPli_sv_2_istream( aTHX_ ST(1), stream )
;

	if (items < 4)
	    index = -1;
	else {
	    index = (int)SvIV(ST(3))
;
	}
    RETVAL = THIS->LoadFile( stream, type, index );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_LoadStreamMIME); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_LoadStreamMIME)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, stream, type, index = -1");
    {
	wxPliInputStream	stream;
	wxString	type;
	int	index;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

    wxPli_sv_2_istream( aTHX_ ST(1), stream )
;

    WXSTRING_INPUT( type, wxString, ST(2) )
;

	if (items < 4)
	    index = -1;
	else {
	    index = (int)SvIV(ST(3))
;
	}
    RETVAL = THIS->LoadFile( stream, type, index );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

	RETVAL = THIS->Ok();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAAAK 1


XS_EUPXS(XS_Wx__Image_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

	RETVAL = THIS->IsOk();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Image_SaveFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SaveFile)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wost_n, SaveFileSType )
        MATCH_REDISP( wxPliOvl_wost_s, SaveFileSMIME )
        MATCH_REDISP( wxPliOvl_s_n, SaveFileType )
        MATCH_REDISP( wxPliOvl_s_s, SaveFileMIME )
        MATCH_REDISP( wxPliOvl_s, SaveFileOnly )
    END_OVERLOAD( Wx::Image::SaveFile )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Image_SaveFileOnly); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SaveFileOnly)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, name");
    {
	wxString	name;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;
    RETVAL = THIS->SaveFile( name );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_SaveFileType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SaveFileType)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, name, type");
    {
	wxString	name;
	wxBitmapType	type = (wxBitmapType)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;
    RETVAL = THIS->SaveFile( name, type );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_SaveFileMIME); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SaveFileMIME)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, name, type");
    {
	wxString	name;
	wxString	type;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

    WXSTRING_INPUT( type, wxString, ST(2) )
;
    RETVAL = THIS->SaveFile( name, type );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_SaveStreamType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SaveStreamType)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, stream, type");
    {
	wxPliOutputStream	stream;
	wxBitmapType	type = (wxBitmapType)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

    wxPli_sv_2_ostream( aTHX_ ST(1), stream )
;
    RETVAL = THIS->SaveFile( stream, type );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_SaveStreamMIME); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SaveStreamMIME)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, stream, type");
    {
	wxPliOutputStream	stream;
	wxString	type;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

    wxPli_sv_2_ostream( aTHX_ ST(1), stream )
;

    WXSTRING_INPUT( type, wxString, ST(2) )
;
    RETVAL = THIS->SaveFile( stream, type );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_Mirror); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Mirror)
{
    dVAR; dXSARGS;
    if (items < 1 || items > 2)
       croak_xs_usage(cv,  "THIS, horizontally = true");
    {
	bool	horizontally;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;

	if (items < 2)
	    horizontally = true;
	else {
	    horizontally = (bool)SvTRUE(ST(1))
;
	}
    RETVAL = new wxImage( THIS->Mirror( horizontally ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_Replace); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Replace)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "THIS, r1, g1, b1, r2, g2, b2");
    {
	unsigned char	r1 = (unsigned char)SvUV(ST(1))
;
	unsigned char	g1 = (unsigned char)SvUV(ST(2))
;
	unsigned char	b1 = (unsigned char)SvUV(ST(3))
;
	unsigned char	r2 = (unsigned char)SvUV(ST(4))
;
	unsigned char	g2 = (unsigned char)SvUV(ST(5))
;
	unsigned char	b2 = (unsigned char)SvUV(ST(6))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

	THIS->Replace(r1, g1, b1, r2, g2, b2);
    }
    XSRETURN_EMPTY;
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAAAL 1


XS_EUPXS(XS_Wx__Image_Rescale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Rescale)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, width, height, quality = wxIMAGE_QUALITY_NORMAL");
    {
	int	width = (int)SvIV(ST(1))
;
	int	height = (int)SvIV(ST(2))
;
	wxImageResizeQuality	quality;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;

	if (items < 4)
	    quality = wxIMAGE_QUALITY_NORMAL;
	else {
	    quality = (wxImageResizeQuality)SvIV(ST(3))
;
	}
    RETVAL = new wxImage( THIS->Rescale( width, height, quality ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#else
#define XSubPPtmpAAAM 1


XS_EUPXS(XS_Wx__Image_Rescale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Rescale)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, width, height");
    {
	int	width = (int)SvIV(ST(1))
;
	int	height = (int)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->Rescale( width, height ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Image_Rotate); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Rotate)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, angle, centre, interpolating = true");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	double	angle = (double)SvNV(ST(1))
;
	wxPoint    centre = wxPli_sv_2_wxpoint( aTHX_ ST(2) )
;
	bool	interpolating;
    wxPoint after;
    wxImage* result;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

	if (items < 4)
	    interpolating = true;
	else {
	    interpolating = (bool)SvTRUE(ST(3))
;
	}
    result = new wxImage( THIS->Rotate( angle, centre, interpolating, &after ) );
    XPUSHs( wxPli_object_2_sv( aTHX_ sv_newmortal(), result ) );
    if( GIMME_V == G_ARRAY ) {
      PUSHs( wxPli_non_object_2_sv( aTHX_ sv_newmortal(), 
             new wxPoint( after ), "Wx::Point" ) );
    }
	PUTBACK;
	return;
    }
}

#if WXPERL_W_VERSION_GE( 2, 6, 3 )
#define XSubPPtmpAAAN 1


XS_EUPXS(XS_Wx__Image_RotateHue); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_RotateHue)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, angle");
    {
	double	angle = (double)SvNV(ST(1))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

	THIS->RotateHue(angle);
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_Wx__Image_Rotate90); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Rotate90)
{
    dVAR; dXSARGS;
    if (items < 1 || items > 2)
       croak_xs_usage(cv,  "THIS, clockwise = true");
    {
	bool	clockwise;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;

	if (items < 2)
	    clockwise = true;
	else {
	    clockwise = (bool)SvTRUE(ST(1))
;
	}
    RETVAL = new wxImage( THIS->Rotate90( clockwise ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 4, 1 )
#define XSubPPtmpAAAO 1


XS_EUPXS(XS_Wx__Image_ShrinkBy); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_ShrinkBy)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, xfactor, yfactor");
    {
	int	xfactor = (int)SvIV(ST(1))
;
	int	yfactor = (int)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->ShrinkBy( xfactor, yfactor ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif
#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAAAP 1


XS_EUPXS(XS_Wx__Image_Scale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Scale)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, width, height, quality = wxIMAGE_QUALITY_NORMAL");
    {
	int	width = (int)SvIV(ST(1))
;
	int	height = (int)SvIV(ST(2))
;
	wxImageResizeQuality	quality;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;

	if (items < 4)
	    quality = wxIMAGE_QUALITY_NORMAL;
	else {
	    quality = (wxImageResizeQuality)SvIV(ST(3))
;
	}
    RETVAL = new wxImage( THIS->Scale( width, height, quality ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#else
#define XSubPPtmpAAAQ 1


XS_EUPXS(XS_Wx__Image_Scale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Scale)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, width, height");
    {
	int	width = (int)SvIV(ST(1))
;
	int	height = (int)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->Scale( width, height ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif
#if WXPERL_W_VERSION_GE( 2, 5, 3 )
#define XSubPPtmpAAAR 1


XS_EUPXS(XS_Wx__Image_SetAlpha); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetAlpha)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_s, SetAlphaData )
        MATCH_REDISP( wxPliOvl_n_n_n, SetAlphaXY )
    END_OVERLOAD( Wx::Image::SetAlpha )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Image_SetAlphaXY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetAlphaXY)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, x, y, alpha");
    {
	int	x = (int)SvIV(ST(1))
;
	int	y = (int)SvIV(ST(2))
;
	unsigned char	alpha = (unsigned char)SvUV(ST(3))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    THIS->SetAlpha( x, y, alpha );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_SetAlphaData); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetAlphaData)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, d");
    {
	SV*	d = ST(1)
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    STRLEN len;
    unsigned char* data = (unsigned char*) SvPV( d, len );
    STRLEN imglen = THIS->GetWidth() * THIS->GetHeight();
    unsigned char* data_copy = (unsigned char*) malloc( imglen );
    memcpy( data_copy, data, len );
    THIS->SetAlpha( data_copy );
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_Wx__Image_SetData); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetData)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, d");
    {
	SV*	d = ST(1)
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    STRLEN len;
    unsigned char* data = (unsigned char*)SvPV( d, len );
    STRLEN imglen = THIS->GetWidth() * THIS->GetHeight() * 3;
    unsigned char* data_copy = (unsigned char*)malloc( imglen );
    memcpy( data_copy, data, len );
    THIS->SetData( data_copy );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_SetMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetMask)
{
    dVAR; dXSARGS;
    if (items < 1 || items > 2)
       croak_xs_usage(cv,  "THIS, hasMask = true");
    {
	bool	hasMask;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

	if (items < 2)
	    hasMask = true;
	else {
	    hasMask = (bool)SvTRUE(ST(1))
;
	}

	THIS->SetMask(hasMask);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_SetMaskColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetMaskColour)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, red, green, blue");
    {
	unsigned char	red = (unsigned char)SvUV(ST(1))
;
	unsigned char	green = (unsigned char)SvUV(ST(2))
;
	unsigned char	blue = (unsigned char)SvUV(ST(3))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

	THIS->SetMaskColour(red, green, blue);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_SetOption); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetOption)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, name, value");
    {
	wxString	name;
	wxString	value;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

    WXSTRING_INPUT( value, wxString, ST(2) )
;

	THIS->SetOption(name, value);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_SetOptionInt); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetOptionInt)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, name, value");
    {
	wxString	name;
	int	value = (int)SvIV(ST(2))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

    WXSTRING_INPUT( name, wxString, ST(1) )
;
    THIS->SetOption( name, value );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_SetPalette); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetPalette)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, palette");
    {
	wxPalette*    palette = (wxPalette *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Palette" )
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    THIS->SetPalette( *palette );
    }
    XSRETURN_EMPTY;
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAAAS 1


XS_EUPXS(XS_Wx__Image_SetRGB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetRGB)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_n_n_n_n_n, SetRGBpixel )
        MATCH_REDISP( wxPliOvl_wrec_n_n_n, SetRGBrect )
    END_OVERLOAD( Wx::Image::SetRGB )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Image_SetRGBpixel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetRGBpixel)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "THIS, x, y, red, green, blue");
    {
	int	x = (int)SvIV(ST(1))
;
	int	y = (int)SvIV(ST(2))
;
	unsigned char	red = (unsigned char)SvUV(ST(3))
;
	unsigned char	green = (unsigned char)SvUV(ST(4))
;
	unsigned char	blue = (unsigned char)SvUV(ST(5))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    THIS->SetRGB( x, y, red, green, blue  );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Image_SetRGBrect); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetRGBrect)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, rect, red, green, blue");
    {
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Rect" )
;
	unsigned char	red = (unsigned char)SvUV(ST(2))
;
	unsigned char	green = (unsigned char)SvUV(ST(3))
;
	unsigned char	blue = (unsigned char)SvUV(ST(4))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
    THIS->SetRGB( *rect, red, green, blue  );    
    }
    XSRETURN_EMPTY;
}

#else
#define XSubPPtmpAAAT 1


XS_EUPXS(XS_Wx__Image_SetRGB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_SetRGB)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "THIS, x, y, red, green, blue");
    {
	int	x = (int)SvIV(ST(1))
;
	int	y = (int)SvIV(ST(2))
;
	unsigned char	red = (unsigned char)SvUV(ST(3))
;
	unsigned char	green = (unsigned char)SvUV(ST(4))
;
	unsigned char	blue = (unsigned char)SvUV(ST(5))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;

	THIS->SetRGB(x, y, red, green, blue);
    }
    XSRETURN_EMPTY;
}

#endif
#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAAAU 1


XS_EUPXS(XS_Wx__Image_Blur); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_Blur)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, blurradius");
    {
	int	blurradius = (int)SvIV(ST(1))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->Blur( blurradius ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_BlurHorizontal); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_BlurHorizontal)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, blurradius");
    {
	int	blurradius = (int)SvIV(ST(1))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->BlurHorizontal( blurradius ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_BlurVertical); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_BlurVertical)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, blurradius");
    {
	int	blurradius = (int)SvIV(ST(1))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->BlurVertical( blurradius ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Image_GetOrFindMaskColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Image_GetOrFindMaskColour)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, red, green, blue");
    {
	unsigned char*	red = (unsigned char *)SvPV_nolen(ST(1))
;
	unsigned char*	green = (unsigned char *)SvPV_nolen(ST(2))
;
	unsigned char*	blue = (unsigned char *)SvPV_nolen(ST(3))
;
	wxImage *    THIS = (wxImage *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Image" )
;
	bool	RETVAL;

	RETVAL = THIS->GetOrFindMaskColour(red, green, blue);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__ImageHandler_Destroy); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_Destroy)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__ImageHandler_GetImageCount); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_GetImageCount)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, stream");
    {
	wxPliInputStream	stream;
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
	int	RETVAL;
	dXSTARG;

    wxPli_sv_2_istream( aTHX_ ST(1), stream )
;

	RETVAL = THIS->GetImageCount(stream);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageHandler_GetName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_GetName)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
	wxString	RETVAL;

	RETVAL = THIS->GetName();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageHandler_GetExtension); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_GetExtension)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
	wxString	RETVAL;

	RETVAL = THIS->GetExtension();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 9, 0 )
#define XSubPPtmpAAAV 1


XS_EUPXS(XS_Wx__ImageHandler_GetType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_GetType)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
	wxBitmapType	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetType();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#else
#define XSubPPtmpAAAW 1


XS_EUPXS(XS_Wx__ImageHandler_GetType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_GetType)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
	long	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetType();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__ImageHandler_GetMimeType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_GetMimeType)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
	wxString	RETVAL;

	RETVAL = THIS->GetMimeType();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageHandler_LoadFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_LoadFile)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 5)
       croak_xs_usage(cv,  "THIS, image, stream, verbose = true, index = 0");
    {
	wxImage*    image = (wxImage *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Image" )
;
	wxPliInputStream	stream;
	bool	verbose;
	int	index;
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
	bool	RETVAL;

    wxPli_sv_2_istream( aTHX_ ST(2), stream )
;

	if (items < 4)
	    verbose = true;
	else {
	    verbose = (bool)SvTRUE(ST(3))
;
	}

	if (items < 5)
	    index = 0;
	else {
	    index = (int)SvIV(ST(4))
;
	}

	RETVAL = THIS->LoadFile(image, stream, verbose, index);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageHandler_SaveFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_SaveFile)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, image, stream");
    {
	wxImage*    image = (wxImage *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Image" )
;
	wxPliOutputStream	stream;
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;
	bool	RETVAL;

    wxPli_sv_2_ostream( aTHX_ ST(2), stream )
;

	RETVAL = THIS->SaveFile(image, stream);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageHandler_SetName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_SetName)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, name");
    {
	wxString	name;
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	THIS->SetName(name);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__ImageHandler_SetExtension); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_SetExtension)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, ext");
    {
	wxString	ext;
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;

    WXSTRING_INPUT( ext, wxString, ST(1) )
;

	THIS->SetExtension(ext);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__ImageHandler_SetMimeType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_SetMimeType)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, type");
    {
	wxString	type;
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;

    WXSTRING_INPUT( type, wxString, ST(1) )
;

	THIS->SetMimeType(type);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__ImageHandler_SetType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageHandler_SetType)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, type");
    {
	wxBitmapType	type = (wxBitmapType)SvIV(ST(1))
;
	wxImageHandler *    THIS = (wxImageHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageHandler" )
;

	THIS->SetType(type);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GIFHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GIFHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxGIFHandler *	RETVAL;

	RETVAL = new wxGIFHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__BMPHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BMPHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBMPHandler *	RETVAL;

	RETVAL = new wxBMPHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__PNMHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__PNMHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxPNMHandler *	RETVAL;

	RETVAL = new wxPNMHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__PCXHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__PCXHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxPCXHandler *	RETVAL;

	RETVAL = new wxPCXHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__PNGHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__PNGHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxPNGHandler *	RETVAL;

	RETVAL = new wxPNGHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__JPEGHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__JPEGHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxJPEGHandler *	RETVAL;

	RETVAL = new wxJPEGHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if wxPERL_USE_LIBTIFF && !defined( __WXWINCE__ )
#define XSubPPtmpAAAX 1


XS_EUPXS(XS_Wx__TIFFHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__TIFFHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxTIFFHandler *	RETVAL;

	RETVAL = new wxTIFFHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__XPMHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__XPMHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxXPMHandler *	RETVAL;

	RETVAL = new wxXPMHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if wxPERL_USE_IFF
#define XSubPPtmpAAAY 1


XS_EUPXS(XS_Wx__IFFHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__IFFHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxIFFHandler *	RETVAL;

	RETVAL = new wxIFFHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif
#if wxPERL_USE_ICO_CUR
#define XSubPPtmpAAAZ 1


XS_EUPXS(XS_Wx__ICOHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ICOHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxICOHandler *	RETVAL;

	RETVAL = new wxICOHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__CURHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__CURHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxCURHandler *	RETVAL;

	RETVAL = new wxCURHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ANIHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ANIHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxANIHandler *	RETVAL;

	RETVAL = new wxANIHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif
#if wxUSE_TGA
#define XSubPPtmpAABA 1


XS_EUPXS(XS_Wx__TGAHandler_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__TGAHandler_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxTGAHandler *	RETVAL;

	RETVAL = new wxTGAHandler();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx_InitAllImageHandlers); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx_InitAllImageHandlers)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {

	wxInitAllImageHandlers();
    }
    XSRETURN_EMPTY;
}


/* INCLUDE: Returning to '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/Brush.xsp' from 'XS/Image.xs' */

#include <exception>

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#include <wx/colour.h>
#include <wx/bitmap.h>
#include <wx/brush.h>
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__Brush_newColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_newColour)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, colour, style");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBrush *	RETVAL;
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
	wxBrushStyle	style = (wxBrushStyle)SvIV(ST(2))
;
    try {
      RETVAL = new wxBrush( *( colour ), style );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Brush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__Brush_newBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_newBitmap)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, stipple");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBrush *	RETVAL;
	wxBitmap*    stipple = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
    try {
      RETVAL = new wxBrush( *( stipple ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Brush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__Brush_newName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_newName)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, colour, style");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBrush *	RETVAL;
	wxString	colour;
	wxBrushStyle	style = (wxBrushStyle)SvIV(ST(2))
;

    WXSTRING_INPUT( colour, wxString, ST(1) )
;
    try {
      RETVAL = new wxBrush( colour, style );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Brush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)

XS_EUPXS(XS_Wx__Brush_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Brush_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Brush", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Brush_GetColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_GetColour)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	wxColour *	RETVAL;
    try {
      RETVAL = new wxColour( THIS->GetColour() );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Brush_GetStipple); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_GetStipple)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	wxBitmap *	RETVAL;
     RETVAL = new wxBitmap( *THIS->GetStipple() ); 
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Brush_GetStyle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_GetStyle)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	wxBrushStyle	RETVAL;
	dXSTARG;
    try {
      RETVAL = THIS->GetStyle();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Brush_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	bool	RETVAL;
    try {
      RETVAL = THIS->Ok();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSpp_1d37acfc_025827
#define XSubPPtmpAABB 1


XS_EUPXS(XS_Wx__Brush_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	bool	RETVAL;
    try {
      RETVAL = THIS->IsOk();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif
#if WXPERL_W_VERSION_GE( 2, 6, 0 )
#define XSpp_1d37acfc_032411
#define XSubPPtmpAABC 1


XS_EUPXS(XS_Wx__Brush_IsHatch); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_IsHatch)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	bool	RETVAL;
    try {
      RETVAL = THIS->IsHatch();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Brush_SetColourColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_SetColourColour)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, colour");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
    try {
      THIS->SetColour( *( colour ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Brush_SetColourName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_SetColourName)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, name");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	wxString	name;

    WXSTRING_INPUT( name, wxString, ST(1) )
;
    try {
      THIS->SetColour( name );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Brush_SetColourRGB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_SetColourRGB)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, r, g, b");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	int	r = (int)SvIV(ST(1))
;
	int	g = (int)SvIV(ST(2))
;
	int	b = (int)SvIV(ST(3))
;
    try {
      THIS->SetColour( r, g, b );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Brush_SetStipple); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_SetStipple)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, stipple");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	wxBitmap*    stipple = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
    try {
      THIS->SetStipple( *( stipple ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Brush_SetStyle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_SetStyle)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, style");
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
	wxBrushStyle	style = (wxBrushStyle)SvIV(ST(1))
;
    try {
      THIS->SetStyle( style );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}

#include "cpp/overload.h"
#if 1
#define XSubPPtmpAABD 1


XS_EUPXS(XS_Wx__Brush_SetColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_SetColour)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxBrush *    THIS = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Brush" )
;
#if 1
    static const char *SetColourColour_types[] = { "Wx::Colour" };
    static wxPliPrototype SetColourColour_proto( SetColourColour_types, sizeof( SetColourColour_types ) / sizeof( SetColourColour_types[0] ) );
#endif // 1
#if 1
    static const char *SetColourName_types[] = { wxPliOvlstr };
    static wxPliPrototype SetColourName_proto( SetColourName_types, sizeof( SetColourName_types ) / sizeof( SetColourName_types[0] ) );
#endif // 1
#if 1
    static const char *SetColourRGB_types[] = { wxPliOvlnum, wxPliOvlnum, wxPliOvlnum };
    static wxPliPrototype SetColourRGB_proto( SetColourRGB_types, sizeof( SetColourRGB_types ) / sizeof( SetColourRGB_types[0] ) );
#endif // 1
    static wxPliPrototype *wxPliOvl_all_prototypes[] = {
#if 1
        &SetColourColour_proto,
#endif // 1
#if 1
        &SetColourName_proto,
#endif // 1
#if 1
        &SetColourRGB_proto,
#endif // 1
        NULL };
    BEGIN_OVERLOAD()
#if 1
        MATCH_REDISP_COUNT( SetColourColour_proto, SetColourColour, 1 )
#endif // 1
#if 1
        MATCH_REDISP_COUNT( SetColourName_proto, SetColourName, 1 )
#endif // 1
#if 1
        MATCH_REDISP_COUNT( SetColourRGB_proto, SetColourRGB, 3 )
#endif // 1
    END_OVERLOAD_MESSAGE( Wx::Brush::SetColour, wxPliOvl_all_prototypes )
	PUTBACK;
	return;
    }
}

#endif // 1
#if 1
#define XSubPPtmpAABE 1


XS_EUPXS(XS_Wx__Brush_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Brush_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
#if 1
    static const char *newBitmap_types[] = { "Wx::Bitmap" };
    static wxPliPrototype newBitmap_proto( newBitmap_types, sizeof( newBitmap_types ) / sizeof( newBitmap_types[0] ) );
#endif // 1
#if 1
    static const char *newColour_types[] = { "Wx::Colour", wxPliOvlnum };
    static wxPliPrototype newColour_proto( newColour_types, sizeof( newColour_types ) / sizeof( newColour_types[0] ) );
#endif // 1
#if 1
    static const char *newName_types[] = { wxPliOvlstr, wxPliOvlnum };
    static wxPliPrototype newName_proto( newName_types, sizeof( newName_types ) / sizeof( newName_types[0] ) );
#endif // 1
    static wxPliPrototype *wxPliOvl_all_prototypes[] = {
#if 1
        &newBitmap_proto,
#endif // 1
#if 1
        &newColour_proto,
#endif // 1
#if 1
        &newName_proto,
#endif // 1
        NULL };
    BEGIN_OVERLOAD()
#if 1
        MATCH_REDISP_COUNT( newBitmap_proto, newBitmap, 1 )
#endif // 1
#if 1
        MATCH_REDISP_COUNT( newColour_proto, newColour, 2 )
#endif // 1
#if 1
        MATCH_REDISP_COUNT( newName_proto, newName, 2 )
#endif // 1
    END_OVERLOAD_MESSAGE( Wx::Brush::new, wxPliOvl_all_prototypes )
	PUTBACK;
	return;
    }
}

#endif // 1

/* INCLUDE: Returning to 'XS/Pen.xs' from '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/Brush.xsp' */

#include <wx/colour.h>
#include <wx/pen.h>

XS_EUPXS(XS_Wx__Pen_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wcol_n_n, newColour )
        MATCH_REDISP( wxPliOvl_wbmp_n, newBitmap )
        MATCH_REDISP( wxPliOvl_s_n_n, newString )
    END_OVERLOAD( Wx::Pen::new )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Pen_newColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_newColour)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "CLASS, colour, width, style");
    {
	SV*	CLASS = ST(0)
;
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
	int	width = (int)SvIV(ST(2))
;
	int	style = (int)SvIV(ST(3))
;
	wxPen *	RETVAL;
    RETVAL = new wxPen( *colour, width, style );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Pen", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Pen_newString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_newString)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "CLASS, name, width, style");
    {
	SV*	CLASS = ST(0)
;
	wxString	name;
	int	width = (int)SvIV(ST(2))
;
	int	style = (int)SvIV(ST(3))
;
	wxPen *	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;
    RETVAL = new wxPen( name, width, style );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Pen", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ )
#define XSubPPtmpAABF 1


XS_EUPXS(XS_Wx__Pen_newBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_newBitmap)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, stipple, width");
    {
	SV*	CLASS = ST(0)
;
	wxBitmap*    stipple = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	int	width = (int)SvIV(ST(2))
;
	wxPen *	RETVAL;
    RETVAL = new wxPen( *stipple, width );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Pen", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Pen_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Pen_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Pen", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Pen_GetCap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_GetCap)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
	wxPenCap	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetCap();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Pen_GetColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_GetColour)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
	wxColour *	RETVAL;
    RETVAL = new wxColour( THIS->GetColour() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Pen_GetDashes); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_GetDashes)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    int i, n;
    wxDash* array;
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
    n = THIS->GetDashes( &array );
    EXTEND( SP, n );
    for( i = 0; i < n; ++i )
    {
      PUSHs( sv_2mortal( newSViv( array[i] ) ) );
    }
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Pen_GetJoin); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_GetJoin)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
	wxPenJoin	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetJoin();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#if defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ )
#define XSubPPtmpAABG 1


XS_EUPXS(XS_Wx__Pen_GetStipple); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_GetStipple)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
	wxBitmap *	RETVAL;
    RETVAL = new wxBitmap( *THIS->GetStipple() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Pen_GetStyle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_GetStyle)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
	wxPenStyle	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetStyle();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Pen_GetWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_GetWidth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetWidth();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Pen_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
	bool	RETVAL;

	RETVAL = THIS->Ok();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAABH 1


XS_EUPXS(XS_Wx__Pen_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
	bool	RETVAL;

	RETVAL = THIS->IsOk();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Pen_SetCap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_SetCap)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, capStyle");
    {
	wxPenCap	capStyle = (wxPenCap)SvIV(ST(1))
;
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;

	THIS->SetCap(capStyle);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Pen_SetColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_SetColour)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
     BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wcol, SetColourColour )
        MATCH_REDISP( wxPliOvl_n_n_n, SetColourRGB )
        MATCH_REDISP( wxPliOvl_s, SetColourName )
    END_OVERLOAD( Wx::Pen::SetColour )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Pen_SetColourColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_SetColourColour)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, colour");
    {
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
    THIS->SetColour( *colour );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Pen_SetColourName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_SetColourName)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, name");
    {
	wxString	name;
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;

    WXSTRING_INPUT( name, wxString, ST(1) )
;
    THIS->SetColour( name );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Pen_SetColourRGB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_SetColourRGB)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, r, g, b");
    {
	int	r = (int)SvIV(ST(1))
;
	int	g = (int)SvIV(ST(2))
;
	int	b = (int)SvIV(ST(3))
;
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
    THIS->SetColour( r, g, b );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Pen_SetDashes); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_SetDashes)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, ds");
    {
	SV*	ds = ST(1)
;
    int n = 0;
    wxDash* dashes = 0;
    wxDash* olddashes;
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
    THIS->GetDashes( &olddashes );
    if( SvOK( ds ) )
    {
      AV* av;
      SV* t;
      int i;

      if( !SvROK( ds ) || 
          ( SvTYPE( (SV*) ( av = (AV*) SvRV( ds ) ) ) != SVt_PVAV ) )
      {
          croak( "the value is not an array reference" );
          XSRETURN_UNDEF;
      }

      n = av_len( av ) + 1;
      dashes = new wxDash[ n ];

      for( i = 0; i < n; ++i )
      {
        t = *av_fetch( av, i, 0 );
        dashes[i] = SvIV( t );
      }
    }
    THIS->SetDashes( n, dashes );
    delete[] olddashes;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Pen_SetJoin); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_SetJoin)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, join_style");
    {
	wxPenJoin	join_style = (wxPenJoin)SvIV(ST(1))
;
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;

	THIS->SetJoin(join_style);
    }
    XSRETURN_EMPTY;
}

#if defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ )
#define XSubPPtmpAABI 1


XS_EUPXS(XS_Wx__Pen_SetStipple); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_SetStipple)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, stipple");
    {
	wxBitmap*    stipple = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;
    THIS->SetStipple( *stipple );
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_Wx__Pen_SetStyle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_SetStyle)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, style");
    {
	wxPenStyle	style = (wxPenStyle)SvIV(ST(1))
;
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;

	THIS->SetStyle(style);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Pen_SetWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Pen_SetWidth)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, width");
    {
	int	width = (int)SvIV(ST(1))
;
	wxPen *    THIS = (wxPen *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Pen" )
;

	THIS->SetWidth(width);
    }
    XSRETURN_EMPTY;
}


/* INCLUDE: Returning to 'XS/Overlay.xs' from 'XS/Pen.xs' */

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#include <wx/dc.h>
#include <wx/window.h>
#include <wx/overlay.h>
#include <wx/dcclient.h>
#define XSubPPtmpAABJ 1


XS_EUPXS(XS_Wx__Overlay_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Overlay_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	SV*	CLASS = ST(0)
;
	wxOverlay *	RETVAL;
    RETVAL = new wxOverlay();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Overlay" );
    wxPli_thread_sv_register( aTHX_ "Wx::Overlay", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Overlay_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Overlay_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Overlay_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Overlay_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxOverlay *    THIS = (wxOverlay *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Overlay" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Overlay", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Overlay_Reset); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Overlay_Reset)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxOverlay *    THIS = (wxOverlay *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Overlay" )
;

	THIS->Reset();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DCOverlay_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCOverlay_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxDCOverlay *	RETVAL;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_woly_wdc, newDefault )
        MATCH_REDISP( wxPliOvl_woly_wdc_n_n_n_n, newLong )
    END_OVERLOAD( Wx::DCOverlay::new )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DCOverlay_newDefault); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCOverlay_newDefault)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, overlay, dc");
    {
	SV*	CLASS = ST(0)
;
	wxOverlay*    overlay = (wxOverlay *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Overlay" )
;
	wxWindowDC*    dc = (wxWindowDC *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::WindowDC" )
;
	wxDCOverlay *	RETVAL;
    RETVAL = new wxDCOverlay( *overlay, dc);
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::DCOverlay" );
    wxPli_thread_sv_register( aTHX_ "Wx::DCOverlay", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DCOverlay_newLong); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCOverlay_newLong)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "CLASS, overlay, dc, x, y, width, height");
    {
	SV*	CLASS = ST(0)
;
	wxOverlay*    overlay = (wxOverlay *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Overlay" )
;
	wxWindowDC*    dc = (wxWindowDC *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::WindowDC" )
;
	int	x = (int)SvIV(ST(3))
;
	int	y = (int)SvIV(ST(4))
;
	int	width = (int)SvIV(ST(5))
;
	int	height = (int)SvIV(ST(6))
;
	wxDCOverlay *	RETVAL;
    RETVAL = new wxDCOverlay( *overlay, dc, x, y, width, height);
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::DCOverlay" );
    wxPli_thread_sv_register( aTHX_ "Wx::DCOverlay", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DCOverlay_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCOverlay_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DCOverlay_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCOverlay_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDCOverlay *    THIS = (wxDCOverlay *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DCOverlay" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Overlay", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DCOverlay_Clear); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCOverlay_Clear)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDCOverlay *    THIS = (wxDCOverlay *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DCOverlay" )
;

	THIS->Clear();
    }
    XSRETURN_EMPTY;
}

#endif

/* INCLUDE: Returning to '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/DC.xsp' from 'XS/Overlay.xs' */

#include <exception>

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#include <wx/dc.h>
#include <wx/dcmemory.h>
#include <wx/dcclient.h>
#include <wx/dcscreen.h>
#include <wx/window.h>
#include <wx/dcbuffer.h>
#if wxUSE_GRAPHICS_CONTEXT && WXPERL_W_VERSION_GE( 2, 8, 8 )
#include <wx/dcgraph.h>
#endif
#define wxNullBitmapPtr (wxBitmap*) &wxNullBitmap

XS_EUPXS(XS_Wx__DC_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    wxPli_thread_sv_unregister( aTHX_ wxPli_get_class( aTHX_ ST(0) ),
                                THIS, ST(0) );
    if( wxPli_object_is_deleteable( aTHX_ ST(0) ) )
        delete THIS;
    }
    XSRETURN_EMPTY;
}

#if ( WXPERL_W_VERSION_LT( 2, 7, 0 ) || WXWIN_COMPATIBILITY_2_6 ) && \
    !WXPERL_W_VERSION_GE( 2, 9, 1 )
#define XSubPPtmpAABK 1


XS_EUPXS(XS_Wx__DC_BeginDrawing); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_BeginDrawing)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->BeginDrawing();
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_Wx__DC_Blit); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_Blit)
{
    dVAR; dXSARGS;
    if (items < 8 || items > 10)
       croak_xs_usage(cv,  "THIS, xdest, ydest, width, height, source, xsrc, ysrc, logicalFunc = wxCOPY, useMask = false");
    {
	wxCoord	xdest = (wxCoord)SvIV(ST(1))
;
	wxCoord	ydest = (wxCoord)SvIV(ST(2))
;
	wxCoord	width = (wxCoord)SvIV(ST(3))
;
	wxCoord	height = (wxCoord)SvIV(ST(4))
;
	wxDC*    source = (wxDC *) wxPli_sv_2_object( aTHX_ ST(5), "Wx::DC" )
;
	wxCoord	xsrc = (wxCoord)SvIV(ST(6))
;
	wxCoord	ysrc = (wxCoord)SvIV(ST(7))
;
	wxRasterOperationMode	logicalFunc;
	bool	useMask;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	bool	RETVAL;

	if (items < 9)
	    logicalFunc = wxCOPY;
	else {
	    logicalFunc = (wxRasterOperationMode)SvIV(ST(8))
;
	}

	if (items < 10)
	    useMask = false;
	else {
	    useMask = (bool)SvTRUE(ST(9))
;
	}

	RETVAL = THIS->Blit(xdest, ydest, width, height, source, xsrc, ysrc, logicalFunc, useMask);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 9, 0 )
#define XSubPPtmpAABL 1


XS_EUPXS(XS_Wx__DC_StretchBlit); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_StretchBlit)
{
    dVAR; dXSARGS;
    if (items < 10 || items > 14)
       croak_xs_usage(cv,  "THIS, xdest, ydest, wdest, hdest, source, xsrc, ysrc, wsrc, hsrc, logicalFunc = wxCOPY, useMask = false, xsrcmask = -1, ysrcmask = -1");
    {
	wxCoord	xdest = (wxCoord)SvIV(ST(1))
;
	wxCoord	ydest = (wxCoord)SvIV(ST(2))
;
	wxCoord	wdest = (wxCoord)SvIV(ST(3))
;
	wxCoord	hdest = (wxCoord)SvIV(ST(4))
;
	wxDC*    source = (wxDC *) wxPli_sv_2_object( aTHX_ ST(5), "Wx::DC" )
;
	wxCoord	xsrc = (wxCoord)SvIV(ST(6))
;
	wxCoord	ysrc = (wxCoord)SvIV(ST(7))
;
	wxCoord	wsrc = (wxCoord)SvIV(ST(8))
;
	wxCoord	hsrc = (wxCoord)SvIV(ST(9))
;
	wxRasterOperationMode	logicalFunc;
	bool	useMask;
	wxCoord	xsrcmask;
	wxCoord	ysrcmask;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	bool	RETVAL;

	if (items < 11)
	    logicalFunc = wxCOPY;
	else {
	    logicalFunc = (wxRasterOperationMode)SvIV(ST(10))
;
	}

	if (items < 12)
	    useMask = false;
	else {
	    useMask = (bool)SvTRUE(ST(11))
;
	}

	if (items < 13)
	    xsrcmask = -1;
	else {
	    xsrcmask = (wxCoord)SvIV(ST(12))
;
	}

	if (items < 14)
	    ysrcmask = -1;
	else {
	    ysrcmask = (wxCoord)SvIV(ST(13))
;
	}

	RETVAL = THIS->StretchBlit(xdest, ydest, wdest, hdest, source, xsrc, ysrc, wsrc, hsrc, logicalFunc, useMask, xsrcmask, ysrcmask);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__DC_CalcBoundingBox); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_CalcBoundingBox)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->CalcBoundingBox(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_Clear); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_Clear)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->Clear();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_CrossHair); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_CrossHair)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->CrossHair(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DestroyClippingRegion); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DestroyClippingRegion)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->DestroyClippingRegion();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DeviceToLogicalX); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DeviceToLogicalX)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, x");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->DeviceToLogicalX(x);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_DeviceToLogicalXRel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DeviceToLogicalXRel)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, x");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->DeviceToLogicalXRel(x);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_DeviceToLogicalY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DeviceToLogicalY)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, y");
    {
	wxCoord	y = (wxCoord)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->DeviceToLogicalY(y);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_DeviceToLogicalYRel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DeviceToLogicalYRel)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, y");
    {
	wxCoord	y = (wxCoord)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->DeviceToLogicalYRel(y);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_DrawArc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawArc)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "THIS, x1, y1, x2, y2, xc, yc");
    {
	wxCoord	x1 = (wxCoord)SvIV(ST(1))
;
	wxCoord	y1 = (wxCoord)SvIV(ST(2))
;
	wxCoord	x2 = (wxCoord)SvIV(ST(3))
;
	wxCoord	y2 = (wxCoord)SvIV(ST(4))
;
	wxCoord	xc = (wxCoord)SvIV(ST(5))
;
	wxCoord	yc = (wxCoord)SvIV(ST(6))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->DrawArc(x1, y1, x2, y2, xc, yc);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawBitmap)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, bitmap, x, y, transparent");
    {
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxCoord	x = (wxCoord)SvIV(ST(2))
;
	wxCoord	y = (wxCoord)SvIV(ST(3))
;
	bool	transparent = (bool)SvTRUE(ST(4))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->DrawBitmap( *bitmap, x, y, transparent );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawCheckMark); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawCheckMark)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_n_n_n_n, DrawCheckMarkXYWH )
        MATCH_REDISP( wxPliOvl_wrec, DrawCheckMarkRect )
    END_OVERLOAD( Wx::DC::DrawCheckMark )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_DrawCheckMarkXYWH); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawCheckMarkXYWH)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x, y, width, height");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxCoord	width = (wxCoord)SvIV(ST(3))
;
	wxCoord	height = (wxCoord)SvIV(ST(4))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->DrawCheckMark( x, y, width, height );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawCheckMarkRect); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawCheckMarkRect)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, rect");
    {
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Rect" )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->DrawCheckMark( *rect );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawCircle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawCircle)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, x, y, radius");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxCoord	radius = (wxCoord)SvIV(ST(3))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->DrawCircle(x, y, radius);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawEllipse); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawEllipse)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x, y, width, height");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxCoord	width = (wxCoord)SvIV(ST(3))
;
	wxCoord	height = (wxCoord)SvIV(ST(4))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->DrawEllipse(x, y, width, height);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawEllipticArc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawEllipticArc)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "THIS, x, y, width, height, start, end");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxCoord	width = (wxCoord)SvIV(ST(3))
;
	wxCoord	height = (wxCoord)SvIV(ST(4))
;
	double	start = (double)SvNV(ST(5))
;
	double	end = (double)SvNV(ST(6))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->DrawEllipticArc(x, y, width, height, start, end);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawIcon); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawIcon)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, icon, x, y");
    {
	wxIcon*    icon = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Icon" )
;
	wxCoord	x = (wxCoord)SvIV(ST(2))
;
	wxCoord	y = (wxCoord)SvIV(ST(3))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->DrawIcon( *icon, x, y );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawLine); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawLine)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x1, y1, x2, y2");
    {
	wxCoord	x1 = (wxCoord)SvIV(ST(1))
;
	wxCoord	y1 = (wxCoord)SvIV(ST(2))
;
	wxCoord	x2 = (wxCoord)SvIV(ST(3))
;
	wxCoord	y2 = (wxCoord)SvIV(ST(4))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->DrawLine(x1, y1, x2, y2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawLines); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawLines)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 4)
       croak_xs_usage(cv,  "THIS, list, xoffset = 0, yoffset = 0");
    {
	SV*	list = ST(1)
;
	wxCoord	xoffset;
	wxCoord	yoffset;
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
    wxPointList points;
#else
    wxList points;
#endif
    wxPliArrayGuard<wxPoint> pts;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	if (items < 3)
	    xoffset = 0;
	else {
	    xoffset = (wxCoord)SvIV(ST(2))
;
	}

	if (items < 4)
	    yoffset = 0;
	else {
	    yoffset = (wxCoord)SvIV(ST(3))
;
	}
    wxPli_av_2_pointlist( aTHX_ list, &points, pts.lvalue() );
    THIS->DrawLines( &points, xoffset, yoffset );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawPoint)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->DrawPoint(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawPolygon); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawPolygon)
{
    dVAR; dXSARGS;
    if (items < 4 || items > 5)
       croak_xs_usage(cv,  "THIS, list, xoffset, yoffset, fill_style = wxODDEVEN_RULE");
    {
	SV*	list = ST(1)
;
	wxCoord	xoffset = (wxCoord)SvIV(ST(2))
;
	wxCoord	yoffset = (wxCoord)SvIV(ST(3))
;
	wxPolygonFillMode	fill_style;
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
    wxPointList points;
#else
    wxList points;
#endif
    wxPliArrayGuard<wxPoint> pts;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	if (items < 5)
	    fill_style = wxODDEVEN_RULE;
	else {
	    fill_style = (wxPolygonFillMode)SvIV(ST(4))
;
	}
    wxPli_av_2_pointlist( aTHX_ list, &points, pts.lvalue() );
    THIS->DrawPolygon( &points, xoffset, yoffset, fill_style );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawRectangle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawRectangle)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x, y, width, height");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxCoord	width = (wxCoord)SvIV(ST(3))
;
	wxCoord	height = (wxCoord)SvIV(ST(4))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->DrawRectangle(x, y, width, height);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawRotatedText); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawRotatedText)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, text, x, y, angle");
    {
	wxString	text;
	wxCoord	x = (wxCoord)SvIV(ST(2))
;
	wxCoord	y = (wxCoord)SvIV(ST(3))
;
	double	angle = (double)SvNV(ST(4))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

    WXSTRING_INPUT( text, wxString, ST(1) )
;

	THIS->DrawRotatedText(text, x, y, angle);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawRoundedRectangle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawRoundedRectangle)
{
    dVAR; dXSARGS;
    if (items < 5 || items > 6)
       croak_xs_usage(cv,  "THIS, x, y, width, height, radius = 20");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxCoord	width = (wxCoord)SvIV(ST(3))
;
	wxCoord	height = (wxCoord)SvIV(ST(4))
;
	wxCoord	radius;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	if (items < 6)
	    radius = 20;
	else {
	    radius = (wxCoord)SvIV(ST(5))
;
	}

	THIS->DrawRoundedRectangle(x, y, width, height, radius);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawSpline); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawSpline)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, list");
    {
	SV*	list = ST(1)
;
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
    wxPointList points;
#else
    wxList points;
#endif
    wxPliArrayGuard<wxPoint> pts;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    wxPli_av_2_pointlist( aTHX_ list, &points, pts.lvalue() );
    THIS->DrawSpline( &points );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawText); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawText)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, text, x, y");
    {
	wxString	text;
	wxCoord	x = (wxCoord)SvIV(ST(2))
;
	wxCoord	y = (wxCoord)SvIV(ST(3))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

    WXSTRING_INPUT( text, wxString, ST(1) )
;

	THIS->DrawText(text, x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_EndDoc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_EndDoc)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->EndDoc();
    }
    XSRETURN_EMPTY;
}

#if ( WXPERL_W_VERSION_LT( 2, 7, 0 ) || WXWIN_COMPATIBILITY_2_6 ) && \
    !WXPERL_W_VERSION_GE( 2, 9, 1 )
#define XSubPPtmpAABM 1


XS_EUPXS(XS_Wx__DC_EndDrawing); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_EndDrawing)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->EndDrawing();
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_Wx__DC_EndPage); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_EndPage)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->EndPage();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_FloodFill); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_FloodFill)
{
    dVAR; dXSARGS;
    if (items < 4 || items > 5)
       croak_xs_usage(cv,  "THIS, x, y, colour, style =  wxFLOOD_SURFACE");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(3), "Wx::Colour" )
;
	wxFloodFillStyle	style;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	if (items < 5)
	    style = wxFLOOD_SURFACE;
	else {
	    style = (wxFloodFillStyle)SvIV(ST(4))
;
	}
    THIS->FloodFill( x, y, *colour, style );
    }
    XSRETURN_EMPTY;
}

#if WXPERL_W_VERSION_GE( 2, 7, 2 )
#define XSubPPtmpAABN 1


XS_EUPXS(XS_Wx__DC_GetAsBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetAsBitmap)
{
    dVAR; dXSARGS;
    if (items < 1 || items > 2)
       croak_xs_usage(cv,  "THIS, subrect= NULL");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxBitmap *	RETVAL;
	wxRect*	subrect;

	if (items < 2)
	    subrect = NULL;
	else {
    subrect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Rect" )
;
	}
    RETVAL = new wxBitmap( THIS->GetAsBitmap( subrect ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__DC_GetBackground); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetBackground)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxBrush *	RETVAL;
    RETVAL = new wxBrush( THIS->GetBackground() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Brush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetBackgroundMode); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetBackgroundMode)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetBackgroundMode();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetBrush); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetBrush)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxBrush *	RETVAL;
    RETVAL = new wxBrush( THIS->GetBrush() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Brush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetCharHeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetCharHeight)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetCharHeight();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetCharWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetCharWidth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetCharWidth();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetClippingBox); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetClippingBox)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    wxCoord x, y, width, height;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->GetClippingBox( &x, &y, &width, &height );
    EXTEND( SP, 4 );
    PUSHs( sv_2mortal( newSViv( x ) ) );
    PUSHs( sv_2mortal( newSViv( y ) ) );
    PUSHs( sv_2mortal( newSViv( width ) ) );
    PUSHs( sv_2mortal( newSViv( height ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_GetFont); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetFont)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxFont *	RETVAL;
    RETVAL = new wxFont( THIS->GetFont() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetLogicalFunction); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetLogicalFunction)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxRasterOperationMode	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetLogicalFunction();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetMapMode); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetMapMode)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxMappingMode	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetMapMode();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#if !defined( __WXMAC__ ) && WXPERL_W_VERSION_LE( 2, 5, 3 )
#define XSubPPtmpAABO 1


XS_EUPXS(XS_Wx__DC_GetOptimization); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetOptimization)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	bool	RETVAL;

	RETVAL = THIS->GetOptimization();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif
#if WXPERL_W_VERSION_GE( 2, 9, 5 )
#define XSubPPtmpAABP 1


XS_EUPXS(XS_Wx__DC_GetContentScaleFactor); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetContentScaleFactor)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	double	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetContentScaleFactor();
	XSprePUSH;
	PUSHn((double)RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__DC_GetPen); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetPen)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxPen *	RETVAL;
    RETVAL = new wxPen( THIS->GetPen() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Pen", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetPixel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetPixel)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
    wxColour c;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxColour *	RETVAL;
    THIS->GetPixel( x, y, &c );
    RETVAL = new wxColour( c );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetSize)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxSize *	RETVAL;
    RETVAL = new wxSize( THIS->GetSize() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Size" );
    wxPli_thread_sv_register( aTHX_ "Wx::Size", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetSizeWH); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetSizeWH)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    wxCoord x, y;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->GetSize( &x, &y );
    EXTEND( SP, 2 );
    PUSHs( sv_2mortal( newSViv( x ) ) );
    PUSHs( sv_2mortal( newSViv( y ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_GetSizeMM); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetSizeMM)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxSize *	RETVAL;
    RETVAL = new wxSize( THIS->GetSizeMM() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Size" );
    wxPli_thread_sv_register( aTHX_ "Wx::Size", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetSizeMMWH); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetSizeMMWH)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    wxCoord x, y;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->GetSizeMM( &x, &y );
    EXTEND( SP, 2 );
    PUSHs( sv_2mortal( newSViv( x ) ) );
    PUSHs( sv_2mortal( newSViv( y ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_GetPPI); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetPPI)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxSize *	RETVAL;
    RETVAL = new wxSize( THIS->GetPPI() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Size" );
    wxPli_thread_sv_register( aTHX_ "Wx::Size", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetTextBackground); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetTextBackground)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxColour *	RETVAL;
    RETVAL = new wxColour( THIS->GetTextBackground() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetTextExtent); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetTextExtent)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, string, font = NULL");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxString	string;
	wxFont*	font;
    wxCoord x, y, descent, externalLeading;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

    WXSTRING_INPUT( string, wxString, ST(1) )
;

	if (items < 3)
	    font = NULL;
	else {
    font = (wxFont *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Font" )
;
	}
    THIS->GetTextExtent( string, &x, &y, &descent, &externalLeading,
        font );
    EXTEND( SP, 4 );
    PUSHs( sv_2mortal( newSViv( x ) ) );
    PUSHs( sv_2mortal( newSViv( y ) ) );
    PUSHs( sv_2mortal( newSViv( descent ) ) );
    PUSHs( sv_2mortal( newSViv( externalLeading ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_GetPartialTextExtents); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetPartialTextExtents)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, string");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxString	string;
    wxArrayInt widths;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

    WXSTRING_INPUT( string, wxString, ST(1) )
;
    bool ok = THIS->GetPartialTextExtents( string, widths );
    if( ok ) {
        PUTBACK;
        wxPli_intarray_push( aTHX_ widths );
        SPAGAIN;
    } else
        XSRETURN_EMPTY;
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_GetMultiLineTextExtent); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetMultiLineTextExtent)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, string, font = NULL");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxString	string;
	wxFont*	font;
    wxCoord w, h, hLine;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

    WXSTRING_INPUT( string, wxString, ST(1) )
;

	if (items < 3)
	    font = NULL;
	else {
    font = (wxFont *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Font" )
;
	}
    THIS->GetMultiLineTextExtent( string, &w, &h, &hLine, font );
    EXTEND( SP, 3 );
    PUSHs( sv_2mortal( newSViv( w ) ) );
    PUSHs( sv_2mortal( newSViv( h ) ) );
    PUSHs( sv_2mortal( newSViv( hLine ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_GetTextForeground); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetTextForeground)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxColour *	RETVAL;
    RETVAL = new wxColour( THIS->GetTextForeground() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetUserScale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetUserScale)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    double x, y;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->GetUserScale( &x, &y );
    EXTEND( SP, 2 );
    PUSHs( sv_2mortal( newSVnv( x ) ) );
    PUSHs( sv_2mortal( newSVnv( y ) ) );
	PUTBACK;
	return;
    }
}

#if WXPERL_W_VERSION_GE( 2, 7, 2 )
#define XSubPPtmpAABQ 1


XS_EUPXS(XS_Wx__DC_GradientFillLinear); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GradientFillLinear)
{
    dVAR; dXSARGS;
    if (items < 4 || items > 5)
       croak_xs_usage(cv,  "THIS, rect, initialColour, destColour, direction = wxEAST");
    {
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Rect" )
;
	wxColour    initialColour = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Colour" )
;
	wxColour    destColour = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(3), "Wx::Colour" )
;
	wxDirection	direction;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	if (items < 5)
	    direction = wxEAST;
	else {
	    direction = (wxDirection)SvIV(ST(4))
;
	}

	THIS->GradientFillLinear(*rect, initialColour, destColour, direction);
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_Wx__DC_LogicalToDeviceX); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_LogicalToDeviceX)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, x");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->LogicalToDeviceX(x);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_LogicalToDeviceXRel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_LogicalToDeviceXRel)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, x");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->LogicalToDeviceXRel(x);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_LogicalToDeviceY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_LogicalToDeviceY)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, y");
    {
	wxCoord	y = (wxCoord)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->LogicalToDeviceY(y);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_LogicalToDeviceYRel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_LogicalToDeviceYRel)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, y");
    {
	wxCoord	y = (wxCoord)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->LogicalToDeviceYRel(y);
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_MaxX); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_MaxX)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->MaxX();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_MaxY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_MaxY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->MaxY();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_MinX); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_MinX)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->MinX();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_MinY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_MinY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxCoord	RETVAL;
	dXSTARG;

	RETVAL = THIS->MinY();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAABR 1


XS_EUPXS(XS_Wx__DC_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	bool	RETVAL;

	RETVAL = THIS->IsOk();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	bool	RETVAL;
    RETVAL = THIS->IsOk();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#else
#define XSubPPtmpAABS 1


XS_EUPXS(XS_Wx__DC_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	bool	RETVAL;

	RETVAL = THIS->Ok();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__DC_ResetBoundingBox); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_ResetBoundingBox)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->ResetBoundingBox();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetAxisOrientation); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetAxisOrientation)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, xLeftRight, yBottomUp");
    {
	bool	xLeftRight = (bool)SvTRUE(ST(1))
;
	bool	yBottomUp = (bool)SvTRUE(ST(2))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->SetAxisOrientation(xLeftRight, yBottomUp);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_GetDepth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetDepth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetDepth();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_GetDeviceOrigin); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetDeviceOrigin)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxPoint *	RETVAL;
    RETVAL = new wxPoint( THIS->GetDeviceOrigin() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Point" );
    wxPli_thread_sv_register( aTHX_ "Wx::Point", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_SetDeviceOrigin); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetDeviceOrigin)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->SetDeviceOrigin(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetBackground); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetBackground)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, brush");
    {
	wxBrush*    brush = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Brush" )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->SetBackground( *brush );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetBackgroundMode); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetBackgroundMode)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, mode");
    {
	int	mode = (int)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->SetBackgroundMode(mode);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetBrush); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetBrush)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, brush");
    {
	wxBrush*    brush = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Brush" )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->SetBrush( *brush );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetClippingRegion); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetClippingRegion)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_n_n_n_n, SetClippingRegionXYWH )
        MATCH_REDISP( wxPliOvl_wreg, SetClippingRegionRegion )
    END_OVERLOAD( Wx::DC::SetClippingRegion )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_SetClippingRegionXYWH); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetClippingRegionXYWH)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x, y, w, h");
    {
	wxCoord	x = (wxCoord)SvIV(ST(1))
;
	wxCoord	y = (wxCoord)SvIV(ST(2))
;
	wxCoord	w = (wxCoord)SvIV(ST(3))
;
	wxCoord	h = (wxCoord)SvIV(ST(4))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->SetClippingRegion( x, y, w, h );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetClippingRegionRegion); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetClippingRegionRegion)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, region");
    {
	wxRegion*    region = (wxRegion *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Region" )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->SetClippingRegion( *region );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetFont); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetFont)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, font");
    {
	wxFont*    font = (wxFont *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Font" )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->SetFont( *font );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetLogicalFunction); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetLogicalFunction)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, function");
    {
	wxRasterOperationMode	function = (wxRasterOperationMode)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->SetLogicalFunction(function);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetMapMode); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetMapMode)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, mode");
    {
	wxMappingMode	mode = (wxMappingMode)SvIV(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->SetMapMode(mode);
    }
    XSRETURN_EMPTY;
}

#if !defined( __WXMAC__ ) && WXPERL_W_VERSION_LE( 2, 5, 3 )
#define XSubPPtmpAABT 1


XS_EUPXS(XS_Wx__DC_SetOptimization); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetOptimization)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, optimize");
    {
	bool	optimize = (bool)SvTRUE(ST(1))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->SetOptimization(optimize);
    }
    XSRETURN_EMPTY;
}

#endif 

XS_EUPXS(XS_Wx__DC_SetPalette); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetPalette)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, palette");
    {
	wxPalette*    palette = (wxPalette *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Palette" )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->SetPalette( *palette );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetPen); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetPen)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, pen");
    {
	wxPen*    pen = (wxPen *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Pen" )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->SetPen( *pen );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetTextBackground); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetTextBackground)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, colour");
    {
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->SetTextBackground( *colour );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetTextForeground); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetTextForeground)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, colour");
    {
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->SetTextForeground( *colour );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_SetUserScale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetUserScale)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, xScale, yScale");
    {
	double	xScale = (double)SvNV(ST(1))
;
	double	yScale = (double)SvNV(ST(2))
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->SetUserScale(xScale, yScale);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_StartDoc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_StartDoc)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, message");
    {
	wxString	message;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	bool	RETVAL;

    WXSTRING_INPUT( message, wxString, ST(1) )
;

	RETVAL = THIS->StartDoc(message);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_StartPage); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_StartPage)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

	THIS->StartPage();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_GetLogicalScale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetLogicalScale)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    double x, y;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->GetLogicalScale( &x, &y );
    EXTEND( SP, 2 );
    PUSHs( sv_2mortal( newSVnv( x ) ) );
    PUSHs( sv_2mortal( newSVnv( y ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_SetLogicalScale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetLogicalScale)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	double	x = (double)SvNV(ST(1))
;
	double	y = (double)SvNV(ST(2))
;

	THIS->SetLogicalScale(x, y);
    }
    XSRETURN_EMPTY;
}

#if WXPERL_W_VERSION_GE( 2, 7, 1 )
#define XSubPPtmpAABU 1


XS_EUPXS(XS_Wx__DC_GetLayoutDirection); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetLayoutDirection)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxLayoutDirection	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetLayoutDirection();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_SetLayoutDirection); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_SetLayoutDirection)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, dir");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxLayoutDirection	dir = (wxLayoutDirection)SvIV(ST(1))
;

	THIS->SetLayoutDirection(dir);
    }
    XSRETURN_EMPTY;
}

#endif
#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAABV 1


XS_EUPXS(XS_Wx__DC_GradientFillConcentric); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GradientFillConcentric)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wrec_wcol_wcol_wpoi, GradientFillConcentricPoint )
        MATCH_REDISP( wxPliOvl_wrec_wcol_wcol, GradientFillConcentricNoPoint )
    END_OVERLOAD( Wx::DC::GradientFillConcentric )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_GradientFillConcentricPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GradientFillConcentricPoint)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, rect, initialColour, destColour, circleCentre");
    {
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Rect" )
;
	wxColour    initialColour = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Colour" )
;
	wxColour    destColour = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(3), "Wx::Colour" )
;
	wxPoint    circleCentre = wxPli_sv_2_wxpoint( aTHX_ ST(4) )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->GradientFillConcentric( *rect, initialColour, destColour, circleCentre );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_GradientFillConcentricNoPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GradientFillConcentricNoPoint)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, rect, initialColour, destColour");
    {
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Rect" )
;
	wxColour    initialColour = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Colour" )
;
	wxColour    destColour = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(3), "Wx::Colour" )
;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    THIS->GradientFillConcentric( *rect, initialColour, destColour );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DC_DrawLabel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawLabel)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_wbmp_wrec_n_n_wrec, DrawLabelBitmap, 3 )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_wrec_n_n, DrawLabelNoBitmap, 2 )
    END_OVERLOAD( Wx::DC::DrawLabel )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__DC_DrawLabelBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawLabelBitmap)
{
    dVAR; dXSARGS;
    if (items < 4 || items > 6)
       croak_xs_usage(cv,  "THIS, text, image, rect, alignment = wxALIGN_LEFT | wxALIGN_TOP, indexAccel = -1");
    {
	wxString	text;
	wxBitmap*    image = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Bitmap" )
;
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(3), "Wx::Rect" )
;
	int	alignment;
	int	indexAccel;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxRect *	RETVAL;

    WXSTRING_INPUT( text, wxString, ST(1) )
;

	if (items < 5)
	    alignment = wxALIGN_LEFT | wxALIGN_TOP;
	else {
	    alignment = (int)SvIV(ST(4))
;
	}

	if (items < 6)
	    indexAccel = -1;
	else {
	    indexAccel = (int)SvIV(ST(5))
;
	}
    wxRect* newrect = new wxRect(1,1,1,1);
    THIS->DrawLabel( text, *image, *rect, alignment, indexAccel, newrect );
    RETVAL = newrect;
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Rect" );
    wxPli_thread_sv_register( aTHX_ "Wx::Rect", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__DC_DrawLabelNoBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_DrawLabelNoBitmap)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 5)
       croak_xs_usage(cv,  "THIS, text, rect, alignment = wxALIGN_LEFT | wxALIGN_TOP, indexAccel = -1");
    {
	wxString	text;
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Rect" )
;
	int	alignment;
	int	indexAccel;
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;

    WXSTRING_INPUT( text, wxString, ST(1) )
;

	if (items < 4)
	    alignment = wxALIGN_LEFT | wxALIGN_TOP;
	else {
	    alignment = (int)SvIV(ST(3))
;
	}

	if (items < 5)
	    indexAccel = -1;
	else {
	    indexAccel = (int)SvIV(ST(4))
;
	}
    THIS->DrawLabel( text, *rect, alignment, indexAccel );
    }
    XSRETURN_EMPTY;
}

#endif
#if wxUSE_GRAPHICS_CONTEXT && WXPERL_W_VERSION_GE( 2, 8, 8 ) && WXPERL_W_VERSION_LT( 2, 9, 0 ) && defined( __WXMAC__ )
#define XSubPPtmpAABW 1


XS_EUPXS(XS_Wx__DC_GetGraphicsContext); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DC_GetGraphicsContext)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDC *    THIS = (wxDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DC" )
;
	wxGraphicsContext *	RETVAL;
    RETVAL = THIS->GetGraphicsContext();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    wxPli_object_set_deleteable( aTHX_ ST(0), false );
    }
    XSRETURN(1);
}

#endif
#if wxUSE_GRAPHICS_CONTEXT && WXPERL_W_VERSION_GE( 2, 8, 8 )
#define XSubPPtmpAABX 1


XS_EUPXS(XS_Wx__GCDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GCDC_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    BEGIN_OVERLOAD()
#if defined( __WXMSW__ )    
        MATCH_REDISP( wxPliOvl_wmdc, newMemoryDC )
#endif        
        MATCH_REDISP( wxPliOvl_wwdc, newWindowDC )
    END_OVERLOAD( "Wx::GCDC::new" )
	PUTBACK;
	return;
    }
}

#if defined( __WXMSW__ )   
#define XSubPPtmpAABY 1


XS_EUPXS(XS_Wx__GCDC_newMemoryDC); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GCDC_newMemoryDC)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, dc");
    {
	SV*	CLASS = ST(0)
;
	wxMemoryDC*    dc = (wxMemoryDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::MemoryDC" )
;
	wxGCDC *	RETVAL;
    RETVAL = new wxGCDC( *dc );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GCDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__GCDC_newWindowDC); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GCDC_newWindowDC)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, dc");
    {
	SV*	CLASS = ST(0)
;
	wxWindowDC*    dc = (wxWindowDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::WindowDC" )
;
	wxGCDC *	RETVAL;
    RETVAL = new wxGCDC( *dc );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GCDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if !defined( __WXMAC__ ) || WXPERL_W_VERSION_GE( 2, 9, 0 )
#define XSubPPtmpAABZ 1


XS_EUPXS(XS_Wx__GCDC_GetGraphicsContext); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GCDC_GetGraphicsContext)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGCDC *    THIS = (wxGCDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GCDC" )
;
	wxGraphicsContext *	RETVAL;
    RETVAL = THIS->GetGraphicsContext();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    wxPli_object_set_deleteable( aTHX_ ST(0), false );
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GCDC_SetGraphicsContext); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GCDC_SetGraphicsContext)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, ctx");
    {
	wxGraphicsContext*    ctx = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsContext" )
;
	wxGCDC *    THIS = (wxGCDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GCDC" )
;
    wxPli_object_set_deleteable( aTHX_ ST(1), false );
    THIS->SetGraphicsContext( ctx );
    }
    XSRETURN_EMPTY;
}

#endif
#endif    

XS_EUPXS(XS_Wx__ScreenDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ScreenDC_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxScreenDC *	RETVAL;

	RETVAL = new wxScreenDC();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::ScreenDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ScreenDC_EndDrawingOnTop); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ScreenDC_EndDrawingOnTop)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxScreenDC *    THIS = (wxScreenDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ScreenDC" )
;
	bool	RETVAL;

	RETVAL = THIS->EndDrawingOnTop();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ScreenDC_StartDrawingOnTop); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ScreenDC_StartDrawingOnTop)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxScreenDC *    THIS = (wxScreenDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ScreenDC" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wwin, StartDrawingOnTopWindow )
        MATCH_REDISP( wxPliOvl_wrec, StartDrawingOnTopRect )
    END_OVERLOAD( Wx::ScreenDC::StartDrawingOnTop )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__ScreenDC_StartDrawingOnTopWindow); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ScreenDC_StartDrawingOnTopWindow)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, window");
    {
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Window" )
;
	wxScreenDC *    THIS = (wxScreenDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ScreenDC" )
;
	bool	RETVAL;
    RETVAL = THIS->StartDrawingOnTop( window );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ScreenDC_StartDrawingOnTopRect); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ScreenDC_StartDrawingOnTopRect)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, rect");
    {
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Rect" )
;
	wxScreenDC *    THIS = (wxScreenDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ScreenDC" )
;
	bool	RETVAL;
    RETVAL = THIS->StartDrawingOnTop( rect );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__WindowDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__WindowDC_new)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, window");
    {
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Window" )
;
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxWindowDC *	RETVAL;

	RETVAL = new wxWindowDC(window);
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::WindowDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__PaintDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__PaintDC_new)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, window");
    {
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Window" )
;
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxPaintDC *	RETVAL;

	RETVAL = new wxPaintDC(window);
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::PaintDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__MemoryDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__MemoryDC_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxMemoryDC *	RETVAL;

	RETVAL = new wxMemoryDC();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::MemoryDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__MemoryDC_SelectObject); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__MemoryDC_SelectObject)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, bitmap");
    {
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxMemoryDC *    THIS = (wxMemoryDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::MemoryDC" )
;

	THIS->SelectObject(*bitmap);
    }
    XSRETURN_EMPTY;
}

#if WXPERL_W_VERSION_GE( 2, 7, 2 )
#define XSubPPtmpAACA 1


XS_EUPXS(XS_Wx__MemoryDC_SelectObjectAsSource); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__MemoryDC_SelectObjectAsSource)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, bitmap");
    {
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxMemoryDC *    THIS = (wxMemoryDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::MemoryDC" )
;

	THIS->SelectObjectAsSource(*bitmap);
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_Wx__ClientDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ClientDC_new)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, window");
    {
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Window" )
;
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxClientDC *	RETVAL;

	RETVAL = new wxClientDC(window);
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::ClientDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__BufferedDC_newDefault); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_newDefault)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBufferedDC *	RETVAL;
    try {
      RETVAL = new wxBufferedDC();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::BufferedDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#if WXPERL_W_VERSION_GE( 2, 6, 0 )
#define XSpp_364cdc4d_097947
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)
#define XSubPPtmpAACB 1


XS_EUPXS(XS_Wx__BufferedDC_newBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_newBitmap)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 4)
       croak_xs_usage(cv,  "CLASS, dc, buffer= wxNullBitmapPtr, style= wxBUFFER_CLIENT_AREA");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBufferedDC *	RETVAL;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	wxBitmap*	buffer;
	int	style;

	if (items < 3)
	    buffer = wxNullBitmapPtr;
	else {
    buffer = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Bitmap" )
;
	}

	if (items < 4)
	    style = wxBUFFER_CLIENT_AREA;
	else {
	    style = (int)SvIV(ST(3))
;
	}
    try {
      RETVAL = new wxBufferedDC( dc, *( buffer ), style );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::BufferedDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__BufferedDC_newSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_newSize)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "CLASS, dc, area, style= wxBUFFER_CLIENT_AREA");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBufferedDC *	RETVAL;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	wxSize    area = wxPli_sv_2_wxsize( aTHX_ ST(2) )
;
	int	style;

	if (items < 4)
	    style = wxBUFFER_CLIENT_AREA;
	else {
	    style = (int)SvIV(ST(3))
;
	}
    try {
      RETVAL = new wxBufferedDC( dc, area, style );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::BufferedDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)

XS_EUPXS(XS_Wx__BufferedDC_InitBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_InitBitmap)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 4)
       croak_xs_usage(cv,  "THIS, dc, buffer= wxNullBitmapPtr, style= wxBUFFER_CLIENT_AREA");
    {
	wxBufferedDC *    THIS = (wxBufferedDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::BufferedDC" )
;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	wxBitmap*	buffer;
	int	style;

	if (items < 3)
	    buffer = wxNullBitmapPtr;
	else {
    buffer = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Bitmap" )
;
	}

	if (items < 4)
	    style = wxBUFFER_CLIENT_AREA;
	else {
	    style = (int)SvIV(ST(3))
;
	}
    try {
      THIS->Init( dc, *( buffer ), style );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__BufferedDC_InitSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_InitSize)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, dc, area, style= wxBUFFER_CLIENT_AREA");
    {
	wxBufferedDC *    THIS = (wxBufferedDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::BufferedDC" )
;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	wxSize    area = wxPli_sv_2_wxsize( aTHX_ ST(2) )
;
	int	style;

	if (items < 4)
	    style = wxBUFFER_CLIENT_AREA;
	else {
	    style = (int)SvIV(ST(3))
;
	}
    try {
      THIS->Init( dc, area, style );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}

#else
#define XSpp_364cdc4d_033403
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)
#define XSubPPtmpAACC 1


XS_EUPXS(XS_Wx__BufferedDC_newBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_newBitmap)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "CLASS, dc, buffer= wxNullBitmapPtr");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBufferedDC *	RETVAL;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	wxBitmap*	buffer;

	if (items < 3)
	    buffer = wxNullBitmapPtr;
	else {
    buffer = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Bitmap" )
;
	}
    try {
      RETVAL = new wxBufferedDC( dc, *( buffer ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::BufferedDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__BufferedDC_newSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_newSize)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, dc, area");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBufferedDC *	RETVAL;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	wxSize    area = wxPli_sv_2_wxsize( aTHX_ ST(2) )
;
    try {
      RETVAL = new wxBufferedDC( dc, area );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::BufferedDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)

XS_EUPXS(XS_Wx__BufferedDC_InitBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_InitBitmap)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, dc, buffer= wxNullBitmapPtr");
    {
	wxBufferedDC *    THIS = (wxBufferedDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::BufferedDC" )
;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	wxBitmap*	buffer;

	if (items < 3)
	    buffer = wxNullBitmapPtr;
	else {
    buffer = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Bitmap" )
;
	}
    try {
      THIS->Init( dc, *( buffer ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__BufferedDC_InitSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_InitSize)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, dc, area");
    {
	wxBufferedDC *    THIS = (wxBufferedDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::BufferedDC" )
;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	wxSize    area = wxPli_sv_2_wxsize( aTHX_ ST(2) )
;
    try {
      THIS->Init( dc, area );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_Wx__BufferedDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_new)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
        MATCH_VOIDM_REDISP( newDefault )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wdc_wsiz_n, newSize, 2 )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wdc_wbmp_n, newBitmap, 1 )
    END_OVERLOAD( "Wx::BufferedDC::new" )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__BufferedDC_Init); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_Init)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wdc_wsiz_n, InitSize, 2 )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wdc_wbmp_n, InitBitmap, 1 )
    END_OVERLOAD( "Wx::BufferedDC::Init" )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__BufferedDC_UnMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_UnMask)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBufferedDC *    THIS = (wxBufferedDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::BufferedDC" )
;
    try {
      THIS->UnMask();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}

#if WXPERL_W_VERSION_GE( 2, 6, 0 )
#define XSpp_364cdc4d_050218
#define XSubPPtmpAACD 1


XS_EUPXS(XS_Wx__BufferedDC_SetStyle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_SetStyle)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, style");
    {
	wxBufferedDC *    THIS = (wxBufferedDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::BufferedDC" )
;
	int	style = (int)SvIV(ST(1))
;
    try {
      THIS->SetStyle( style );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__BufferedDC_GetStyle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedDC_GetStyle)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBufferedDC *    THIS = (wxBufferedDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::BufferedDC" )
;
	int	RETVAL;
	dXSTARG;
    try {
      RETVAL = THIS->GetStyle();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#endif
#if WXPERL_W_VERSION_GE( 2, 5, 5 )
#define XSpp_364cdc4d_054244
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)
#define XSubPPtmpAACE 1


XS_EUPXS(XS_Wx__BufferedPaintDC_newBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedPaintDC_newBitmap)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "CLASS, window, buffer, style= wxBUFFER_CLIENT_AREA");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBufferedPaintDC *	RETVAL;
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Window" )
;
	wxBitmap*    buffer = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Bitmap" )
;
	int	style;

	if (items < 4)
	    style = wxBUFFER_CLIENT_AREA;
	else {
	    style = (int)SvIV(ST(3))
;
	}
    try {
      RETVAL = new wxBufferedPaintDC( window, *( buffer ), style );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::BufferedPaintDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__BufferedPaintDC_newWindow); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedPaintDC_newWindow)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "CLASS, window, style= wxBUFFER_CLIENT_AREA");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBufferedPaintDC *	RETVAL;
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Window" )
;
	int	style;

	if (items < 3)
	    style = wxBUFFER_CLIENT_AREA;
	else {
	    style = (int)SvIV(ST(2))
;
	}
    try {
      RETVAL = new wxBufferedPaintDC( window, style );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::BufferedPaintDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#else
#define XSpp_364cdc4d_061003
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)
#define XSubPPtmpAACF 1


XS_EUPXS(XS_Wx__BufferedPaintDC_newBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedPaintDC_newBitmap)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, window, buffer");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBufferedPaintDC *	RETVAL;
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Window" )
;
	wxBitmap*    buffer = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Bitmap" )
;
    try {
      RETVAL = new wxBufferedPaintDC( window, *( buffer ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::BufferedPaintDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__BufferedPaintDC_newWindow); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedPaintDC_newWindow)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, window");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxBufferedPaintDC *	RETVAL;
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Window" )
;
    try {
      RETVAL = new wxBufferedPaintDC( window );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::BufferedPaintDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#endif

XS_EUPXS(XS_Wx__BufferedPaintDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__BufferedPaintDC_new)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wdc_wbmp_n, newBitmap, 2 )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wdc_n, newBitmap, 1 )
    END_OVERLOAD( "Wx::BufferedPaintDC::new" )
	PUTBACK;
	return;
    }
}

#if WXPERL_W_VERSION_GE( 2, 7, 2 )
#define XSpp_364cdc4d_030639
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)
#define XSubPPtmpAACG 1


XS_EUPXS(XS_Wx__AutoBufferedPaintDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__AutoBufferedPaintDC_new)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, win");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxAutoBufferedPaintDC *	RETVAL;
	wxWindow*    win = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Window" )
;
    try {
      RETVAL = new wxAutoBufferedPaintDC( win );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::AutoBufferedPaintDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)

XS_EUPXS(XS_Wx_AutoBufferedPaintDCFactory); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx_AutoBufferedPaintDCFactory)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "window");
    {
	wxDC *	RETVAL;
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Window" )
;
    try {
      RETVAL = wxAutoBufferedPaintDCFactory( window );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::DC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#include <wx/dcmirror.h>
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__MirrorDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__MirrorDC_new)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, dc, mirror");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxMirrorDC *	RETVAL;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	bool	mirror = (bool)SvTRUE(ST(2))
;
    try {
      RETVAL = new wxMirrorDC( *( dc ), mirror );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::MirrorDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)

XS_EUPXS(XS_Wx__DCClipper_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCClipper_new)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wdc_wreg, newRegion )
        MATCH_REDISP( wxPliOvl_wdc_wrec, newRect )
        MATCH_REDISP( wxPliOvl_wdc_n_n_n_n, newXYWH )
    END_OVERLOAD( Wx::DCClipper::new )
	PUTBACK;
	return;
    }
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__DCClipper_newRegion); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCClipper_newRegion)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, dc, region");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxDCClipper *	RETVAL;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	wxRegion*    region = (wxRegion *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Region" )
;
    try {
      RETVAL = new wxDCClipper( *( dc ), *( region ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::DCClipper" );
    wxPli_thread_sv_register( aTHX_ "Wx::DCClipper", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__DCClipper_newRect); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCClipper_newRect)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, dc, rect");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxDCClipper *	RETVAL;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Rect" )
;
    try {
      RETVAL = new wxDCClipper( *( dc ), *( rect ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::DCClipper" );
    wxPli_thread_sv_register( aTHX_ "Wx::DCClipper", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__DCClipper_newXYWH); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCClipper_newXYWH)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "CLASS, dc, x, y, w, h");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxDCClipper *	RETVAL;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::DC" )
;
	int	x = (int)SvIV(ST(2))
;
	int	y = (int)SvIV(ST(3))
;
	int	w = (int)SvIV(ST(4))
;
	int	h = (int)SvIV(ST(5))
;
    try {
      RETVAL = new wxDCClipper( *( dc ), x, y, w, h );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::DCClipper" );
    wxPli_thread_sv_register( aTHX_ "Wx::DCClipper", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)

XS_EUPXS(XS_Wx__DCClipper_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCClipper_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__DCClipper_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__DCClipper_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxDCClipper *    THIS = (wxDCClipper *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::DCClipper" )
;
     wxPli_thread_sv_unregister( aTHX_ "Wx::DCClipper", THIS, ST(0) );
                delete THIS;
    }
    XSRETURN_EMPTY;
}

#endif

/* INCLUDE: Returning to 'XS/Cursor.xs' from '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/DC.xsp' */

#include <wx/cursor.h>

XS_EUPXS(XS_Wx__Cursor_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Cursor_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_n, newId )
        MATCH_REDISP( wxPliOvl_wimg, newImage )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_n_n_n, newFile, 2 )
    END_OVERLOAD( Wx::Cursor::new )
	PUTBACK;
	return;
    }
}

#if defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ )
#if WXPERL_W_VERSION_LT( 2, 9, 0 )
#define XSubPPtmpAACH 1


XS_EUPXS(XS_Wx__Cursor_newFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Cursor_newFile)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 5)
       croak_xs_usage(cv,  "CLASS, name, type, hsx = -1, hsy = -1");
    {
	SV*	CLASS = ST(0)
;
	wxString	name;
	long	type = (long)SvIV(ST(2))
;
	int	hsx;
	int	hsy;
	wxCursor *	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	if (items < 4)
	    hsx = -1;
	else {
	    hsx = (int)SvIV(ST(3))
;
	}

	if (items < 5)
	    hsy = -1;
	else {
	    hsy = (int)SvIV(ST(4))
;
	}
    RETVAL = new wxCursor( name, type, hsx, hsy );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Cursor", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#else
#define XSubPPtmpAACI 1


XS_EUPXS(XS_Wx__Cursor_newFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Cursor_newFile)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 5)
       croak_xs_usage(cv,  "CLASS, name, type, hsx = -1, hsy = -1");
    {
	SV*	CLASS = ST(0)
;
	wxString	name;
	wxBitmapType	type = (wxBitmapType)SvIV(ST(2))
;
	int	hsx;
	int	hsy;
	wxCursor *	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	if (items < 4)
	    hsx = -1;
	else {
	    hsx = (int)SvIV(ST(3))
;
	}

	if (items < 5)
	    hsy = -1;
	else {
	    hsy = (int)SvIV(ST(4))
;
	}
    RETVAL = new wxCursor( name, type, hsx, hsy );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Cursor", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif
#endif

XS_EUPXS(XS_Wx__Cursor_newId); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Cursor_newId)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, id");
    {
	SV*	CLASS = ST(0)
;
	wxStockCursor	id = (wxStockCursor)SvIV(ST(1))
;
	wxCursor *	RETVAL;
    RETVAL = new wxCursor( id );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Cursor", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if !defined(__WXMAC__)
#define XSubPPtmpAACJ 1


XS_EUPXS(XS_Wx__Cursor_newImage); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Cursor_newImage)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, img");
    {
	SV*	CLASS = ST(0)
;
	wxImage*    img = (wxImage *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Image" )
;
	wxCursor *	RETVAL;
    RETVAL = new wxCursor( *img );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Cursor", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif
#if !defined( __WXGTK__ ) && !defined(__WXMAC__) \
    && WXPERL_W_VERSION_LT( 2, 9, 0 )
#define XSubPPtmpAACK 1


XS_EUPXS(XS_Wx__Cursor_newData); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Cursor_newData)
{
    dVAR; dXSARGS;
    if (items < 4 || items > 7)
       croak_xs_usage(cv,  "CLASS, bits, width, height, hotSpotX = -1, hotSpotY = -1, maskBits = 0");
    {
	SV*	CLASS = ST(0)
;
	SV*	bits = ST(1)
;
	int	width = (int)SvIV(ST(2))
;
	int	height = (int)SvIV(ST(3))
;
	int	hotSpotX;
	int	hotSpotY;
	SV*	maskBits;
    char* data = SvPV_nolen( bits );
    char* mask = maskBits ? SvPV_nolen( maskBits ) : 0;
	wxCursor *	RETVAL;

	if (items < 5)
	    hotSpotX = -1;
	else {
	    hotSpotX = (int)SvIV(ST(4))
;
	}

	if (items < 6)
	    hotSpotY = -1;
	else {
	    hotSpotY = (int)SvIV(ST(5))
;
	}

	if (items < 7)
	    maskBits = 0;
	else {
	    maskBits = ST(6)
;
	}
    RETVAL = new wxCursor( data, width, height, hotSpotX, hotSpotY, mask );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Cursor", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Cursor_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Cursor_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Cursor_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Cursor_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxCursor *    THIS = (wxCursor *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Cursor" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Cursor", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Cursor_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Cursor_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxCursor *    THIS = (wxCursor *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Cursor" )
;
	bool	RETVAL;

	RETVAL = THIS->Ok();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAACL 1


XS_EUPXS(XS_Wx__Cursor_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Cursor_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxCursor *    THIS = (wxCursor *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Cursor" )
;
	bool	RETVAL;

	RETVAL = THIS->IsOk();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

/* INCLUDE: Returning to 'XS/Icon.xs' from 'XS/Cursor.xs' */

#include <wx/icon.h>
#if !defined( __WXMSW__ )
#include "wxpl.xpm"
#endif

XS_EUPXS(XS_Wx_GetWxPerlIcon); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx_GetWxPerlIcon)
{
    dVAR; dXSARGS;
    if (items < 0 || items > 1)
       croak_xs_usage(cv,  "get_small = false");
    {
	bool	get_small;
	wxIcon *	RETVAL;

	if (items < 1)
	    get_small = false;
	else {
	    get_small = (bool)SvTRUE(ST(0))
;
	}
#if defined( __WXMSW__ )
    int sz = get_small ? 16 : 32;
    RETVAL = new wxIcon( wxT("wxplicon"), wxBITMAP_TYPE_ICO_RESOURCE, -1, -1 );
    if( !RETVAL->Ok() )
        croak( "Unable to load icon" );
#else
    char** image = (char**)( get_small ? wxpl16_xpm : wxpl32_xpm );
    RETVAL = new wxIcon( image );
#endif
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Icon", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Icon_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    BEGIN_OVERLOAD()
        MATCH_VOIDM_REDISP( newNull )
        MATCH_REDISP( wxPliOvl_wilo, newLocation )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_n_n_n, newFile, 2 )
    END_OVERLOAD( Wx::Icon::new )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Icon_newNull); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_newNull)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	SV*	CLASS = ST(0)
;
	wxIcon *	RETVAL;
    RETVAL = new wxIcon();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Icon", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Icon_newFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_newFile)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 5)
       croak_xs_usage(cv,  "CLASS, name, type, desW = -1, desH = -1");
    {
	SV*	CLASS = ST(0)
;
	wxString	name;
	long	type = (long)SvIV(ST(2))
;
	int	desW;
	int	desH;
	wxIcon *	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	if (items < 4)
	    desW = -1;
	else {
	    desW = (int)SvIV(ST(3))
;
	}

	if (items < 5)
	    desH = -1;
	else {
	    desH = (int)SvIV(ST(4))
;
	}
#if defined( __WXMOTIF__ ) || defined( __WXX11__ ) || defined( __WXGTK__ ) \
    || WXPERL_W_VERSION_GE( 2, 9, 0 )
    RETVAL = new wxIcon( name, wxBitmapType(type), desW, desH );
#else
    RETVAL = new wxIcon( name, type, desW, desH );
#endif
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Icon", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if defined( __WXGTK__ ) || defined( __WXPERL_FORCE__ )
#endif

XS_EUPXS(XS_Wx__Icon_newFromXPM); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_newFromXPM)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, data");
    {
	SV*	CLASS = ST(0)
;
	SV*	data = ST(1)
;
    char** xpm_data;
    size_t i, n = wxPli_av_2_charparray( aTHX_ data, &xpm_data );
	wxIcon *	RETVAL;
    RETVAL = new wxIcon( xpm_data );
    for( i = 0; i < n; ++i )
        free( xpm_data[i] );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Icon", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 5, 2 )
#define XSubPPtmpAACM 1


XS_EUPXS(XS_Wx__Icon_newLocation); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_newLocation)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, location");
    {
	SV*	CLASS = ST(0)
;
	wxIconLocation*    location = (wxIconLocation *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::IconLocation" )
;
	wxIcon *	RETVAL;
    RETVAL = new wxIcon( *location );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Icon", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Icon_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Icon_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Icon", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Icon_LoadFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_LoadFile)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, name, type");
    {
	wxString	name;
	long	type = (long)SvIV(ST(2))
;
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;
#if defined( __WXMOTIF__ )
#if WXPERL_W_VERSION_GE( 2, 5, 1 )
        RETVAL = THIS->LoadFile( name, wxBitmapType(type), -1, -1 );
#else
        RETVAL = THIS->LoadFile( name, type, -1, -1 );
#endif
#else
#if defined( __WXX11__ ) || defined( __WXMAC__ ) || defined( __WXGTK__ ) \
    || ( defined(__WXMSW__) && WXPERL_W_VERSION_GE( 2, 9, 0 ) )
    RETVAL = THIS->LoadFile( name, wxBitmapType(type) );
#else
    RETVAL = THIS->LoadFile( name, type );
#endif
#endif
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Icon_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;
	bool	RETVAL;

	RETVAL = THIS->Ok();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAACN 1


XS_EUPXS(XS_Wx__Icon_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;
	bool	RETVAL;

	RETVAL = THIS->IsOk();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Icon_CopyFromBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_CopyFromBitmap)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, bitmap");
    {
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;

	THIS->CopyFromBitmap(*bitmap);
    }
    XSRETURN_EMPTY;
}

#if defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ )
#define XSubPPtmpAACO 1


XS_EUPXS(XS_Wx__Icon_GetDepth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_GetDepth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetDepth();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Icon_GetHeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_GetHeight)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetHeight();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Icon_GetWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_GetWidth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetWidth();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Icon_SetDepth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_SetDepth)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, depth");
    {
	int	depth = (int)SvIV(ST(1))
;
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;

	THIS->SetDepth(depth);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Icon_SetHeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_SetHeight)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, height");
    {
	int	height = (int)SvIV(ST(1))
;
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;

	THIS->SetHeight(height);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Icon_SetWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Icon_SetWidth)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, width");
    {
	int	width = (int)SvIV(ST(1))
;
	wxIcon *    THIS = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Icon" )
;

	THIS->SetWidth(width);
    }
    XSRETURN_EMPTY;
}

#endif

/* INCLUDE: Returning to 'XS/Bitmap.xs' from 'XS/Icon.xs' */

#include <wx/bitmap.h>

XS_EUPXS(XS_Wx__Mask_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Mask_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wbmp_wcol, newBitmapColour )
        MATCH_REDISP( wxPliOvl_wbmp_n, newBitmapIndex )
        MATCH_REDISP( wxPliOvl_wbmp, newBitmap )
    END_OVERLOAD( Wx::Mask::new )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Mask_newBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Mask_newBitmap)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, bitmap");
    {
	SV*	CLASS = ST(0)
;
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxMask *	RETVAL;
    RETVAL = new wxMask( *bitmap );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Mask_newBitmapColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Mask_newBitmapColour)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, bitmap, colour");
    {
	SV*	CLASS = ST(0)
;
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Colour" )
;
	wxMask *	RETVAL;
    RETVAL = new wxMask( *bitmap, *colour );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Mask_newBitmapIndex); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Mask_newBitmapIndex)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, bitmap, index");
    {
	SV*	CLASS = ST(0)
;
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	int	index = (int)SvIV(ST(2))
;
	wxMask *	RETVAL;
    RETVAL = new wxMask( *bitmap, index );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Mask_Destroy); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Mask_Destroy)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxMask *    THIS = (wxMask *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Mask" )
;
    delete THIS;
    }
    XSRETURN_EMPTY;
}

#if 0
#define XSubPPtmpAACP 1


XS_EUPXS(XS_Wx__Bitmap_bmp_spaceship); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_bmp_spaceship)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "bmp1, bmp2, ...");
    {
	SV*	bmp1 = ST(0)
;
	SV*	bmp2 = ST(1)
;
	int	RETVAL;
	dXSTARG;
    // this is not a proper spaceship method
    // it just allows autogeneration of != and ==
    // anyway, comparing bitmaps is just useless
    RETVAL = -1;
    if( SvROK( bmp1 ) && SvROK( bmp2 ) &&
        sv_derived_from( bmp1, "Wx::Bitmap" ) &&
        sv_derived_from( bmp2, "Wx::Bitmap" ) )
    {
        wxBitmap* bitmap1 = (wxBitmap*)_sv_2_object( bmp1, "Wx::Bitmap" );
        wxBitmap* bitmap2 = (wxBitmap*)_sv_2_object( bmp2, "Wx::Bitmap" );

        RETVAL = *bitmap1 == *bitmap2 ? 0 : 1;
    } else
      RETVAL = 1;
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Bitmap_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    BEGIN_OVERLOAD()
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_n_n_n, newEmpty, 2 )
        MATCH_REDISP( wxPliOvl_s_n, newFile )
        MATCH_REDISP( wxPliOvl_wico, newIcon )
        MATCH_REDISP( wxPliOvl_wimg, newImage )
    END_OVERLOAD( Wx::Bitmap::new )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Bitmap_newEmpty); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_newEmpty)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "CLASS, width, height, depth = -1");
    {
	SV*	CLASS = ST(0)
;
	int	width = (int)SvIV(ST(1))
;
	int	height = (int)SvIV(ST(2))
;
	int	depth;
	wxBitmap *	RETVAL;

	if (items < 4)
	    depth = -1;
	else {
	    depth = (int)SvIV(ST(3))
;
	}
    RETVAL = new wxBitmap( width, height, depth );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_newFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_newFile)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "CLASS, name, type");
    {
	SV*	CLASS = ST(0)
;
	wxString	name;
	long	type = (long)SvIV(ST(2))
;
	wxBitmap *	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;
#if WXPERL_W_VERSION_GE( 2, 5, 0 )
    RETVAL = new wxBitmap( name, wxBitmapType(type) );
#else
    RETVAL = new wxBitmap( name, type );
#endif
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_newIcon); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_newIcon)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, icon");
    {
	SV*	CLASS = ST(0)
;
	wxIcon*    icon = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Icon" )
;
	wxBitmap *	RETVAL;
    RETVAL = new wxBitmap( *icon );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_newFromBits); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_newFromBits)
{
    dVAR; dXSARGS;
    if (items < 4 || items > 5)
       croak_xs_usage(cv,  "CLASS, bits, width, height, depth = 1");
    {
	SV*	CLASS = ST(0)
;
	SV*	bits = ST(1)
;
	int	width = (int)SvIV(ST(2))
;
	int	height = (int)SvIV(ST(3))
;
	int	depth;
    char* buffer = SvPV_nolen( bits );
	wxBitmap *	RETVAL;

	if (items < 5)
	    depth = 1;
	else {
	    depth = (int)SvIV(ST(4))
;
	}
    RETVAL = new wxBitmap( buffer, width, height, depth );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_newFromXPM); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_newFromXPM)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, data");
    {
	SV*	CLASS = ST(0)
;
	SV*	data = ST(1)
;
    char** xpm_data;
    size_t i, n = wxPli_av_2_charparray( aTHX_ data, &xpm_data );
	wxBitmap *	RETVAL;
    RETVAL = new wxBitmap( xpm_data );
    for( i = 0; i < n; ++i )
        free( xpm_data[i] );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_newImage); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_newImage)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, image");
    {
	SV*	CLASS = ST(0)
;
	wxImage*    image = (wxImage *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Image" )
;
	wxBitmap *	RETVAL;
    RETVAL = new wxBitmap( *image );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Bitmap_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Bitmap", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Bitmap_ConvertToImage); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_ConvertToImage)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	wxImage *	RETVAL;
    RETVAL = new wxImage( THIS->ConvertToImage() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_CopyFromIcon); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_CopyFromIcon)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, icon");
    {
	wxIcon*    icon = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Icon" )
;
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
    THIS->CopyFromIcon( *icon );
    }
    XSRETURN_EMPTY;
}

#if defined( __WXMOTIF__ ) || \
    defined( __WXMSW__ ) || \
    defined( __WXPERL_FORCE__ )
#define XSubPPtmpAACQ 1


XS_EUPXS(XS_Wx__Bitmap_AddHandler); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_AddHandler)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handler");
    {
	wxBitmapHandler*    handler = (wxBitmapHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::BitmapHandler" )
;
    wxBitmap::AddHandler( handler );
    }
    XSRETURN_EMPTY;
}

#endif
#if defined( __WXMOTIF__ ) || defined( __WXPERL_FORCE__ )
#define XSubPPtmpAACR 1


XS_EUPXS(XS_Wx__Bitmap_FindHandlerName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_FindHandlerName)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "name");
    {
	wxString	name;
	wxBitmapHandler *	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(0) )
;
    RETVAL = wxBitmap::FindHandler( name );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_FindHandlerExtType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_FindHandlerExtType)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "extension, type");
    {
	wxString	extension;
	long	type = (long)SvIV(ST(1))
;
	wxBitmapHandler *	RETVAL;

    WXSTRING_INPUT( extension, wxString, ST(0) )
;
#if WXPERL_W_VERSION_GE( 2, 5, 1 ) && defined(__WXMOTIF__)
    RETVAL = wxBitmap::FindHandler( extension, wxBitmapType(type) );
#else
    RETVAL = wxBitmap::FindHandler( extension, type );
#endif
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_FindHandlerType); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_FindHandlerType)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "type");
    {
	long	type = (long)SvIV(ST(0))
;
	wxBitmapHandler *	RETVAL;
#if WXPERL_W_VERSION_GE( 2, 5, 1 ) && defined(__WXMOTIF__)
    RETVAL = wxBitmap::FindHandler( wxBitmapType(type) );
#else
    RETVAL = wxBitmap::FindHandler( type );
#endif
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Bitmap_GetDepth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_GetDepth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetDepth();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#if defined( __WXMOTIF__ ) || defined( __WXMSW__ ) \
    || defined( __WXPERL_FORCE__ )
#define XSubPPtmpAACS 1


XS_EUPXS(XS_Wx__Bitmap_GetHandlers); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_GetHandlers)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    const wxList& list = wxBitmap::GetHandlers();
    wxNode* node;

    EXTEND( SP, list.GetCount() );

    for( node = list.GetFirst(); node; node = node->GetNext() )
      PUSHs( wxPli_object_2_sv( aTHX_ sv_newmortal(), node->GetData() ) );
	PUTBACK;
	return;
    }
}

#endif

XS_EUPXS(XS_Wx__Bitmap_GetHeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_GetHeight)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetHeight();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_GetPalette); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_GetPalette)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	wxPalette *	RETVAL;
    RETVAL = new wxPalette( *THIS->GetPalette() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Palette", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_GetMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_GetMask)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	wxMask *	RETVAL;

	RETVAL = THIS->GetMask();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_GetWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_GetWidth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetWidth();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_GetSubBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_GetSubBitmap)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, rect");
    {
	wxRect*    rect = (wxRect *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Rect" )
;
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	wxBitmap *	RETVAL;
    RETVAL = new wxBitmap( THIS->GetSubBitmap( *rect ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if defined( __WXMOTIF__ ) || defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ )
#define XSubPPtmpAACT 1


XS_EUPXS(XS_Wx__Bitmap_InitStandardHandlers); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_InitStandardHandlers)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {
    wxBitmap::InitStandardHandlers();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Bitmap_InsertHandler); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_InsertHandler)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "handler");
    {
	wxBitmapHandler*    handler = (wxBitmapHandler *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::BitmapHandler" )
;
    wxBitmap::InsertHandler( handler );
    }
    XSRETURN_EMPTY;
}

#endif
#if WXPERL_W_VERSION_GE( 2, 3, 1 )
#define XSubPPtmpAACU 1


XS_EUPXS(XS_Wx__Bitmap_LoadFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_LoadFile)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, name, type");
    {
	wxString	name;
	wxBitmapType	type = (wxBitmapType)SvIV(ST(2))
;
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	RETVAL = THIS->LoadFile(name, type);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#else
#define XSubPPtmpAACV 1


XS_EUPXS(XS_Wx__Bitmap_LoadFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_LoadFile)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, name, type");
    {
	wxString	name;
	long	type = (long)SvIV(ST(2))
;
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	RETVAL = THIS->LoadFile(name, type);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Bitmap_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	bool	RETVAL;

	RETVAL = THIS->Ok();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAACW 1


XS_EUPXS(XS_Wx__Bitmap_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	bool	RETVAL;

	RETVAL = THIS->IsOk();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif
#if defined( __WXMOTIF__ ) || defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ )
#define XSubPPtmpAACX 1


XS_EUPXS(XS_Wx__Bitmap_RemoveHandler); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_RemoveHandler)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "name");
    {
	wxString	name;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(0) )
;
    RETVAL = wxBitmap::RemoveHandler( name );
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Bitmap_SaveFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_SaveFile)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, name, type, palette = 0");
    {
	wxString	name;
	wxBitmapType	type = (wxBitmapType)SvIV(ST(2))
;
	wxPalette*	palette;
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
	bool	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	if (items < 4)
	    palette = 0;
	else {
    palette = (wxPalette *) wxPli_sv_2_object( aTHX_ ST(3), "Wx::Palette" )
;
	}

	RETVAL = THIS->SaveFile(name, type, palette);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Bitmap_SetDepth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_SetDepth)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, depth");
    {
	int	depth = (int)SvIV(ST(1))
;
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;

	THIS->SetDepth(depth);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Bitmap_SetHeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_SetHeight)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, height");
    {
	int	height = (int)SvIV(ST(1))
;
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;

	THIS->SetHeight(height);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Bitmap_SetMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_SetMask)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, mask");
    {
	wxMask*    mask = (wxMask *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Mask" )
;
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
    THIS->SetMask( mask );
    }
    XSRETURN_EMPTY;
}

#if defined( __WXMOTIF__ ) || defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ )
#define XSubPPtmpAACY 1


XS_EUPXS(XS_Wx__Bitmap_SetPalette); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_SetPalette)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, palette");
    {
	wxPalette*    palette = (wxPalette *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Palette" )
;
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;
    THIS->SetPalette( *palette );
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_Wx__Bitmap_SetWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Bitmap_SetWidth)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, width");
    {
	int	width = (int)SvIV(ST(1))
;
	wxBitmap *    THIS = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Bitmap" )
;

	THIS->SetWidth(width);
    }
    XSRETURN_EMPTY;
}


/* INCLUDE: Returning to '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/ImageList.xsp' from 'XS/Bitmap.xs' */

#include <exception>

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#include <wx/imaglist.h>
#define wxNullBitmapPtr (wxBitmap*) &wxNullBitmap
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__ImageList_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_new)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 5)
       croak_xs_usage(cv,  "CLASS, width, height, mask= true, initialCount= 1");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxImageList *	RETVAL;
	int	width = (int)SvIV(ST(1))
;
	int	height = (int)SvIV(ST(2))
;
	bool	mask;
	int	initialCount;

	if (items < 4)
	    mask = true;
	else {
	    mask = (bool)SvTRUE(ST(3))
;
	}

	if (items < 5)
	    initialCount = 1;
	else {
	    initialCount = (int)SvIV(ST(4))
;
	}
    try {
      RETVAL = new wxImageList( width, height, mask, initialCount );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::ImageList", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)

XS_EUPXS(XS_Wx__ImageList_AddBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_AddBitmap)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, bitmap, mask= wxNullBitmapPtr");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	int	RETVAL;
	dXSTARG;
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxBitmap*	mask;

	if (items < 3)
	    mask = wxNullBitmapPtr;
	else {
    mask = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Bitmap" )
;
	}
    try {
      RETVAL = THIS->Add( *( bitmap ), *( mask ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageList_AddWithColourMask); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_AddWithColourMask)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, bitmap, colour");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	int	RETVAL;
	dXSTARG;
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Colour" )
;
    try {
      RETVAL = THIS->Add( *( bitmap ), *( colour ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageList_AddIcon); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_AddIcon)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, icon");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	int	RETVAL;
	dXSTARG;
	wxIcon*    icon = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Icon" )
;
    try {
      RETVAL = THIS->Add( *( icon ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageList_Draw); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_Draw)
{
    dVAR; dXSARGS;
    if (items < 5 || items > 7)
       croak_xs_usage(cv,  "THIS, index, dc, x, y, flags= wxIMAGELIST_DRAW_NORMAL, solidBackground= false");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	bool	RETVAL;
	int	index = (int)SvIV(ST(1))
;
	wxDC*    dc = (wxDC *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::DC" )
;
	int	x = (int)SvIV(ST(3))
;
	int	y = (int)SvIV(ST(4))
;
	int	flags;
	bool	solidBackground;

	if (items < 6)
	    flags = wxIMAGELIST_DRAW_NORMAL;
	else {
	    flags = (int)SvIV(ST(5))
;
	}

	if (items < 7)
	    solidBackground = false;
	else {
	    solidBackground = (bool)SvTRUE(ST(6))
;
	}
    try {
      RETVAL = THIS->Draw( index, *( dc ), x, y, flags, solidBackground );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageList_GetImageCount); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_GetImageCount)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	int	RETVAL;
	dXSTARG;
    try {
      RETVAL = THIS->GetImageCount();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageList_Remove); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_Remove)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, index");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	bool	RETVAL;
	int	index = (int)SvIV(ST(1))
;
    try {
      RETVAL = THIS->Remove( index );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageList_RemoveAll); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_RemoveAll)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	bool	RETVAL;
    try {
      RETVAL = THIS->RemoveAll();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if defined( __WXMSW__ )
#define XSpp_9bebdd2f_067524
#define XSubPPtmpAACZ 1


XS_EUPXS(XS_Wx__ImageList_ReplaceBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_ReplaceBitmap)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, index, bitmap, mask= wxNullBitmapPtr");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	bool	RETVAL;
	int	index = (int)SvIV(ST(1))
;
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Bitmap" )
;
	wxBitmap*	mask;

	if (items < 4)
	    mask = wxNullBitmapPtr;
	else {
    mask = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(3), "Wx::Bitmap" )
;
	}
    try {
      RETVAL = THIS->Replace( index, *( bitmap ), *( mask ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#else
#define XSpp_9bebdd2f_073762
#define XSubPPtmpAADA 1


XS_EUPXS(XS_Wx__ImageList_ReplaceBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_ReplaceBitmap)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, index, bitmap");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	bool	RETVAL;
	int	index = (int)SvIV(ST(1))
;
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Bitmap" )
;
    try {
      RETVAL = THIS->Replace( index, *( bitmap ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__ImageList_ReplaceIcon); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_ReplaceIcon)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, index, icon");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	bool	RETVAL;
	int	index = (int)SvIV(ST(1))
;
	wxIcon*    icon = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Icon" )
;
    try {
      RETVAL = THIS->Replace( index, *( icon ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 5, 4 )
#define XSpp_9bebdd2f_099198
#define XSubPPtmpAADB 1


XS_EUPXS(XS_Wx__ImageList_GetBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_GetBitmap)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, index");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	wxBitmap *	RETVAL;
	int	index = (int)SvIV(ST(1))
;
    try {
      RETVAL = new wxBitmap( THIS->GetBitmap( index ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Bitmap", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ImageList_GetIcon); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_GetIcon)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, index");
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
	wxIcon *	RETVAL;
	int	index = (int)SvIV(ST(1))
;
    try {
      RETVAL = new wxIcon( THIS->GetIcon( index ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Icon", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__ImageList_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__ImageList_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxImageList*    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::ImageList", THIS, ST(0) );
    if( wxPli_object_is_deleteable( aTHX_ ST(0) ) )
        delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__ImageList_Add); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_Add)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wbmp_wcol, AddWithColourMask )
        MATCH_REDISP( wxPliOvl_wico, AddIcon )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wbmp_wbmp, AddBitmap, 1 )
    END_OVERLOAD( Wx::ImageList::Add )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__ImageList_GetSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_GetSize)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, index");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	int	index = (int)SvIV(ST(1))
;
    int width;
    int height;
    bool result;
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
    result = THIS->GetSize( index, width, height );
    EXTEND( SP, 3 );
    PUSHs( sv_2mortal( newSViv( result ) ) );
    PUSHs( sv_2mortal( newSViv( width ) ) );
    PUSHs( sv_2mortal( newSViv( height ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__ImageList_Replace); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ImageList_Replace)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxImageList *    THIS = (wxImageList *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::ImageList" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_n_wico, ReplaceIcon )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_n_wbmp_wbmp, ReplaceBitmap, 2 )
    END_OVERLOAD( Wx::ImageList::Replace )
	PUTBACK;
	return;
    }
}


/* INCLUDE: Returning to 'XS/Font.xs' from '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/ImageList.xsp' */

#include <wx/fontutil.h>
#undef THIS

XS_EUPXS(XS_Wx__NativeFontInfo_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__NativeFontInfo_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxNativeFontInfo *	RETVAL;

	RETVAL = new wxNativeFontInfo();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::NativeFontInfo" );
    wxPli_thread_sv_register( aTHX_ "Wx::NativeFontInfo", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__NativeFontInfo_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__NativeFontInfo_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__NativeFontInfo_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__NativeFontInfo_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxNativeFontInfo *    THIS = (wxNativeFontInfo *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::NativeFontInfo" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::NativeFontInfo", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__NativeFontInfo_FromString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__NativeFontInfo_FromString)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, string");
    {
	wxString	string;
	wxNativeFontInfo *    THIS = (wxNativeFontInfo *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::NativeFontInfo" )
;
	bool	RETVAL;

    WXSTRING_INPUT( string, wxString, ST(1) )
;

	RETVAL = THIS->FromString(string);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__NativeFontInfo_ToString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__NativeFontInfo_ToString)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxNativeFontInfo *    THIS = (wxNativeFontInfo *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::NativeFontInfo" )
;
	wxString	RETVAL;

	RETVAL = THIS->ToString();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__NativeFontInfo_FromUserString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__NativeFontInfo_FromUserString)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, string");
    {
	wxString	string;
	wxNativeFontInfo *    THIS = (wxNativeFontInfo *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::NativeFontInfo" )
;
	bool	RETVAL;

    WXSTRING_INPUT( string, wxString, ST(1) )
;

	RETVAL = THIS->FromUserString(string);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__NativeFontInfo_ToUserString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__NativeFontInfo_ToUserString)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxNativeFontInfo *    THIS = (wxNativeFontInfo *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::NativeFontInfo" )
;
	wxString	RETVAL;

	RETVAL = THIS->ToUserString();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wfon, newFont )
#if defined(__WXMSW__) && WXPERL_W_VERSION_GE( 2, 5, 3 )     
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wsiz_n_n_n_b_s_n, newSize, 4 )
#endif
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_n_n_n_n_b_s_n, newLong, 4 )
        MATCH_REDISP( wxPliOvl_s, newNativeInfo )
    END_OVERLOAD( Wx::Font::new )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Font_newNativeInfo); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_newNativeInfo)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, info");
    {
	SV*	CLASS = ST(0)
;
	wxString	info;
	wxFont *	RETVAL;

    WXSTRING_INPUT( info, wxString, ST(1) )
;
#if defined(__WXMOTIF__) || defined(__WXX11__)
    wxNativeFontInfo fontinfo;
    fontinfo.FromString( info );
    RETVAL = new wxFont( fontinfo );
#else
    RETVAL = new wxFont( info );
#endif
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_newFont); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_newFont)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, font");
    {
	SV*	CLASS = ST(0)
;
	wxFont*    font = (wxFont *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Font" )
;
	wxFont *	RETVAL;
    RETVAL = new wxFont( *font );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_newLong); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_newLong)
{
    dVAR; dXSARGS;
    if (items < 5 || items > 8)
       croak_xs_usage(cv,  "CLASS, pointsize, family, style, weight, underline = false, faceName = wxEmptyString, encoding = wxFONTENCODING_DEFAULT");
    {
	SV*	CLASS = ST(0)
;
	int	pointsize = (int)SvIV(ST(1))
;
	int	family = (int)SvIV(ST(2))
;
	int	style = (int)SvIV(ST(3))
;
	int	weight = (int)SvIV(ST(4))
;
	bool	underline;
	wxString	faceName;
	wxFontEncoding	encoding;
	wxFont *	RETVAL;

	if (items < 6)
	    underline = false;
	else {
	    underline = (bool)SvTRUE(ST(5))
;
	}

	if (items < 7)
	    faceName = wxEmptyString;
	else {
    WXSTRING_INPUT( faceName, wxString, ST(6) )
;
	}

	if (items < 8)
	    encoding = wxFONTENCODING_DEFAULT;
	else {
	    encoding = (wxFontEncoding)SvIV(ST(7))
;
	}
    RETVAL = new wxFont( pointsize, family, style, weight, underline,
                         faceName, encoding );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if defined(__WXMSW__) && WXPERL_W_VERSION_GE( 2, 5, 3 )     
#define XSubPPtmpAADC 1


XS_EUPXS(XS_Wx__Font_newSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_newSize)
{
    dVAR; dXSARGS;
    if (items < 5 || items > 8)
       croak_xs_usage(cv,  "CLASS, size, family, style, weight, underline = false, faceName = wxEmptyString, encoding = wxFONTENCODING_DEFAULT");
    {
	SV*	CLASS = ST(0)
;
	wxSize    size = wxPli_sv_2_wxsize( aTHX_ ST(1) )
;
	int	family = (int)SvIV(ST(2))
;
	int	style = (int)SvIV(ST(3))
;
	int	weight = (int)SvIV(ST(4))
;
	bool	underline;
	wxString	faceName;
	wxFontEncoding	encoding;
	wxFont *	RETVAL;

	if (items < 6)
	    underline = false;
	else {
	    underline = (bool)SvTRUE(ST(5))
;
	}

	if (items < 7)
	    faceName = wxEmptyString;
	else {
    WXSTRING_INPUT( faceName, wxString, ST(6) )
;
	}

	if (items < 8)
	    encoding = wxFONTENCODING_DEFAULT;
	else {
	    encoding = (wxFontEncoding)SvIV(ST(7))
;
	}
    RETVAL = new wxFont( size, family, style, weight, underline, faceName, encoding );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Font_New); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_New)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
#if WXPERL_W_VERSION_GE( 2, 5, 3 )    
        MATCH_REDISP_COUNT_ALLOWMORE_FUNCTION( wxPliOvl_wsiz_n_n_n_b_s_n, Wx::Font::NewSizeStatic, 4 )
        MATCH_REDISP_COUNT_ALLOWMORE_FUNCTION( wxPliOvl_wsiz_n_n_s_n, Wx::Font::NewSizeFlagsStatic, 2 )
#endif
        MATCH_REDISP_COUNT_ALLOWMORE_FUNCTION( wxPliOvl_n_n_n_n_b_s_n, Wx::Font::NewPointStatic, 4 )
        MATCH_REDISP_COUNT_ALLOWMORE_FUNCTION( wxPliOvl_n_n_n_s_n, Wx::Font::NewPointFlagsStatic, 2 )    
#if WXPERL_W_VERSION_GE( 2, 5, 3 )    
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wsiz_n_n_n_b_s_n, NewSize, 4 )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wsiz_n_n_s_n, NewSizeFlags, 2 )
#endif
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_n_n_n_n_b_s_n, NewPoint, 4 )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_n_n_n_s_n, NewPointFlags, 2 )
    END_OVERLOAD( Wx::Font::New )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__Font_NewPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_NewPoint)
{
    dVAR; dXSARGS;
    if (items < 5 || items > 8)
       croak_xs_usage(cv,  "CLASS, pointsize, family, style, weight, underline = false, faceName = wxEmptyString, encoding = wxFONTENCODING_DEFAULT");
    {
	SV*	CLASS = ST(0)
;
	int	pointsize = (int)SvIV(ST(1))
;
	wxFontFamily	family = (wxFontFamily)SvIV(ST(2))
;
	int	style = (int)SvIV(ST(3))
;
	int	weight = (int)SvIV(ST(4))
;
	bool	underline;
	wxString	faceName;
	wxFontEncoding	encoding;
	wxFont *	RETVAL;

	if (items < 6)
	    underline = false;
	else {
	    underline = (bool)SvTRUE(ST(5))
;
	}

	if (items < 7)
	    faceName = wxEmptyString;
	else {
    WXSTRING_INPUT( faceName, wxString, ST(6) )
;
	}

	if (items < 8)
	    encoding = wxFONTENCODING_DEFAULT;
	else {
	    encoding = (wxFontEncoding)SvIV(ST(7))
;
	}
    RETVAL = wxFont::New( pointsize, family, style, weight, underline,
                           faceName, encoding );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_NewPointFlags); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_NewPointFlags)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 6)
       croak_xs_usage(cv,  "CLASS, pointsize, family, flags = wxFONTFLAG_DEFAULT, faceName = wxEmptyString, encoding = wxFONTENCODING_DEFAULT");
    {
	SV*	CLASS = ST(0)
;
	int	pointsize = (int)SvIV(ST(1))
;
	wxFontFamily	family = (wxFontFamily)SvIV(ST(2))
;
	int	flags;
	wxString	faceName;
	wxFontEncoding	encoding;
	wxFont *	RETVAL;

	if (items < 4)
	    flags = wxFONTFLAG_DEFAULT;
	else {
	    flags = (int)SvIV(ST(3))
;
	}

	if (items < 5)
	    faceName = wxEmptyString;
	else {
    WXSTRING_INPUT( faceName, wxString, ST(4) )
;
	}

	if (items < 6)
	    encoding = wxFONTENCODING_DEFAULT;
	else {
	    encoding = (wxFontEncoding)SvIV(ST(5))
;
	}
    RETVAL = wxFont::New( pointsize, family, flags, faceName, encoding );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 5, 3 )
#define XSubPPtmpAADD 1


XS_EUPXS(XS_Wx__Font_NewSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_NewSize)
{
    dVAR; dXSARGS;
    if (items < 5 || items > 8)
       croak_xs_usage(cv,  "CLASS, size, family, style, weight, underline = false, faceName = wxEmptyString, encoding = wxFONTENCODING_DEFAULT");
    {
	SV*	CLASS = ST(0)
;
	wxSize    size = wxPli_sv_2_wxsize( aTHX_ ST(1) )
;
	wxFontFamily	family = (wxFontFamily)SvIV(ST(2))
;
	int	style = (int)SvIV(ST(3))
;
	int	weight = (int)SvIV(ST(4))
;
	bool	underline;
	wxString	faceName;
	wxFontEncoding	encoding;
	wxFont *	RETVAL;

	if (items < 6)
	    underline = false;
	else {
	    underline = (bool)SvTRUE(ST(5))
;
	}

	if (items < 7)
	    faceName = wxEmptyString;
	else {
    WXSTRING_INPUT( faceName, wxString, ST(6) )
;
	}

	if (items < 8)
	    encoding = wxFONTENCODING_DEFAULT;
	else {
	    encoding = (wxFontEncoding)SvIV(ST(7))
;
	}
    RETVAL = wxFont::New( size, family, style, weight, underline, faceName, encoding );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_NewSizeFlags); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_NewSizeFlags)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 6)
       croak_xs_usage(cv,  "CLASS, size, family, flags = wxFONTFLAG_DEFAULT, faceName = wxEmptyString, encoding = wxFONTENCODING_DEFAULT");
    {
	SV*	CLASS = ST(0)
;
	wxSize    size = wxPli_sv_2_wxsize( aTHX_ ST(1) )
;
	wxFontFamily	family = (wxFontFamily)SvIV(ST(2))
;
	int	flags;
	wxString	faceName;
	wxFontEncoding	encoding;
	wxFont *	RETVAL;

	if (items < 4)
	    flags = wxFONTFLAG_DEFAULT;
	else {
	    flags = (int)SvIV(ST(3))
;
	}

	if (items < 5)
	    faceName = wxEmptyString;
	else {
    WXSTRING_INPUT( faceName, wxString, ST(4) )
;
	}

	if (items < 6)
	    encoding = wxFONTENCODING_DEFAULT;
	else {
	    encoding = (wxFontEncoding)SvIV(ST(5))
;
	}
    RETVAL = wxFont::New( size, family, flags, faceName, encoding );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Font_NewPointStatic); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_NewPointStatic)
{
    dVAR; dXSARGS;
    if (items < 4 || items > 7)
       croak_xs_usage(cv,  "pointsize, family, style, weight, underline = false, faceName = wxEmptyString, encoding = wxFONTENCODING_DEFAULT");
    {
	int	pointsize = (int)SvIV(ST(0))
;
	wxFontFamily	family = (wxFontFamily)SvIV(ST(1))
;
	int	style = (int)SvIV(ST(2))
;
	int	weight = (int)SvIV(ST(3))
;
	bool	underline;
	wxString	faceName;
	wxFontEncoding	encoding;
	wxFont *	RETVAL;

	if (items < 5)
	    underline = false;
	else {
	    underline = (bool)SvTRUE(ST(4))
;
	}

	if (items < 6)
	    faceName = wxEmptyString;
	else {
    WXSTRING_INPUT( faceName, wxString, ST(5) )
;
	}

	if (items < 7)
	    encoding = wxFONTENCODING_DEFAULT;
	else {
	    encoding = (wxFontEncoding)SvIV(ST(6))
;
	}
    RETVAL = wxFont::New( pointsize, family, style, weight, underline,
                           faceName, encoding );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_NewPointFlagsStatic); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_NewPointFlagsStatic)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 5)
       croak_xs_usage(cv,  "pointsize, family, flags = wxFONTFLAG_DEFAULT, faceName = wxEmptyString, encoding = wxFONTENCODING_DEFAULT");
    {
	int	pointsize = (int)SvIV(ST(0))
;
	wxFontFamily	family = (wxFontFamily)SvIV(ST(1))
;
	int	flags;
	wxString	faceName;
	wxFontEncoding	encoding;
	wxFont *	RETVAL;

	if (items < 3)
	    flags = wxFONTFLAG_DEFAULT;
	else {
	    flags = (int)SvIV(ST(2))
;
	}

	if (items < 4)
	    faceName = wxEmptyString;
	else {
    WXSTRING_INPUT( faceName, wxString, ST(3) )
;
	}

	if (items < 5)
	    encoding = wxFONTENCODING_DEFAULT;
	else {
	    encoding = (wxFontEncoding)SvIV(ST(4))
;
	}
    RETVAL = wxFont::New( pointsize, family, flags, faceName, encoding );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 5, 3 )
#define XSubPPtmpAADE 1


XS_EUPXS(XS_Wx__Font_NewSizeStatic); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_NewSizeStatic)
{
    dVAR; dXSARGS;
    if (items < 4 || items > 7)
       croak_xs_usage(cv,  "size, family, style, weight, underline = false, faceName = wxEmptyString, encoding = wxFONTENCODING_DEFAULT");
    {
	wxSize    size = wxPli_sv_2_wxsize( aTHX_ ST(0) )
;
	wxFontFamily	family = (wxFontFamily)SvIV(ST(1))
;
	int	style = (int)SvIV(ST(2))
;
	int	weight = (int)SvIV(ST(3))
;
	bool	underline;
	wxString	faceName;
	wxFontEncoding	encoding;
	wxFont *	RETVAL;

	if (items < 5)
	    underline = false;
	else {
	    underline = (bool)SvTRUE(ST(4))
;
	}

	if (items < 6)
	    faceName = wxEmptyString;
	else {
    WXSTRING_INPUT( faceName, wxString, ST(5) )
;
	}

	if (items < 7)
	    encoding = wxFONTENCODING_DEFAULT;
	else {
	    encoding = (wxFontEncoding)SvIV(ST(6))
;
	}
    RETVAL = wxFont::New( size, family, style, weight, underline, faceName, encoding );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_NewSizeFlagsStatic); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_NewSizeFlagsStatic)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 5)
       croak_xs_usage(cv,  "size, family, flags = wxFONTFLAG_DEFAULT, faceName = wxEmptyString, encoding = wxFONTENCODING_DEFAULT");
    {
	wxSize    size = wxPli_sv_2_wxsize( aTHX_ ST(0) )
;
	wxFontFamily	family = (wxFontFamily)SvIV(ST(1))
;
	int	flags;
	wxString	faceName;
	wxFontEncoding	encoding;
	wxFont *	RETVAL;

	if (items < 3)
	    flags = wxFONTFLAG_DEFAULT;
	else {
	    flags = (int)SvIV(ST(2))
;
	}

	if (items < 4)
	    faceName = wxEmptyString;
	else {
    WXSTRING_INPUT( faceName, wxString, ST(3) )
;
	}

	if (items < 5)
	    encoding = wxFONTENCODING_DEFAULT;
	else {
	    encoding = (wxFontEncoding)SvIV(ST(4))
;
	}
    RETVAL = wxFont::New( size, family, flags, faceName, encoding );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Font", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Font_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Font_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Font", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Font_font_spaceship); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_font_spaceship)
{
    dVAR; dXSARGS;
    if (items < 2)
       croak_xs_usage(cv,  "fnt1, fnt2, ...");
    {
	SV*	fnt1 = ST(0)
;
	SV*	fnt2 = ST(1)
;
	int	RETVAL;
	dXSTARG;
    // this is not a proper spaceship method
    // it just allows autogeneration of != and ==
    // anyway, comparing fontss is just useless
    RETVAL = -1;
    if( SvROK( fnt1 ) && SvROK( fnt2 ) &&
        sv_derived_from( fnt1, "Wx::Font" ) &&
        sv_derived_from( fnt2, "Wx::Font" ) )
    {
        wxFont* font1 = (wxFont*)wxPli_sv_2_object( aTHX_ fnt1, "Wx::Font" );
        wxFont* font2 = (wxFont*)wxPli_sv_2_object( aTHX_ fnt2, "Wx::Font" );

        RETVAL = *font1 == *font2 ? 0 : 1;
    }
    else
      RETVAL = 1;
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetDefaultEncoding); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetDefaultEncoding)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {
	wxFontEncoding	RETVAL;
	dXSTARG;
    RETVAL = wxFont::GetDefaultEncoding();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetFaceName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetFaceName)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	wxString	RETVAL;

	RETVAL = THIS->GetFaceName();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetFamily); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetFamily)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetFamily();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 5, 1 )
#define XSubPPtmpAADF 1


XS_EUPXS(XS_Wx__Font_GetNativeFontInfo); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetNativeFontInfo)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	wxNativeFontInfo *	RETVAL;
    RETVAL = new wxNativeFontInfo( *(THIS->GetNativeFontInfo()) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::NativeFontInfo" );
    wxPli_thread_sv_register( aTHX_ "Wx::NativeFontInfo", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#else
#define XSubPPtmpAADG 1


XS_EUPXS(XS_Wx__Font_GetNativeFontInfo); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetNativeFontInfo)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	wxNativeFontInfo *	RETVAL;

	RETVAL = THIS->GetNativeFontInfo();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::NativeFontInfo" );
    wxPli_thread_sv_register( aTHX_ "Wx::NativeFontInfo", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Font_SetNativeFontInfoUserDesc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetNativeFontInfoUserDesc)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, info");
    {
	wxString	info;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;

    WXSTRING_INPUT( info, wxString, ST(1) )
;

	THIS->SetNativeFontInfoUserDesc(info);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Font_GetFamilyString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetFamilyString)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	wxString	RETVAL;

	RETVAL = THIS->GetFamilyString();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetStyleString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetStyleString)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	wxString	RETVAL;

	RETVAL = THIS->GetStyleString();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetWeightString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetWeightString)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	wxString	RETVAL;

	RETVAL = THIS->GetWeightString();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetNativeFontInfoDesc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetNativeFontInfoDesc)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	wxString	RETVAL;

	RETVAL = THIS->GetNativeFontInfoDesc();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetNativeFontInfoUserDesc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetNativeFontInfoUserDesc)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	wxString	RETVAL;

	RETVAL = THIS->GetNativeFontInfoUserDesc();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 5, 3 )
#define XSubPPtmpAADH 1


XS_EUPXS(XS_Wx__Font_GetPixelSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetPixelSize)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	wxSize *	RETVAL;
    RETVAL = new wxSize( THIS->GetPixelSize() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Size" );
    wxPli_thread_sv_register( aTHX_ "Wx::Size", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif    

XS_EUPXS(XS_Wx__Font_GetEncoding); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetEncoding)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	wxFontEncoding	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetEncoding();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetPointSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetPointSize)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetPointSize();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetStyle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetStyle)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetStyle();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetUnderlined); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetUnderlined)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	bool	RETVAL;

	RETVAL = THIS->GetUnderlined();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_GetWeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_GetWeight)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	int	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetWeight();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_IsFixedWidth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_IsFixedWidth)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	bool	RETVAL;

	RETVAL = THIS->IsFixedWidth();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Font_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	bool	RETVAL;

	RETVAL = THIS->Ok();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 7, 2 )
#define XSubPPtmpAADI 1


XS_EUPXS(XS_Wx__Font_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	bool	RETVAL;

	RETVAL = THIS->IsOk();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Font_SetDefaultEncoding); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetDefaultEncoding)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "encoding");
    {
	wxFontEncoding	encoding = (wxFontEncoding)SvIV(ST(0))
;
    wxFont::SetDefaultEncoding( encoding );
    }
    XSRETURN_EMPTY;
}

#if WXPERL_W_VERSION_GE( 2, 7, 0 )
#define XSubPPtmpAADJ 1


XS_EUPXS(XS_Wx__Font_SetFaceName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetFaceName)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, faceName");
    {
	wxString	faceName;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	bool	RETVAL;

    WXSTRING_INPUT( faceName, wxString, ST(1) )
;

	RETVAL = THIS->SetFaceName(faceName);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#else
#define XSubPPtmpAADK 1


XS_EUPXS(XS_Wx__Font_SetFaceName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetFaceName)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, faceName");
    {
	wxString	faceName;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;

    WXSTRING_INPUT( faceName, wxString, ST(1) )
;

	THIS->SetFaceName(faceName);
    }
    XSRETURN_EMPTY;
}

#endif

XS_EUPXS(XS_Wx__Font_SetEncoding); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetEncoding)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, encoding");
    {
	wxFontEncoding	encoding = (wxFontEncoding)SvIV(ST(1))
;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;

	THIS->SetEncoding(encoding);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Font_SetFamily); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetFamily)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, family");
    {
	int	family = (int)SvIV(ST(1))
;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;

	THIS->SetFamily(family);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Font_SetNativeFontInfo); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetNativeFontInfo)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, info");
    {
	wxString	info;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;

    WXSTRING_INPUT( info, wxString, ST(1) )
;
    THIS->SetNativeFontInfo( info );
    }
    XSRETURN_EMPTY;
}

#if WXPERL_W_VERSION_GE( 2, 5, 3 )
#define XSubPPtmpAADL 1


XS_EUPXS(XS_Wx__Font_SetPixelSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetPixelSize)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, pixelsize");
    {
	wxSize    pixelsize = wxPli_sv_2_wxsize( aTHX_ ST(1) )
;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;

	THIS->SetPixelSize(pixelsize);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Font_IsUsingSizeInPixels); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_IsUsingSizeInPixels)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;
	bool	RETVAL;

	RETVAL = THIS->IsUsingSizeInPixels();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif    

XS_EUPXS(XS_Wx__Font_SetPointSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetPointSize)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, pointsize");
    {
	int	pointsize = (int)SvIV(ST(1))
;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;

	THIS->SetPointSize(pointsize);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Font_SetStyle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetStyle)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, style");
    {
	int	style = (int)SvIV(ST(1))
;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;

	THIS->SetStyle(style);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Font_SetUnderlined); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetUnderlined)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, underlined");
    {
	bool	underlined = (bool)SvTRUE(ST(1))
;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;

	THIS->SetUnderlined(underlined);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Font_SetWeight); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Font_SetWeight)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, weight");
    {
	int	weight = (int)SvIV(ST(1))
;
	wxFont *    THIS = (wxFont *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Font" )
;

	THIS->SetWeight(weight);
    }
    XSRETURN_EMPTY;
}


/* INCLUDE: Returning to 'XS/ColourDatabase.xs' from 'XS/Font.xs' */


XS_EUPXS(XS_Wx__ColourDatabase_AddColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ColourDatabase_AddColour)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "colourname, colour");
    {
	wxString	colourname;
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;

    WXSTRING_INPUT( colourname, wxString, ST(0) )
;
    wxTheColourDatabase->AddColour( colourname, *colour );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__ColourDatabase_Find); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ColourDatabase_Find)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "colourname");
    {
	wxString	colourname;
	wxColour *	RETVAL;

    WXSTRING_INPUT( colourname, wxString, ST(0) )
;
    RETVAL = new wxColour( wxTheColourDatabase->Find( colourname ) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__ColourDatabase_FindName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__ColourDatabase_FindName)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "colour");
    {
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;
	wxString	RETVAL;
    RETVAL = wxTheColourDatabase->FindName( *colour );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


/* INCLUDE: Returning to 'XS/Colour.xs' from 'XS/ColourDatabase.xs' */


XS_EUPXS(XS_Wx__Colour_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_new)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "CLASS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_n_n_n_n, newRGBA )
        MATCH_REDISP( wxPliOvl_n_n_n, newRGB )
        MATCH_REDISP( wxPliOvl_s, newName )
    END_OVERLOAD( Wx::Colour::new )
	PUTBACK;
	return;
    }
}

#if WXPERL_W_VERSION_GE( 2, 7, 1 )
#define XSubPPtmpAADM 1


XS_EUPXS(XS_Wx__Colour_newRGBA); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_newRGBA)
{
    dVAR; dXSARGS;
    if (items < 4 || items > 5)
       croak_xs_usage(cv,  "CLASS, red, green, blue, alpha = wxALPHA_OPAQUE");
    {
	SV*	CLASS = ST(0)
;
	unsigned char	red = (unsigned char)SvUV(ST(1))
;
	unsigned char	green = (unsigned char)SvUV(ST(2))
;
	unsigned char	blue = (unsigned char)SvUV(ST(3))
;
	unsigned char	alpha;
	wxColour *	RETVAL;

	if (items < 5)
	    alpha = wxALPHA_OPAQUE;
	else {
	    alpha = (unsigned char)SvUV(ST(4))
;
	}
    RETVAL = new wxColour( red, green, blue, alpha );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Colour_newRGB); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_newRGB)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "CLASS, red, green, blue");
    {
	SV*	CLASS = ST(0)
;
	unsigned char	red = (unsigned char)SvUV(ST(1))
;
	unsigned char	green = (unsigned char)SvUV(ST(2))
;
	unsigned char	blue = (unsigned char)SvUV(ST(3))
;
	wxColour *	RETVAL;
    RETVAL = new wxColour( red, green, blue );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Colour_newName); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_newName)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "CLASS, name");
    {
	SV*	CLASS = ST(0)
;
	wxString	name;
	wxColour *	RETVAL;

    WXSTRING_INPUT( name, wxString, ST(1) )
;
    RETVAL = new wxColour( name );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Colour_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Colour_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::Colour", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Colour_Blue); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_Blue)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;
	unsigned char	RETVAL;
	dXSTARG;

	RETVAL = THIS->Blue();
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Colour_Green); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_Green)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;
	unsigned char	RETVAL;
	dXSTARG;

	RETVAL = THIS->Green();
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Colour_Ok); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_Ok)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;
	bool	RETVAL;

	RETVAL = THIS->Ok();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 8, 0 )
#define XSubPPtmpAADN 1


XS_EUPXS(XS_Wx__Colour_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;
	bool	RETVAL;

	RETVAL = THIS->IsOk();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__Colour_Red); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_Red)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;
	unsigned char	RETVAL;
	dXSTARG;

	RETVAL = THIS->Red();
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_GE( 2, 7, 1 )
#define XSubPPtmpAADO 1


XS_EUPXS(XS_Wx__Colour_Alpha); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_Alpha)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;
	unsigned char	RETVAL;
	dXSTARG;

	RETVAL = THIS->Alpha();
	XSprePUSH;
	PUSHu((UV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Colour_Set); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_Set)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, red, green, blue, alpha");
    {
	unsigned char	red = (unsigned char)SvUV(ST(1))
;
	unsigned char	green = (unsigned char)SvUV(ST(2))
;
	unsigned char	blue = (unsigned char)SvUV(ST(3))
;
	unsigned char	alpha = (unsigned char)SvUV(ST(4))
;
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;

	THIS->Set(red, green, blue, alpha);
    }
    XSRETURN_EMPTY;
}

#else
#define XSubPPtmpAADP 1


XS_EUPXS(XS_Wx__Colour_Set); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_Set)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, red, green, blue");
    {
	unsigned char	red = (unsigned char)SvUV(ST(1))
;
	unsigned char	green = (unsigned char)SvUV(ST(2))
;
	unsigned char	blue = (unsigned char)SvUV(ST(3))
;
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;

	THIS->Set(red, green, blue);
    }
    XSRETURN_EMPTY;
}

#endif
#if WXPERL_W_VERSION_GE( 2, 7, 2 )
#define XSubPPtmpAADQ 1


XS_EUPXS(XS_Wx__Colour_GetAsString); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_GetAsString)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, flags");
    {
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;
	wxString	RETVAL;
	long	flags = (long)SvIV(ST(1))
;

	RETVAL = THIS->GetAsString(flags);
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    WXSTRING_OUTPUT( RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif
#if !defined(__WXMAC__)
#define XSubPPtmpAADR 1


XS_EUPXS(XS_Wx__Colour_GetPixel); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Colour_GetPixel)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxColour *    THIS = (wxColour *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Colour" )
;
	long	RETVAL;
	dXSTARG;

	RETVAL = THIS->GetPixel();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}

#endif

/* INCLUDE: Returning to '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/Animation.xsp' from 'XS/Colour.xs' */

#include <exception>

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#if WXPERL_W_VERSION_GE( 2, 7, 2 )
#define XSpp_667cb8a5_019672
#include <wx/animate.h>
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)
#define XSubPPtmpAADS 1


XS_EUPXS(XS_Wx__Animation_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Animation_new)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxAnimation *	RETVAL;
    try {
      RETVAL = new wxAnimation();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Animation", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)

XS_EUPXS(XS_Wx__Animation_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Animation_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Animation_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Animation_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxAnimation *    THIS = (wxAnimation *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Animation" )
;
     wxPli_thread_sv_unregister( aTHX_ wxPli_get_class( aTHX_ ST(0) ), THIS, ST(0) );
                delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__Animation_IsOk); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Animation_IsOk)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxAnimation *    THIS = (wxAnimation *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Animation" )
;
	bool	RETVAL;
    try {
      RETVAL = THIS->IsOk();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Animation_GetDelay); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Animation_GetDelay)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, frame");
    {
	wxAnimation *    THIS = (wxAnimation *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Animation" )
;
	int	RETVAL;
	dXSTARG;
	unsigned int    frame = (unsigned int)SvUV( ST(1) )
;
    try {
      RETVAL = THIS->GetDelay( frame );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Animation_GetFrameCount); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Animation_GetFrameCount)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxAnimation *    THIS = (wxAnimation *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Animation" )
;
	unsigned int	RETVAL;
	dXSTARG;
    try {
      RETVAL = THIS->GetFrameCount();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	XSprePUSH;
	PUSHu((UV)RETVAL );
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Animation_GetFrame); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Animation_GetFrame)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, frame");
    {
	wxAnimation *    THIS = (wxAnimation *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Animation" )
;
	wxImage *	RETVAL;
	unsigned int    frame = (unsigned int)SvUV( ST(1) )
;
    try {
      RETVAL = new wxImage( THIS->GetFrame( frame ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::Image", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Animation_GetSize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Animation_GetSize)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxAnimation *    THIS = (wxAnimation *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Animation" )
;
	wxSize	RETVAL;
    try {
      RETVAL = THIS->GetSize();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, new wxSize(RETVAL), "Wx::Size" );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Animation_LoadFile); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Animation_LoadFile)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, name, type= wxANIMATION_TYPE_ANY");
    {
	wxAnimation *    THIS = (wxAnimation *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Animation" )
;
	bool	RETVAL;
	wxString	name;
	wxAnimationType	type;

    WXSTRING_INPUT( name, wxString, ST(1) )
;

	if (items < 3)
	    type = wxANIMATION_TYPE_ANY;
	else {
	    type = (wxAnimationType)SvIV(ST(2))
;
	}
    try {
      RETVAL = THIS->LoadFile( name, type );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__Animation_Load); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__Animation_Load)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, stream, type= wxANIMATION_TYPE_ANY");
    {
	wxAnimation *    THIS = (wxAnimation *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Animation" )
;
	bool	RETVAL;
	wxPliInputStream	stream;
	wxAnimationType	type;

    wxPli_sv_2_istream( aTHX_ ST(1), stream )
;

	if (items < 3)
	    type = wxANIMATION_TYPE_ANY;
	else {
	    type = (wxAnimationType)SvIV(ST(2))
;
	}
    try {
      RETVAL = THIS->Load( stream, type );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

/* INCLUDE: Returning to 'GDI.xs' from '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/Animation.xsp' */


/* INCLUDE:  Including 'XS/GraphicsContext.xs' from 'GDI.xs' */


/* INCLUDE:  Including 'XS/GraphicsPath.xs' from 'XS/GraphicsContext.xs' */


/* INCLUDE:  Including 'XS/GraphicsMatrix.xs' from 'XS/GraphicsPath.xs' */


/* INCLUDE:  Including 'XS/GraphicsObject.xs' from 'XS/GraphicsMatrix.xs' */


/* INCLUDE_COMMAND:  Including output of '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/GraphicsRenderer.xsp' from 'XS/GraphicsObject.xs' */

#include <exception>

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#if wxUSE_GRAPHICS_CONTEXT
#define XSpp_58ed16aa_012430
#include <wx/graphics.h>
#if WXPERL_W_VERSION_GE( 2, 9, 1 )
#define XSpp_58ed16aa_094864
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)
#define XSubPPtmpAADT 1


XS_EUPXS(XS_Wx__GraphicsGradientStop_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStop_new)
{
    dVAR; dXSARGS;
    if (items < 1 || items > 3)
       croak_xs_usage(cv,  "CLASS, col= wxTransparentColour, pos= 0.");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxGraphicsGradientStop *	RETVAL;
	wxColour	col;
	float	pos;

	if (items < 2)
	    col = wxTransparentColour;
	else {
    col = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
	}

	if (items < 3)
	    pos = 0.;
	else {
	    pos = (float)SvNV(ST(2))
;
	}
    try {
      RETVAL = new wxGraphicsGradientStop( col, pos );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::GraphicsGradientStop" );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsGradientStop", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)

XS_EUPXS(XS_Wx__GraphicsGradientStop_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStop_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsGradientStop_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStop_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsGradientStop *    THIS = (wxGraphicsGradientStop *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStop" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::GraphicsGradientStop", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsGradientStop_GetColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStop_GetColour)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsGradientStop *    THIS = (wxGraphicsGradientStop *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStop" )
;
	wxColour *	RETVAL;
    try {
      RETVAL = new wxColour( THIS->GetColour() );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsGradientStop_SetColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStop_SetColour)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, col");
    {
	wxGraphicsGradientStop *    THIS = (wxGraphicsGradientStop *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStop" )
;
	wxColour*    col = (wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
    try {
      THIS->SetColour( *( col ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsGradientStop_GetPosition); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStop_GetPosition)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsGradientStop *    THIS = (wxGraphicsGradientStop *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStop" )
;
	float	RETVAL;
	dXSTARG;
    try {
      RETVAL = THIS->GetPosition();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	XSprePUSH;
	PUSHn((NV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsGradientStop_SetPosition); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStop_SetPosition)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, pos");
    {
	wxGraphicsGradientStop *    THIS = (wxGraphicsGradientStop *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStop" )
;
	float	pos = (float)SvNV(ST(1))
;
    try {
      THIS->SetPosition( pos );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)

XS_EUPXS(XS_Wx__GraphicsGradientStops_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_new)
{
    dVAR; dXSARGS;
    if (items < 1 || items > 3)
       croak_xs_usage(cv,  "CLASS, startCol= wxTransparentColour, endCol= wxTransparentColour");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxGraphicsGradientStops *	RETVAL;
	wxColour	startCol;
	wxColour	endCol;

	if (items < 2)
	    startCol = wxTransparentColour;
	else {
    startCol = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
	}

	if (items < 3)
	    endCol = wxTransparentColour;
	else {
    endCol = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Colour" )
;
	}
    try {
      RETVAL = new wxGraphicsGradientStops( startCol, endCol );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::GraphicsGradientStops" );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsGradientStops", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)

XS_EUPXS(XS_Wx__GraphicsGradientStops_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsGradientStops_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsGradientStops *    THIS = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStops" )
;
    wxPli_thread_sv_unregister( aTHX_ "Wx::GraphicsGradientStop", THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsGradientStops_AddStop); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_AddStop)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, stop");
    {
	wxGraphicsGradientStops *    THIS = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStops" )
;
	wxGraphicsGradientStop*    stop = (wxGraphicsGradientStop *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsGradientStop" )
;
    try {
      THIS->Add( *( stop ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsGradientStops_AddColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_AddColour)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, col, pos");
    {
	wxGraphicsGradientStops *    THIS = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStops" )
;
	wxColour    col = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
	float	pos = (float)SvNV(ST(2))
;
    try {
      THIS->Add( col, pos );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsGradientStops_GetCount); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_GetCount)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsGradientStops *    THIS = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStops" )
;
	unsigned int	RETVAL;
	dXSTARG;
    try {
      RETVAL = THIS->GetCount();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	XSprePUSH;
	PUSHu((UV)RETVAL );
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsGradientStops_Item); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_Item)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, n");
    {
	wxGraphicsGradientStops *    THIS = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStops" )
;
	wxGraphicsGradientStop *	RETVAL;
	unsigned int    n = (unsigned int)SvUV( ST(1) )
;
    try {
      RETVAL = new wxGraphicsGradientStop( THIS->Item( n ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::GraphicsGradientStop" );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsGradientStop", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsGradientStops_SetStartColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_SetStartColour)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, col");
    {
	wxGraphicsGradientStops *    THIS = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStops" )
;
	wxColour    col = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
    try {
      THIS->SetStartColour( col );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsGradientStops_GetStartColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_GetStartColour)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsGradientStops *    THIS = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStops" )
;
	wxColour *	RETVAL;
    try {
      RETVAL = new wxColour( THIS->GetStartColour() );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsGradientStops_SetEndColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_SetEndColour)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, col");
    {
	wxGraphicsGradientStops *    THIS = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStops" )
;
	wxColour    col = *(wxColour *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Colour" )
;
    try {
      THIS->SetEndColour( col );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsGradientStops_GetEndColour); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_GetEndColour)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsGradientStops *    THIS = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStops" )
;
	wxColour *	RETVAL;
    try {
      RETVAL = new wxColour( THIS->GetEndColour() );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Colour" );
    wxPli_thread_sv_register( aTHX_ "Wx::Colour", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#include "cpp/overload.h"
#if defined( XSpp_58ed16aa_094864 )
#define XSubPPtmpAADU 1


XS_EUPXS(XS_Wx__GraphicsGradientStops_Add); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsGradientStops_Add)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxGraphicsGradientStops *    THIS = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsGradientStops" )
;
#if defined( XSpp_58ed16aa_094864 )
    static const char *AddStop_types[] = { "Wx::GraphicsGradientStop" };
    static wxPliPrototype AddStop_proto( AddStop_types, sizeof( AddStop_types ) / sizeof( AddStop_types[0] ) );
#endif // defined( XSpp_58ed16aa_094864 )
#if defined( XSpp_58ed16aa_094864 )
    static const char *AddColour_types[] = { "Wx::Colour", wxPliOvlnum };
    static wxPliPrototype AddColour_proto( AddColour_types, sizeof( AddColour_types ) / sizeof( AddColour_types[0] ) );
#endif // defined( XSpp_58ed16aa_094864 )
    static wxPliPrototype *wxPliOvl_all_prototypes[] = {
#if defined( XSpp_58ed16aa_094864 )
        &AddStop_proto,
#endif // defined( XSpp_58ed16aa_094864 )
#if defined( XSpp_58ed16aa_094864 )
        &AddColour_proto,
#endif // defined( XSpp_58ed16aa_094864 )
        NULL };
    BEGIN_OVERLOAD()
#if defined( XSpp_58ed16aa_094864 )
        MATCH_REDISP_COUNT( AddStop_proto, AddStop, 1 )
#endif // defined( XSpp_58ed16aa_094864 )
#if defined( XSpp_58ed16aa_094864 )
        MATCH_REDISP_COUNT( AddColour_proto, AddColour, 2 )
#endif // defined( XSpp_58ed16aa_094864 )
    END_OVERLOAD_MESSAGE( Wx::GraphicsGradientStops::Add, wxPliOvl_all_prototypes )
	PUTBACK;
	return;
    }
}

#endif // defined( XSpp_58ed16aa_094864 )
#endif
#define XSubPPtmpAADV 1


XS_EUPXS(XS_Wx__GraphicsRenderer_GetDefaultRenderer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_GetDefaultRenderer)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {
	wxGraphicsRenderer *	RETVAL;
    RETVAL = wxGraphicsRenderer::GetDefaultRenderer();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateContext); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateContext)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wwin, CreateFromWindow )   
#if defined(__WXMSW__) || WXPERL_W_VERSION_GE( 2, 9, 0 )       
        MATCH_REDISP( wxPliOvl_wmdc, CreateFromMemoryDC)
#endif     
#if wxPERL_USE_PRINTING_ARCHITECTURE && WXPERL_W_VERSION_GE( 2, 9, 0 )     
        MATCH_REDISP( wxPliOvl_wpdc, CreateFromPrinterDC)
#endif                  
        MATCH_REDISP( wxPliOvl_wwdc, CreateFromWindowDC )
    END_OVERLOAD( "Wx::GraphicsRenderer::CreateContext" )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateFromWindowDC); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateFromWindowDC)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, dc");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsContext *	RETVAL;
	wxWindowDC*    dc = (wxWindowDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::WindowDC" )
;
    try {
      RETVAL = THIS->CreateContext( *( dc ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateFromWindow); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateFromWindow)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, window");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsContext *	RETVAL;
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Window" )
;
    try {
      RETVAL = THIS->CreateContext( window );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if defined(__WXMSW__) || WXPERL_W_VERSION_GE( 2, 9, 0 )           
#define XSpp_58ed16aa_003633
#define XSubPPtmpAADW 1


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateFromMemoryDC); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateFromMemoryDC)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, dc");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsContext *	RETVAL;
	wxMemoryDC*    dc = (wxMemoryDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::MemoryDC" )
;
    try {
      RETVAL = THIS->CreateContext( *( dc ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif
#if wxPERL_USE_PRINTING_ARCHITECTURE && WXPERL_W_VERSION_GE( 2, 9, 0 )     
#define XSpp_58ed16aa_083083
#define XSubPPtmpAADX 1


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateFromPrinterDC); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateFromPrinterDC)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, dc");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsContext *	RETVAL;
	wxPrinterDC*    dc = (wxPrinterDC *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::PrinterDC" )
;
    try {
      RETVAL = THIS->CreateContext( *( dc ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__GraphicsRenderer_CreateMeasuringContext); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateMeasuringContext)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsContext *	RETVAL;
    try {
      RETVAL = THIS->CreateMeasuringContext();
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsRenderer_CreatePath); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreatePath)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsPath *	RETVAL;
    try {
      RETVAL = new wxGraphicsPath( THIS->CreatePath() );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsPath", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateMatrix); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateMatrix)
{
    dVAR; dXSARGS;
    if (items < 1 || items > 7)
       croak_xs_usage(cv,  "THIS, a= 1.0, b= 0.0, c= 0.0, d= 1.0, tx= 0.0, ty= 0.0");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsMatrix *	RETVAL;
	wxDouble	a;
	wxDouble	b;
	wxDouble	c;
	wxDouble	d;
	wxDouble	tx;
	wxDouble	ty;

	if (items < 2)
	    a = 1.0;
	else {
	    a = (double)SvNV(ST(1))
;
	}

	if (items < 3)
	    b = 0.0;
	else {
	    b = (double)SvNV(ST(2))
;
	}

	if (items < 4)
	    c = 0.0;
	else {
	    c = (double)SvNV(ST(3))
;
	}

	if (items < 5)
	    d = 1.0;
	else {
	    d = (double)SvNV(ST(4))
;
	}

	if (items < 6)
	    tx = 0.0;
	else {
	    tx = (double)SvNV(ST(5))
;
	}

	if (items < 7)
	    ty = 0.0;
	else {
	    ty = (double)SvNV(ST(6))
;
	}
    try {
      RETVAL = new wxGraphicsMatrix( THIS->CreateMatrix( a, b, c, d, tx, ty ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsMatrix", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsRenderer_CreatePen); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreatePen)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, pen");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsPen *	RETVAL;
	wxPen*    pen = (wxPen *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Pen" )
;
    try {
      RETVAL = new wxGraphicsPen( THIS->CreatePen( *( pen ) ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsPen", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateBrush); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateBrush)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, brush");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsBrush *	RETVAL;
	wxBrush*    brush = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Brush" )
;
    try {
      RETVAL = new wxGraphicsBrush( THIS->CreateBrush( *( brush ) ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsBrush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if WXPERL_W_VERSION_LT( 2, 9, 1 )
#define XSpp_58ed16aa_067960
#define XSubPPtmpAADY 1


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateLinearGradientBrush0); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateLinearGradientBrush0)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "THIS, x1, y1, x2, y2, c1, c2");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsBrush *	RETVAL;
	wxDouble	x1 = (double)SvNV(ST(1))
;
	wxDouble	y1 = (double)SvNV(ST(2))
;
	wxDouble	x2 = (double)SvNV(ST(3))
;
	wxDouble	y2 = (double)SvNV(ST(4))
;
	wxColour*    c1 = (wxColour *) wxPli_sv_2_object( aTHX_ ST(5), "Wx::Colour" )
;
	wxColour*    c2 = (wxColour *) wxPli_sv_2_object( aTHX_ ST(6), "Wx::Colour" )
;
    try {
      RETVAL = new wxGraphicsBrush( THIS->CreateLinearGradientBrush( x1, y1, x2, y2, *( c1 ), *( c2 ) ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsBrush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateRadialGradientBrush0); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateRadialGradientBrush0)
{
    dVAR; dXSARGS;
    if (items != 8)
       croak_xs_usage(cv,  "THIS, xo, yo, xc, yc, radius, oColor, cColor");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsBrush *	RETVAL;
	wxDouble	xo = (double)SvNV(ST(1))
;
	wxDouble	yo = (double)SvNV(ST(2))
;
	wxDouble	xc = (double)SvNV(ST(3))
;
	wxDouble	yc = (double)SvNV(ST(4))
;
	wxDouble	radius = (double)SvNV(ST(5))
;
	wxColour*    oColor = (wxColour *) wxPli_sv_2_object( aTHX_ ST(6), "Wx::Colour" )
;
	wxColour*    cColor = (wxColour *) wxPli_sv_2_object( aTHX_ ST(7), "Wx::Colour" )
;
    try {
      RETVAL = new wxGraphicsBrush( THIS->CreateRadialGradientBrush( xo, yo, xc, yc, radius, *( oColor ), *( cColor ) ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsBrush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#else
#define XSpp_58ed16aa_051232
#define XSubPPtmpAADZ 1


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateLinearGradientBrush1); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateLinearGradientBrush1)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "THIS, x1, y1, x2, y2, stops");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsBrush *	RETVAL;
	wxDouble	x1 = (double)SvNV(ST(1))
;
	wxDouble	y1 = (double)SvNV(ST(2))
;
	wxDouble	x2 = (double)SvNV(ST(3))
;
	wxDouble	y2 = (double)SvNV(ST(4))
;
	wxGraphicsGradientStops*    stops = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(5), "Wx::GraphicsGradientStops" )
;
    try {
      RETVAL = new wxGraphicsBrush( THIS->CreateLinearGradientBrush( x1, y1, x2, y2, *( stops ) ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsBrush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateRadialGradientBrush1); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateRadialGradientBrush1)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "THIS, xo, yo, xc, yc, radius, stops");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsBrush *	RETVAL;
	wxDouble	xo = (double)SvNV(ST(1))
;
	wxDouble	yo = (double)SvNV(ST(2))
;
	wxDouble	xc = (double)SvNV(ST(3))
;
	wxDouble	yc = (double)SvNV(ST(4))
;
	wxDouble	radius = (double)SvNV(ST(5))
;
	wxGraphicsGradientStops*    stops = (wxGraphicsGradientStops *) wxPli_sv_2_object( aTHX_ ST(6), "Wx::GraphicsGradientStops" )
;
    try {
      RETVAL = new wxGraphicsBrush( THIS->CreateRadialGradientBrush( xo, yo, xc, yc, radius, *( stops ) ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsBrush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif
#define wxBLACKPtr (wxColour*)wxBLACK

XS_EUPXS(XS_Wx__GraphicsRenderer_CreateFont); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateFont)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, font, col= wxBLACKPtr");
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
	wxGraphicsFont *	RETVAL;
	wxFont*    font = (wxFont *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Font" )
;
	wxColour*	col;

	if (items < 3)
	    col = wxBLACKPtr;
	else {
    col = (wxColour *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Colour" )
;
	}
    try {
      RETVAL = new wxGraphicsFont( THIS->CreateFont( *( font ), *( col ) ) );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsFont", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#include "cpp/overload.h"
#if defined( XSpp_58ed16aa_012430 )
#define XSubPPtmpAAEA 1


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateRadialGradientBrush); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateRadialGradientBrush)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
#if defined( XSpp_58ed16aa_067960 )
    static const char *CreateRadialGradientBrush0_types[] = { "Wx::Double", "Wx::Double", "Wx::Double", "Wx::Double", "Wx::Double", "Wx::Colour", "Wx::Colour" };
    static wxPliPrototype CreateRadialGradientBrush0_proto( CreateRadialGradientBrush0_types, sizeof( CreateRadialGradientBrush0_types ) / sizeof( CreateRadialGradientBrush0_types[0] ) );
#endif // defined( XSpp_58ed16aa_067960 )
#if defined( XSpp_58ed16aa_051232 )
    static const char *CreateRadialGradientBrush1_types[] = { "Wx::Double", "Wx::Double", "Wx::Double", "Wx::Double", "Wx::Double", "Wx::GraphicsGradientStops" };
    static wxPliPrototype CreateRadialGradientBrush1_proto( CreateRadialGradientBrush1_types, sizeof( CreateRadialGradientBrush1_types ) / sizeof( CreateRadialGradientBrush1_types[0] ) );
#endif // defined( XSpp_58ed16aa_051232 )
    static wxPliPrototype *wxPliOvl_all_prototypes[] = {
#if defined( XSpp_58ed16aa_067960 )
        &CreateRadialGradientBrush0_proto,
#endif // defined( XSpp_58ed16aa_067960 )
#if defined( XSpp_58ed16aa_051232 )
        &CreateRadialGradientBrush1_proto,
#endif // defined( XSpp_58ed16aa_051232 )
        NULL };
    BEGIN_OVERLOAD()
#if defined( XSpp_58ed16aa_067960 )
        MATCH_REDISP_COUNT( CreateRadialGradientBrush0_proto, CreateRadialGradientBrush0, 7 )
#endif // defined( XSpp_58ed16aa_067960 )
#if defined( XSpp_58ed16aa_051232 )
        MATCH_REDISP_COUNT( CreateRadialGradientBrush1_proto, CreateRadialGradientBrush1, 6 )
#endif // defined( XSpp_58ed16aa_051232 )
    END_OVERLOAD_MESSAGE( Wx::GraphicsRenderer::CreateRadialGradientBrush, wxPliOvl_all_prototypes )
	PUTBACK;
	return;
    }
}

#endif // defined( XSpp_58ed16aa_012430 )
#if defined( XSpp_58ed16aa_012430 )
#define XSubPPtmpAAEB 1


XS_EUPXS(XS_Wx__GraphicsRenderer_CreateLinearGradientBrush); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsRenderer_CreateLinearGradientBrush)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxGraphicsRenderer *    THIS = (wxGraphicsRenderer *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsRenderer" )
;
#if defined( XSpp_58ed16aa_067960 )
    static const char *CreateLinearGradientBrush0_types[] = { "Wx::Double", "Wx::Double", "Wx::Double", "Wx::Double", "Wx::Colour", "Wx::Colour" };
    static wxPliPrototype CreateLinearGradientBrush0_proto( CreateLinearGradientBrush0_types, sizeof( CreateLinearGradientBrush0_types ) / sizeof( CreateLinearGradientBrush0_types[0] ) );
#endif // defined( XSpp_58ed16aa_067960 )
#if defined( XSpp_58ed16aa_051232 )
    static const char *CreateLinearGradientBrush1_types[] = { "Wx::Double", "Wx::Double", "Wx::Double", "Wx::Double", "Wx::GraphicsGradientStops" };
    static wxPliPrototype CreateLinearGradientBrush1_proto( CreateLinearGradientBrush1_types, sizeof( CreateLinearGradientBrush1_types ) / sizeof( CreateLinearGradientBrush1_types[0] ) );
#endif // defined( XSpp_58ed16aa_051232 )
    static wxPliPrototype *wxPliOvl_all_prototypes[] = {
#if defined( XSpp_58ed16aa_067960 )
        &CreateLinearGradientBrush0_proto,
#endif // defined( XSpp_58ed16aa_067960 )
#if defined( XSpp_58ed16aa_051232 )
        &CreateLinearGradientBrush1_proto,
#endif // defined( XSpp_58ed16aa_051232 )
        NULL };
    BEGIN_OVERLOAD()
#if defined( XSpp_58ed16aa_067960 )
        MATCH_REDISP_COUNT( CreateLinearGradientBrush0_proto, CreateLinearGradientBrush0, 6 )
#endif // defined( XSpp_58ed16aa_067960 )
#if defined( XSpp_58ed16aa_051232 )
        MATCH_REDISP_COUNT( CreateLinearGradientBrush1_proto, CreateLinearGradientBrush1, 5 )
#endif // defined( XSpp_58ed16aa_051232 )
    END_OVERLOAD_MESSAGE( Wx::GraphicsRenderer::CreateLinearGradientBrush, wxPliOvl_all_prototypes )
	PUTBACK;
	return;
    }
}

#endif // defined( XSpp_58ed16aa_012430 )
#endif

/* INCLUDE: Returning to 'XS/GraphicsObject.xs' from '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/GraphicsRenderer.xsp' */

#if wxUSE_GRAPHICS_CONTEXT
#include <wx/graphics.h>
#define XSubPPtmpAAEC 1


XS_EUPXS(XS_Wx__GraphicsObject_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsObject_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsObject_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsObject_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsObject *    THIS = (wxGraphicsObject *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsObject" )
;
    wxPli_thread_sv_unregister( aTHX_ wxPli_get_class( aTHX_ ST(0) ),
                                THIS, ST(0) );
    delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsObject_GetRenderer); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsObject_GetRenderer)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsObject *    THIS = (wxGraphicsObject *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsObject" )
;
	wxGraphicsRenderer *	RETVAL;

	RETVAL = THIS->GetRenderer();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsObject_IsNull); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsObject_IsNull)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsObject *    THIS = (wxGraphicsObject *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsObject" )
;
	bool	RETVAL;

	RETVAL = THIS->IsNull();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}

#endif

/* INCLUDE: Returning to 'XS/GraphicsMatrix.xs' from 'XS/GraphicsObject.xs' */

#if wxUSE_GRAPHICS_CONTEXT
#include <wx/graphics.h>
#define XSubPPtmpAAED 1


XS_EUPXS(XS_Wx__GraphicsMatrix_Concat); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_Concat)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, t");
    {
	wxGraphicsMatrix*    t = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsMatrix" )
;
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;

	THIS->Concat(t);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsMatrix_Get); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_Get)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    wxDouble a, b, c, d, tx, ty;
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;
    THIS->Get( &a, &b, &c, &d, &tx, &ty );
    EXTEND( SP, 6 );
    PUSHs( sv_2mortal( newSVnv( a ) ) );
    PUSHs( sv_2mortal( newSVnv( b ) ) );
    PUSHs( sv_2mortal( newSVnv( c ) ) );
    PUSHs( sv_2mortal( newSVnv( d ) ) );
    PUSHs( sv_2mortal( newSVnv( tx ) ) );
    PUSHs( sv_2mortal( newSVnv( ty ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsMatrix_Invert); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_Invert)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;

	THIS->Invert();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsMatrix_IsEqual); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_IsEqual)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, t");
    {
	wxGraphicsMatrix*    t = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsMatrix" )
;
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;
	bool	RETVAL;

	RETVAL = THIS->IsEqual(*t);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsMatrix_IsIdentity); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_IsIdentity)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;
	bool	RETVAL;

	RETVAL = THIS->IsIdentity();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsMatrix_Rotate); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_Rotate)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, angle");
    {
	wxDouble	angle = (double)SvNV(ST(1))
;
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;

	THIS->Rotate(angle);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsMatrix_Scale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_Scale)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, xScale, yScale");
    {
	wxDouble	xScale = (double)SvNV(ST(1))
;
	wxDouble	yScale = (double)SvNV(ST(2))
;
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;

	THIS->Scale(xScale, yScale);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsMatrix_Translate); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_Translate)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, dx, dy");
    {
	wxDouble	dx = (double)SvNV(ST(1))
;
	wxDouble	dy = (double)SvNV(ST(2))
;
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;

	THIS->Translate(dx, dy);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsMatrix_Set); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_Set)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "THIS, a, b, c, d, tx, ty");
    {
	wxDouble	a = (double)SvNV(ST(1))
;
	wxDouble	b = (double)SvNV(ST(2))
;
	wxDouble	c = (double)SvNV(ST(3))
;
	wxDouble	d = (double)SvNV(ST(4))
;
	wxDouble	tx = (double)SvNV(ST(5))
;
	wxDouble	ty = (double)SvNV(ST(6))
;
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;

	THIS->Set(a, b, c, d, tx, ty);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsMatrix_TransformPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_TransformPoint)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
    wxDouble x_out, y_out;
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;
    x_out = x;
    y_out = y;
    THIS->TransformPoint( &x, &y );
    EXTEND( SP, 2 );
    PUSHs( sv_2mortal( newSVnv( x ) ) );
    PUSHs( sv_2mortal( newSVnv( y ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsMatrix_TransformDistance); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsMatrix_TransformDistance)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, dx, dy");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxDouble	dx = (double)SvNV(ST(1))
;
	wxDouble	dy = (double)SvNV(ST(2))
;
    wxDouble dx_out, dy_out;
	wxGraphicsMatrix *    THIS = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsMatrix" )
;
    dx_out = dx;
    dy_out = dy;
    THIS->TransformDistance( &dx, &dy );
    EXTEND( SP, 2 );
    PUSHs( sv_2mortal( newSVnv( dx ) ) );
    PUSHs( sv_2mortal( newSVnv( dy ) ) );
	PUTBACK;
	return;
    }
}

#endif

/* INCLUDE: Returning to 'XS/GraphicsPath.xs' from 'XS/GraphicsMatrix.xs' */

#if wxUSE_GRAPHICS_CONTEXT
#include <wx/graphics.h>
#define XSubPPtmpAAEE 1


XS_EUPXS(XS_Wx__GraphicsPath_MoveToPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_MoveToPoint)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->MoveToPoint(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_AddArc); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_AddArc)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "THIS, x, y, r, startAngle, endAngle, clockwise");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxDouble	r = (double)SvNV(ST(3))
;
	wxDouble	startAngle = (double)SvNV(ST(4))
;
	wxDouble	endAngle = (double)SvNV(ST(5))
;
	bool	clockwise = (bool)SvTRUE(ST(6))
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->AddArc(x, y, r, startAngle, endAngle, clockwise);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_AddArcToPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_AddArcToPoint)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "THIS, x1, y1, x2, y2, r");
    {
	wxDouble	x1 = (double)SvNV(ST(1))
;
	wxDouble	y1 = (double)SvNV(ST(2))
;
	wxDouble	x2 = (double)SvNV(ST(3))
;
	wxDouble	y2 = (double)SvNV(ST(4))
;
	wxDouble	r = (double)SvNV(ST(5))
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->AddArcToPoint(x1, y1, x2, y2, r);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_AddCircle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_AddCircle)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, x, y, r");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxDouble	r = (double)SvNV(ST(3))
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->AddCircle(x, y, r);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_AddCurveToPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_AddCurveToPoint)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "THIS, cx1, cy1, cx2, cy2, x, y");
    {
	wxDouble	cx1 = (double)SvNV(ST(1))
;
	wxDouble	cy1 = (double)SvNV(ST(2))
;
	wxDouble	cx2 = (double)SvNV(ST(3))
;
	wxDouble	cy2 = (double)SvNV(ST(4))
;
	wxDouble	x = (double)SvNV(ST(5))
;
	wxDouble	y = (double)SvNV(ST(6))
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->AddCurveToPoint(cx1, cy1, cx2, cy2, x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_AddEllipse); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_AddEllipse)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x, y, w, h");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxDouble	w = (double)SvNV(ST(3))
;
	wxDouble	h = (double)SvNV(ST(4))
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->AddEllipse(x, y, w, h);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_AddLineToPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_AddLineToPoint)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->AddLineToPoint(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_AddPath); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_AddPath)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, path");
    {
	wxGraphicsPath*    path = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsPath" )
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;
    THIS->AddPath(*path);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_AddQuadCurveToPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_AddQuadCurveToPoint)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, cx, cy, x, y");
    {
	wxDouble	cx = (double)SvNV(ST(1))
;
	wxDouble	cy = (double)SvNV(ST(2))
;
	wxDouble	x = (double)SvNV(ST(3))
;
	wxDouble	y = (double)SvNV(ST(4))
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->AddQuadCurveToPoint(cx, cy, x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_AddRectangle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_AddRectangle)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x, y, w, h");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxDouble	w = (double)SvNV(ST(3))
;
	wxDouble	h = (double)SvNV(ST(4))
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->AddRectangle(x, y, w, h);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_AddRoundedRectangle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_AddRoundedRectangle)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "THIS, x, y, w, h, radius");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxDouble	w = (double)SvNV(ST(3))
;
	wxDouble	h = (double)SvNV(ST(4))
;
	wxDouble	radius = (double)SvNV(ST(5))
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->AddRoundedRectangle(x, y, w, h, radius);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_CloseSubpath); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_CloseSubpath)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;

	THIS->CloseSubpath();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsPath_Contains); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_Contains)
{
    dVAR; dXSARGS;
    if (items < 3 || items > 4)
       croak_xs_usage(cv,  "THIS, x, y, fillStyle = wxODDEVEN_RULE");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxPolygonFillMode	fillStyle;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;
	bool	RETVAL;

	if (items < 4)
	    fillStyle = wxODDEVEN_RULE;
	else {
	    fillStyle = (wxPolygonFillMode)SvIV(ST(3))
;
	}

	RETVAL = THIS->Contains(x, y, fillStyle);
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsPath_GetBox); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_GetBox)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    wxDouble x, y, w, h;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;
    THIS->GetBox( &x, &y, &w, &h );
    EXTEND( SP, 4 );
    PUSHs( sv_2mortal( newSVnv( x ) ) );
    PUSHs( sv_2mortal( newSVnv( y ) ) );
    PUSHs( sv_2mortal( newSVnv( w ) ) );
    PUSHs( sv_2mortal( newSVnv( h ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsPath_GetCurrentPoint); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_GetCurrentPoint)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    wxDouble x, y;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;
    THIS->GetCurrentPoint( &x, &y );
    EXTEND( SP, 2 );
    PUSHs( sv_2mortal( newSVnv( x ) ) );
    PUSHs( sv_2mortal( newSVnv( y ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsPath_Transform); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsPath_Transform)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, matrix");
    {
	wxGraphicsMatrix*    matrix = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsMatrix" )
;
	wxGraphicsPath *    THIS = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsPath" )
;
    THIS->Transform( *matrix );
    }
    XSRETURN_EMPTY;
}

#endif

/* INCLUDE: Returning to 'XS/GraphicsContext.xs' from 'XS/GraphicsPath.xs' */

#if wxUSE_GRAPHICS_CONTEXT
#include <wx/graphics.h>
#include <wx/window.h>
#include "cpp/streams.h"
#include "cpp/overload.h"
#define XSubPPtmpAAEF 1


XS_EUPXS(XS_Wx__GraphicsContext_CLONE); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_CLONE)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "CLASS");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
    wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_DESTROY); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DESTROY)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    wxPli_thread_sv_unregister( aTHX_ wxPli_get_class( aTHX_ ST(0) ), THIS, ST(0) );
    if( wxPli_object_is_deleteable( aTHX_ ST(0) ) )
       delete THIS;
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_Create); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_Create)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
        MATCH_VOIDM_REDISP_FUNCTION( Wx::GraphicsContext::createMeasuringContext )
        MATCH_REDISP_FUNCTION(wxPliOvl_wwin, Wx::GraphicsContext::createFromWindow)
#if defined(__WXMSW__) || WXPERL_W_VERSION_GE( 2, 9, 0 )       
        MATCH_REDISP_FUNCTION(wxPliOvl_wmdc, Wx::GraphicsContext::createFromMemoryDC)
#endif     
#if wxPERL_USE_PRINTING_ARCHITECTURE && WXPERL_W_VERSION_GE( 2, 9, 0 )     
        MATCH_REDISP_FUNCTION(wxPliOvl_wpdc, Wx::GraphicsContext::createFromPrinterDC)
#endif  
        MATCH_REDISP_FUNCTION(wxPliOvl_wwdc, Wx::GraphicsContext::createFromWindowDC)
    END_OVERLOAD( "Wx::GraphicsContext::Create" )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsContext_createFromWindow); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_createFromWindow)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "window");
    {
	wxWindow*    window = (wxWindow *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::Window" )
;
	wxGraphicsContext *	RETVAL;
    RETVAL = wxGraphicsContext::Create( window );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsContext_createFromWindowDC); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_createFromWindowDC)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "dc");
    {
	wxWindowDC*    dc = (wxWindowDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::WindowDC" )
;
	wxGraphicsContext *	RETVAL;
    RETVAL = wxGraphicsContext::Create(*dc);
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#if wxPERL_USE_PRINTING_ARCHITECTURE && WXPERL_W_VERSION_GE( 2, 9, 0 )
#define XSubPPtmpAAEG 1


XS_EUPXS(XS_Wx__GraphicsContext_createFromPrinterDC); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_createFromPrinterDC)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "dc");
    {
	wxPrinterDC*    dc = (wxPrinterDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::PrinterDC" )
;
	wxGraphicsContext *	RETVAL;
    RETVAL = wxGraphicsContext::Create(*dc);
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif
#if defined(__WXMSW__) || WXPERL_W_VERSION_GE( 2, 9, 0 )     
#define XSubPPtmpAAEH 1


XS_EUPXS(XS_Wx__GraphicsContext_createFromMemoryDC); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_createFromMemoryDC)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "dc");
    {
	wxMemoryDC*    dc = (wxMemoryDC *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::MemoryDC" )
;
	wxGraphicsContext *	RETVAL;
    RETVAL = wxGraphicsContext::Create(*dc);
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#endif

XS_EUPXS(XS_Wx__GraphicsContext_createMeasuringContext); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_createMeasuringContext)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {
	wxGraphicsContext *	RETVAL;
    RETVAL = wxGraphicsContext::Create();
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsContext", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsContext_CreatePen); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_CreatePen)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, pen");
    {
	wxPen*    pen = (wxPen *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Pen" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
	wxGraphicsPen *	RETVAL;
    RETVAL = new wxGraphicsPen( THIS->CreatePen(*pen) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsPen", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsContext_CreateBrush); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_CreateBrush)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, brush");
    {
	wxBrush*    brush = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Brush" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
	wxGraphicsBrush *	RETVAL;
    RETVAL = new wxGraphicsBrush( THIS->CreateBrush(*brush) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsBrush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsContext_CreateRadialGradientBrush); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_CreateRadialGradientBrush)
{
    dVAR; dXSARGS;
    if (items != 8)
       croak_xs_usage(cv,  "THIS, xo, yo, xc, yc, radius, oColor, cColor");
    {
	wxDouble	xo = (double)SvNV(ST(1))
;
	wxDouble	yo = (double)SvNV(ST(2))
;
	wxDouble	xc = (double)SvNV(ST(3))
;
	wxDouble	yc = (double)SvNV(ST(4))
;
	wxDouble	radius = (double)SvNV(ST(5))
;
	wxColour*    oColor = (wxColour *) wxPli_sv_2_object( aTHX_ ST(6), "Wx::Colour" )
;
	wxColour*    cColor = (wxColour *) wxPli_sv_2_object( aTHX_ ST(7), "Wx::Colour" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
	wxGraphicsBrush *	RETVAL;
    RETVAL = new wxGraphicsBrush( THIS->CreateRadialGradientBrush(xo,yo,xc,yc,radius,*oColor,*cColor) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsBrush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsContext_CreateLinearGradientBrush); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_CreateLinearGradientBrush)
{
    dVAR; dXSARGS;
    if (items != 7)
       croak_xs_usage(cv,  "THIS, x1, y1, x2, y2, c1, c2");
    {
	wxDouble	x1 = (double)SvNV(ST(1))
;
	wxDouble	y1 = (double)SvNV(ST(2))
;
	wxDouble	x2 = (double)SvNV(ST(3))
;
	wxDouble	y2 = (double)SvNV(ST(4))
;
	wxColour*    c1 = (wxColour *) wxPli_sv_2_object( aTHX_ ST(5), "Wx::Colour" )
;
	wxColour*    c2 = (wxColour *) wxPli_sv_2_object( aTHX_ ST(6), "Wx::Colour" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
	wxGraphicsBrush *	RETVAL;
    RETVAL = new wxGraphicsBrush( THIS->CreateLinearGradientBrush(x1,y1,x2,y2,*c1,*c2) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsBrush", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsContext_CreateFont); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_CreateFont)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, font, col = (wxColour*)wxBLACK");
    {
	wxFont*    font = (wxFont *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Font" )
;
	wxColour*	col;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
	wxGraphicsFont *	RETVAL;

	if (items < 3)
	    col = (wxColour*)wxBLACK;
	else {
    col = (wxColour *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Colour" )
;
	}
    RETVAL = new wxGraphicsFont( THIS->CreateFont(*font, *col) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsFont", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsContext_CreateMatrix); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_CreateMatrix)
{
    dVAR; dXSARGS;
    if (items < 1 || items > 7)
       croak_xs_usage(cv,  "THIS, a = 1.0, b = 0.0, c = 0.0, d = 1.0, tx = 0.0, ty = 0.0");
    {
	wxDouble	a;
	wxDouble	b;
	wxDouble	c;
	wxDouble	d;
	wxDouble	tx;
	wxDouble	ty;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
	wxGraphicsMatrix *	RETVAL;

	if (items < 2)
	    a = 1.0;
	else {
	    a = (double)SvNV(ST(1))
;
	}

	if (items < 3)
	    b = 0.0;
	else {
	    b = (double)SvNV(ST(2))
;
	}

	if (items < 4)
	    c = 0.0;
	else {
	    c = (double)SvNV(ST(3))
;
	}

	if (items < 5)
	    d = 1.0;
	else {
	    d = (double)SvNV(ST(4))
;
	}

	if (items < 6)
	    tx = 0.0;
	else {
	    tx = (double)SvNV(ST(5))
;
	}

	if (items < 7)
	    ty = 0.0;
	else {
	    ty = (double)SvNV(ST(6))
;
	}
    RETVAL = new wxGraphicsMatrix( THIS->CreateMatrix(a,b,c,d,tx,ty) );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsMatrix", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsContext_CreatePath); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_CreatePath)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
	wxGraphicsPath *	RETVAL;
      RETVAL = new wxGraphicsPath( THIS->CreatePath() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsPath", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsContext_Clip); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_Clip)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
        MATCH_REDISP(wxPliOvl_n_n_n_n, ClipXYWH)
        MATCH_REDISP(wxPliOvl_wreg, ClipRegion)
    END_OVERLOAD( "Wx::GraphicsContext::Clip" )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsContext_ClipXYWH); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_ClipXYWH)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x, y, w, h");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxDouble	w = (double)SvNV(ST(3))
;
	wxDouble	h = (double)SvNV(ST(4))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->Clip (x, y, w, h);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_ClipRegion); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_ClipRegion)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, region");
    {
	wxRegion*    region = (wxRegion *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Region" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->Clip (*region);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_ResetClip); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_ResetClip)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	THIS->ResetClip();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_DrawBitmap); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DrawBitmap)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "THIS, bitmap, x, y, w, h");
    {
	wxBitmap*    bitmap = (wxBitmap *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Bitmap" )
;
	wxDouble	x = (double)SvNV(ST(2))
;
	wxDouble	y = (double)SvNV(ST(3))
;
	wxDouble	w = (double)SvNV(ST(4))
;
	wxDouble	h = (double)SvNV(ST(5))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->DrawBitmap( *bitmap, x, y, w, h );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_DrawEllipse); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DrawEllipse)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x, y, w, h");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxDouble	w = (double)SvNV(ST(3))
;
	wxDouble	h = (double)SvNV(ST(4))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	THIS->DrawEllipse(x, y, w, h);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_DrawIcon); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DrawIcon)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "THIS, icon, x, y, w, h");
    {
	wxIcon*    icon = (wxIcon *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Icon" )
;
	wxDouble	x = (double)SvNV(ST(2))
;
	wxDouble	y = (double)SvNV(ST(3))
;
	wxDouble	w = (double)SvNV(ST(4))
;
	wxDouble	h = (double)SvNV(ST(5))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->DrawIcon( *icon, x, y, w, h );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_DrawLines); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DrawLines)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, points, fillStyle = wxODDEVEN_RULE");
    {
	SV*	points = ST(1)
;
	wxPolygonFillMode	fillStyle;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	if (items < 3)
	    fillStyle = wxODDEVEN_RULE;
	else {
	    fillStyle = (wxPolygonFillMode)SvIV(ST(2))
;
	}
    wxPliArrayGuard<wxPoint2DDouble> newPoints;
    int n = wxPli_av_2_point2ddoublearray(aTHX_ points, newPoints.lvalue());
    THIS->DrawLines(n,newPoints);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_DrawPath); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DrawPath)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, path, fillStyle = wxODDEVEN_RULE");
    {
	wxGraphicsPath *    path = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsPath" )
;
	wxPolygonFillMode	fillStyle;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	if (items < 3)
	    fillStyle = wxODDEVEN_RULE;
	else {
	    fillStyle = (wxPolygonFillMode)SvIV(ST(2))
;
	}
    THIS->DrawPath( *path, fillStyle );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_DrawRectangle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DrawRectangle)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x, y, w, h");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxDouble	w = (double)SvNV(ST(3))
;
	wxDouble	h = (double)SvNV(ST(4))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	THIS->DrawRectangle(x, y, w, h);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_DrawRoundedRectangle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DrawRoundedRectangle)
{
    dVAR; dXSARGS;
    if (items != 6)
       croak_xs_usage(cv,  "THIS, x, y, w, h, radius");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxDouble	w = (double)SvNV(ST(3))
;
	wxDouble	h = (double)SvNV(ST(4))
;
	wxDouble	radius = (double)SvNV(ST(5))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	THIS->DrawRoundedRectangle(x, y, w, h, radius);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_DrawText); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DrawText)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    BEGIN_OVERLOAD()
      MATCH_REDISP(wxPliOvl_s_n_n_n, DrawTextAngle)
      MATCH_REDISP(wxPliOvl_s_n_n, DrawTextNoAngle)
    END_OVERLOAD( "Wx::GraphicsContext::DrawText" )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsContext_DrawTextAngle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DrawTextAngle)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, string, x, y, angle");
    {
	wxString	string;
	wxDouble	x = (double)SvNV(ST(2))
;
	wxDouble	y = (double)SvNV(ST(3))
;
	wxDouble	angle = (double)SvNV(ST(4))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

    WXSTRING_INPUT( string, wxString, ST(1) )
;
    THIS->DrawText(string,x,y,angle);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_DrawTextNoAngle); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_DrawTextNoAngle)
{
    dVAR; dXSARGS;
    if (items != 4)
       croak_xs_usage(cv,  "THIS, string, x, y");
    {
	wxString	string;
	wxDouble	x = (double)SvNV(ST(2))
;
	wxDouble	y = (double)SvNV(ST(3))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

    WXSTRING_INPUT( string, wxString, ST(1) )
;
    THIS->DrawText(string,x,y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_FillPath); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_FillPath)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 3)
       croak_xs_usage(cv,  "THIS, path, fillStyle = wxODDEVEN_RULE");
    {
	wxGraphicsPath *    path = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsPath" )
;
	wxPolygonFillMode	fillStyle;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	if (items < 3)
	    fillStyle = wxODDEVEN_RULE;
	else {
	    fillStyle = (wxPolygonFillMode)SvIV(ST(2))
;
	}
    THIS->FillPath ( *path, fillStyle );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_StrokePath); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_StrokePath)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, path");
    {
	wxGraphicsPath *    path = (wxGraphicsPath *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsPath" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->StrokePath ( *path );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_GetTextExtent); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_GetTextExtent)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, string");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxString	string;
    wxDouble x, y, descent, externalLeading;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

    WXSTRING_INPUT( string, wxString, ST(1) )
;
    THIS->GetTextExtent( string, &x, &y, &descent, &externalLeading);
    EXTEND( SP, 4 );
    PUSHs( sv_2mortal( newSVnv( x ) ) );
    PUSHs( sv_2mortal( newSVnv( y ) ) );
    PUSHs( sv_2mortal( newSVnv( descent ) ) );
    PUSHs( sv_2mortal( newSVnv( externalLeading ) ) );
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsContext_GetPartialTextExtents); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_GetPartialTextExtents)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, string");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxString	string;
    wxArrayDouble widths;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

    WXSTRING_INPUT( string, wxString, ST(1) )
;
    THIS->GetPartialTextExtents( string, widths );
    PUTBACK;
    wxPli_doublearray_push( aTHX_ widths );
    SPAGAIN;
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsContext_Rotate); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_Rotate)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, angle");
    {
	wxDouble	angle = (double)SvNV(ST(1))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	THIS->Rotate(angle);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_Scale); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_Scale)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	THIS->Scale(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_Translate); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_Translate)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, x, y");
    {
	wxDouble	x = (double)SvNV(ST(1))
;
	wxDouble	y = (double)SvNV(ST(2))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	THIS->Translate(x, y);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_GetTransform); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_GetTransform)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
	wxGraphicsMatrix *	RETVAL;
    RETVAL = new wxGraphicsMatrix( THIS->GetTransform() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::GraphicsMatrix", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx__GraphicsContext_SetTransform); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_SetTransform)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, matrix");
    {
	wxGraphicsMatrix*    matrix = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsMatrix" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->SetTransform(*matrix);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_ConcatTransform); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_ConcatTransform)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, matrix");
    {
	wxGraphicsMatrix*    matrix = (wxGraphicsMatrix *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsMatrix" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->ConcatTransform(*matrix);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_SetBrush); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_SetBrush)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
        MATCH_REDISP(wxPliOvl_wbru, SetBrushBrush)
        MATCH_REDISP(wxPliOvl_wgbr, SetBrushGraphics)
    END_OVERLOAD( "Wx::GraphicsContext::SetBrush" )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsContext_SetBrushBrush); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_SetBrushBrush)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, brush");
    {
	wxBrush*    brush = (wxBrush *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Brush" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->SetBrush( *brush );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_SetBrushGraphics); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_SetBrushGraphics)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, brush");
    {
	wxGraphicsBrush*    brush = (wxGraphicsBrush *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsBrush" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->SetBrush( *brush );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_SetFont); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_SetFont)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
        MATCH_REDISP(wxPliOvl_wfon_wcol, SetFontFont)
        MATCH_REDISP(wxPliOvl_wgfo, SetFontGraphics)
    END_OVERLOAD( "Wx::GraphicsContext::SetFont" )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsContext_SetFontFont); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_SetFontFont)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, font, colour");
    {
	wxFont*    font = (wxFont *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Font" )
;
	wxColour*    colour = (wxColour *) wxPli_sv_2_object( aTHX_ ST(2), "Wx::Colour" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->SetFont(*font, *colour);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_SetFontGraphics); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_SetFontGraphics)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, font");
    {
	wxGraphicsFont*    font = (wxGraphicsFont *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsFont" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->SetFont(*font);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_SetPen); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_SetPen)
{
    dVAR; dXSARGS;
    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
    BEGIN_OVERLOAD()
        MATCH_REDISP(wxPliOvl_wpen, SetPenPen)
        MATCH_REDISP(wxPliOvl_wgpe, SetPenGraphics)
    END_OVERLOAD( "Wx::GraphicsContext::SetPen" )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsContext_SetPenPen); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_SetPenPen)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, pen");
    {
	wxPen*    pen = (wxPen *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::Pen" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->SetPen( *pen );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_SetPenGraphics); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_SetPenGraphics)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, pen");
    {
	wxGraphicsPen*    pen = (wxGraphicsPen *) wxPli_sv_2_object( aTHX_ ST(1), "Wx::GraphicsPen" )
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    THIS->SetPen( *pen );
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_StrokeLine); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_StrokeLine)
{
    dVAR; dXSARGS;
    if (items != 5)
       croak_xs_usage(cv,  "THIS, x1, y1, x2, y2");
    {
	wxDouble	x1 = (double)SvNV(ST(1))
;
	wxDouble	y1 = (double)SvNV(ST(2))
;
	wxDouble	x2 = (double)SvNV(ST(3))
;
	wxDouble	y2 = (double)SvNV(ST(4))
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	THIS->StrokeLine(x1, y1, x2, y2);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_StrokeLines); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_StrokeLines)
{
    dVAR; dXSARGS;
    if (items < 1)
       croak_xs_usage(cv,  "THIS, ...");
    PERL_UNUSED_VAR(ax); /* -Wall */
    SP -= items;
    {
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    BEGIN_OVERLOAD()
        MATCH_REDISP(wxPliOvl_wpoi_wpoi, StrokeLinesTwo)
        MATCH_REDISP(wxPliOvl_wpoi, StrokeLinesOne)
    END_OVERLOAD( "Wx::GraphicsContext::StrokeLines" )
	PUTBACK;
	return;
    }
}


XS_EUPXS(XS_Wx__GraphicsContext_StrokeLinesOne); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_StrokeLinesOne)
{
    dVAR; dXSARGS;
    if (items != 2)
       croak_xs_usage(cv,  "THIS, points");
    {
	SV*	points = ST(1)
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    wxPliArrayGuard<wxPoint2DDouble> points2d;
    int n = wxPli_av_2_point2ddoublearray(aTHX_ points, points2d.lvalue());
    THIS->StrokeLines(n,points2d);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_StrokeLinesTwo); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_StrokeLinesTwo)
{
    dVAR; dXSARGS;
    if (items != 3)
       croak_xs_usage(cv,  "THIS, beginPoints, endPoints");
    {
	SV*	beginPoints = ST(1)
;
	SV*	endPoints = ST(2)
;
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;
    wxPliArrayGuard<wxPoint2DDouble> beginPoints2d, endPoints2d;
    int n1 = wxPli_av_2_point2ddoublearray(aTHX_ beginPoints, beginPoints2d.lvalue());
    int n2 = wxPli_av_2_point2ddoublearray(aTHX_ endPoints, endPoints2d.lvalue());
    THIS->StrokeLines(wxMin(n1, n2), beginPoints2d, endPoints2d);
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_PopState); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_PopState)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	THIS->PopState();
    }
    XSRETURN_EMPTY;
}


XS_EUPXS(XS_Wx__GraphicsContext_PushState); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__GraphicsContext_PushState)
{
    dVAR; dXSARGS;
    if (items != 1)
       croak_xs_usage(cv,  "THIS");
    {
	wxGraphicsContext *    THIS = (wxGraphicsContext *) wxPli_sv_2_object( aTHX_ ST(0), "Wx::GraphicsContext" )
;

	THIS->PushState();
    }
    XSRETURN_EMPTY;
}

#endif

/* INCLUDE: Returning to 'GDI.xs' from 'XS/GraphicsContext.xs' */


/* INCLUDE_COMMAND:  Including output of '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/SVGFileDC.xsp' from 'GDI.xs' */

#include <exception>

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
#define XSpp_f44c0454_067296
#include <wx/dcsvg.h>
#undef  xsp_constructor_class
#define xsp_constructor_class(c) (CLASS)
#define XSubPPtmpAAEI 1


XS_EUPXS(XS_Wx__SVGFileDC_new); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx__SVGFileDC_new)
{
    dVAR; dXSARGS;
    if (items < 2 || items > 5)
       croak_xs_usage(cv,  "CLASS, filename, width= 320, height= 240, dpi= 72.0");
    {
	char *	CLASS = (char *)SvPV_nolen(ST(0))
;
	wxSVGFileDC *	RETVAL;
	wxString	filename;
	int	width;
	int	height;
	double	dpi;

    WXSTRING_INPUT( filename, wxString, ST(1) )
;

	if (items < 3)
	    width = 320;
	else {
	    width = (int)SvIV(ST(2))
;
	}

	if (items < 4)
	    height = 240;
	else {
	    height = (int)SvIV(ST(3))
;
	}

	if (items < 5)
	    dpi = 72.0;
	else {
	    dpi = (double)SvNV(ST(4))
;
	}
    try {
      RETVAL = new wxSVGFileDC( filename, width, height, dpi );
    }
    catch (std::exception& e) {
      croak("Caught C++ exception of type or derived from 'std::exception': %s", e.what());
    }
    catch (...) {
      croak("Caught C++ exception of unknown type");
    }
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_object_2_sv( aTHX_ RETVALSV, RETVAL );
    wxPli_thread_sv_register( aTHX_ "Wx::SVGFileDC", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#undef  xsp_constructor_class
#define xsp_constructor_class(c) (c)
#endif

/* INCLUDE: Returning to 'GDI.xs' from '/usr/bin/perl -I./ -MExtUtils::XSpp::Cmd -e xspp -- -t typemap.xsp XS/SVGFileDC.xsp' */


XS_EUPXS(XS_Wx_GetClientDisplayRect); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx_GetClientDisplayRect)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {
	wxRect *	RETVAL;
    RETVAL = new wxRect( wxGetClientDisplayRect() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Rect" );
    wxPli_thread_sv_register( aTHX_ "Wx::Rect", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx_ColourDisplay); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx_ColourDisplay)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {
	bool	RETVAL;
    RETVAL = wxColourDisplay();
	ST(0) = boolSV(RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx_DisplayDepth); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx_DisplayDepth)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {
	int	RETVAL;
	dXSTARG;
    RETVAL = wxDisplayDepth();
	XSprePUSH;
	PUSHi((IV)RETVAL);
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx_GetDisplaySizeMM); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx_GetDisplaySizeMM)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {
	wxSize *	RETVAL;
    RETVAL = new wxSize( wxGetDisplaySizeMM() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Size" );
    wxPli_thread_sv_register( aTHX_ "Wx::Size", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}


XS_EUPXS(XS_Wx_GetDisplaySize); /* prototype to pass -Wmissing-prototypes */
XS_EUPXS(XS_Wx_GetDisplaySize)
{
    dVAR; dXSARGS;
    if (items != 0)
       croak_xs_usage(cv,  "");
    {
	wxSize *	RETVAL;
    RETVAL = new wxSize( wxGetDisplaySize() );
	{
	    SV * RETVALSV;
	    RETVALSV = sv_newmortal();
    wxPli_non_object_2_sv( aTHX_ RETVALSV, RETVAL, "Wx::Size" );
    wxPli_thread_sv_register( aTHX_ "Wx::Size", RETVAL, RETVALSV );
	    ST(0) = RETVALSV;
	}
    }
    XSRETURN(1);
}

#ifdef __cplusplus
extern "C"
#endif
XS_EXTERNAL(boot_Wx_GDI); /* prototype to pass -Wmissing-prototypes */
XS_EXTERNAL(boot_Wx_GDI)
{
#if PERL_VERSION_LE(5, 21, 5)
    dVAR; dXSARGS;
#else
    dVAR; dXSBOOTARGSXSAPIVERCHK;
#endif
#if PERL_VERSION_LE(5, 8, 999) /* PERL_VERSION_LT is 5.33+ */
    char* file = __FILE__;
#else
    const char* file = __FILE__;
#endif

    PERL_UNUSED_VAR(file);

    PERL_UNUSED_VAR(cv); /* -W */
    PERL_UNUSED_VAR(items); /* -W */
#if PERL_VERSION_LE(5, 21, 5)
    XS_VERSION_BOOTCHECK;
#  ifdef XS_APIVERSION_BOOTCHECK
    XS_APIVERSION_BOOTCHECK;
#  endif
#endif

        newXS_deffile("Wx::Palette::new", XS_Wx__Palette_new);
        newXS_deffile("Wx::Palette::CLONE", XS_Wx__Palette_CLONE);
        newXS_deffile("Wx::Palette::DESTROY", XS_Wx__Palette_DESTROY);
#if XSubPPtmpAAAA
        newXS_deffile("Wx::Palette::GetColoursCount", XS_Wx__Palette_GetColoursCount);
#endif
        newXS_deffile("Wx::Palette::GetPixel", XS_Wx__Palette_GetPixel);
        newXS_deffile("Wx::Palette::GetRGB", XS_Wx__Palette_GetRGB);
        newXS_deffile("Wx::Palette::Ok", XS_Wx__Palette_Ok);
#if XSubPPtmpAAAB
        newXS_deffile("Wx::Palette::IsOk", XS_Wx__Palette_IsOk);
#endif
        newXS_deffile("Wx::Image::new", XS_Wx__Image_new);
        newXS_deffile("Wx::Image::newNull", XS_Wx__Image_newNull);
        newXS_deffile("Wx::Image::newWH", XS_Wx__Image_newWH);
        newXS_deffile("Wx::Image::newData", XS_Wx__Image_newData);
#if XSubPPtmpAAAC
        newXS_deffile("Wx::Image::newDataAlpha", XS_Wx__Image_newDataAlpha);
#endif
        newXS_deffile("Wx::Image::newNameType", XS_Wx__Image_newNameType);
        newXS_deffile("Wx::Image::newNameMIME", XS_Wx__Image_newNameMIME);
        newXS_deffile("Wx::Image::newStreamType", XS_Wx__Image_newStreamType);
        newXS_deffile("Wx::Image::newStreamMIME", XS_Wx__Image_newStreamMIME);
        newXS_deffile("Wx::Image::newBitmap", XS_Wx__Image_newBitmap);
        newXS_deffile("Wx::Image::newIcon", XS_Wx__Image_newIcon);
        newXS_deffile("Wx::Image::CLONE", XS_Wx__Image_CLONE);
        newXS_deffile("Wx::Image::DESTROY", XS_Wx__Image_DESTROY);
        newXS_deffile("Wx::Image::AddHandler", XS_Wx__Image_AddHandler);
        newXS_deffile("Wx::Image::ConvertToMono", XS_Wx__Image_ConvertToMono);
#if XSubPPtmpAAAD
        newXS_deffile("Wx::Image::ConvertAlphaToMask", XS_Wx__Image_ConvertAlphaToMask);
#endif
#if XSubPPtmpAAAE
        newXS_deffile("Wx::Image::ConvertColourToAlpha", XS_Wx__Image_ConvertColourToAlpha);
#endif
#if XSubPPtmpAAAF
        newXS_deffile("Wx::Image::ConvertToGreyscale", XS_Wx__Image_ConvertToGreyscale);
#endif
        newXS_deffile("Wx::Image::Copy", XS_Wx__Image_Copy);
        newXS_deffile("Wx::Image::Create", XS_Wx__Image_Create);
        newXS_deffile("Wx::Image::Destroy", XS_Wx__Image_Destroy);
        newXS_deffile("Wx::Image::FindHandlerName", XS_Wx__Image_FindHandlerName);
        newXS_deffile("Wx::Image::FindHandlerExtType", XS_Wx__Image_FindHandlerExtType);
        newXS_deffile("Wx::Image::FindHandlerType", XS_Wx__Image_FindHandlerType);
        newXS_deffile("Wx::Image::FindHandlerMime", XS_Wx__Image_FindHandlerMime);
#if XSubPPtmpAAAG
        newXS_deffile("Wx::Image::GetAlpha", XS_Wx__Image_GetAlpha);
        newXS_deffile("Wx::Image::GetAlphaXY", XS_Wx__Image_GetAlphaXY);
        newXS_deffile("Wx::Image::GetAlphaData", XS_Wx__Image_GetAlphaData);
#endif
        newXS_deffile("Wx::Image::GetData", XS_Wx__Image_GetData);
        newXS_deffile("Wx::Image::GetBlue", XS_Wx__Image_GetBlue);
        newXS_deffile("Wx::Image::GetGreen", XS_Wx__Image_GetGreen);
        newXS_deffile("Wx::Image::GetRed", XS_Wx__Image_GetRed);
        newXS_deffile("Wx::Image::GetHeight", XS_Wx__Image_GetHeight);
        newXS_deffile("Wx::Image::GetMaskBlue", XS_Wx__Image_GetMaskBlue);
        newXS_deffile("Wx::Image::GetMaskGreen", XS_Wx__Image_GetMaskGreen);
        newXS_deffile("Wx::Image::GetMaskRed", XS_Wx__Image_GetMaskRed);
        newXS_deffile("Wx::Image::GetOption", XS_Wx__Image_GetOption);
        newXS_deffile("Wx::Image::GetOptionInt", XS_Wx__Image_GetOptionInt);
        newXS_deffile("Wx::Image::GetPalette", XS_Wx__Image_GetPalette);
        newXS_deffile("Wx::Image::GetSubImage", XS_Wx__Image_GetSubImage);
        newXS_deffile("Wx::Image::GetWidth", XS_Wx__Image_GetWidth);
#if XSubPPtmpAAAH
        newXS_deffile("Wx::Image::HasAlpha", XS_Wx__Image_HasAlpha);
#endif
#if XSubPPtmpAAAI
        newXS_deffile("Wx::Image::InitAlpha", XS_Wx__Image_InitAlpha);
#endif
#if XSubPPtmpAAAJ
        newXS_deffile("Wx::Image::IsTransparent", XS_Wx__Image_IsTransparent);
#endif
        newXS_deffile("Wx::Image::HasMask", XS_Wx__Image_HasMask);
        newXS_deffile("Wx::Image::HasOption", XS_Wx__Image_HasOption);
        newXS_deffile("Wx::Image::HasPalette", XS_Wx__Image_HasPalette);
        newXS_deffile("Wx::Image::InsertHandler", XS_Wx__Image_InsertHandler);
        newXS_deffile("Wx::Image::LoadFile", XS_Wx__Image_LoadFile);
        newXS_deffile("Wx::Image::LoadFileType", XS_Wx__Image_LoadFileType);
        newXS_deffile("Wx::Image::LoadFileMIME", XS_Wx__Image_LoadFileMIME);
        newXS_deffile("Wx::Image::LoadStreamType", XS_Wx__Image_LoadStreamType);
        newXS_deffile("Wx::Image::LoadStreamMIME", XS_Wx__Image_LoadStreamMIME);
        newXS_deffile("Wx::Image::Ok", XS_Wx__Image_Ok);
#if XSubPPtmpAAAK
        newXS_deffile("Wx::Image::IsOk", XS_Wx__Image_IsOk);
#endif
        newXS_deffile("Wx::Image::SaveFile", XS_Wx__Image_SaveFile);
        newXS_deffile("Wx::Image::SaveFileOnly", XS_Wx__Image_SaveFileOnly);
        newXS_deffile("Wx::Image::SaveFileType", XS_Wx__Image_SaveFileType);
        newXS_deffile("Wx::Image::SaveFileMIME", XS_Wx__Image_SaveFileMIME);
        newXS_deffile("Wx::Image::SaveStreamType", XS_Wx__Image_SaveStreamType);
        newXS_deffile("Wx::Image::SaveStreamMIME", XS_Wx__Image_SaveStreamMIME);
        newXS_deffile("Wx::Image::Mirror", XS_Wx__Image_Mirror);
        newXS_deffile("Wx::Image::Replace", XS_Wx__Image_Replace);
#if XSubPPtmpAAAL
        newXS_deffile("Wx::Image::Rescale", XS_Wx__Image_Rescale);
#endif
#if XSubPPtmpAAAM
        newXS_deffile("Wx::Image::Rescale", XS_Wx__Image_Rescale);
#endif
        newXS_deffile("Wx::Image::Rotate", XS_Wx__Image_Rotate);
#if XSubPPtmpAAAN
        newXS_deffile("Wx::Image::RotateHue", XS_Wx__Image_RotateHue);
#endif
        newXS_deffile("Wx::Image::Rotate90", XS_Wx__Image_Rotate90);
#if XSubPPtmpAAAO
        newXS_deffile("Wx::Image::ShrinkBy", XS_Wx__Image_ShrinkBy);
#endif
#if XSubPPtmpAAAP
        newXS_deffile("Wx::Image::Scale", XS_Wx__Image_Scale);
#endif
#if XSubPPtmpAAAQ
        newXS_deffile("Wx::Image::Scale", XS_Wx__Image_Scale);
#endif
#if XSubPPtmpAAAR
        newXS_deffile("Wx::Image::SetAlpha", XS_Wx__Image_SetAlpha);
        newXS_deffile("Wx::Image::SetAlphaXY", XS_Wx__Image_SetAlphaXY);
        newXS_deffile("Wx::Image::SetAlphaData", XS_Wx__Image_SetAlphaData);
#endif
        newXS_deffile("Wx::Image::SetData", XS_Wx__Image_SetData);
        newXS_deffile("Wx::Image::SetMask", XS_Wx__Image_SetMask);
        newXS_deffile("Wx::Image::SetMaskColour", XS_Wx__Image_SetMaskColour);
        newXS_deffile("Wx::Image::SetOption", XS_Wx__Image_SetOption);
        newXS_deffile("Wx::Image::SetOptionInt", XS_Wx__Image_SetOptionInt);
        newXS_deffile("Wx::Image::SetPalette", XS_Wx__Image_SetPalette);
#if XSubPPtmpAAAS
        newXS_deffile("Wx::Image::SetRGB", XS_Wx__Image_SetRGB);
        newXS_deffile("Wx::Image::SetRGBpixel", XS_Wx__Image_SetRGBpixel);
        newXS_deffile("Wx::Image::SetRGBrect", XS_Wx__Image_SetRGBrect);
#endif
#if XSubPPtmpAAAT
        newXS_deffile("Wx::Image::SetRGB", XS_Wx__Image_SetRGB);
#endif
#if XSubPPtmpAAAU
        newXS_deffile("Wx::Image::Blur", XS_Wx__Image_Blur);
        newXS_deffile("Wx::Image::BlurHorizontal", XS_Wx__Image_BlurHorizontal);
        newXS_deffile("Wx::Image::BlurVertical", XS_Wx__Image_BlurVertical);
        newXS_deffile("Wx::Image::GetOrFindMaskColour", XS_Wx__Image_GetOrFindMaskColour);
#endif
        newXS_deffile("Wx::ImageHandler::Destroy", XS_Wx__ImageHandler_Destroy);
        newXS_deffile("Wx::ImageHandler::GetImageCount", XS_Wx__ImageHandler_GetImageCount);
        newXS_deffile("Wx::ImageHandler::GetName", XS_Wx__ImageHandler_GetName);
        newXS_deffile("Wx::ImageHandler::GetExtension", XS_Wx__ImageHandler_GetExtension);
#if XSubPPtmpAAAV
        newXS_deffile("Wx::ImageHandler::GetType", XS_Wx__ImageHandler_GetType);
#endif
#if XSubPPtmpAAAW
        newXS_deffile("Wx::ImageHandler::GetType", XS_Wx__ImageHandler_GetType);
#endif
        newXS_deffile("Wx::ImageHandler::GetMimeType", XS_Wx__ImageHandler_GetMimeType);
        newXS_deffile("Wx::ImageHandler::LoadFile", XS_Wx__ImageHandler_LoadFile);
        newXS_deffile("Wx::ImageHandler::SaveFile", XS_Wx__ImageHandler_SaveFile);
        newXS_deffile("Wx::ImageHandler::SetName", XS_Wx__ImageHandler_SetName);
        newXS_deffile("Wx::ImageHandler::SetExtension", XS_Wx__ImageHandler_SetExtension);
        newXS_deffile("Wx::ImageHandler::SetMimeType", XS_Wx__ImageHandler_SetMimeType);
        newXS_deffile("Wx::ImageHandler::SetType", XS_Wx__ImageHandler_SetType);
        newXS_deffile("Wx::GIFHandler::new", XS_Wx__GIFHandler_new);
        newXS_deffile("Wx::BMPHandler::new", XS_Wx__BMPHandler_new);
        newXS_deffile("Wx::PNMHandler::new", XS_Wx__PNMHandler_new);
        newXS_deffile("Wx::PCXHandler::new", XS_Wx__PCXHandler_new);
        newXS_deffile("Wx::PNGHandler::new", XS_Wx__PNGHandler_new);
        newXS_deffile("Wx::JPEGHandler::new", XS_Wx__JPEGHandler_new);
#if XSubPPtmpAAAX
        newXS_deffile("Wx::TIFFHandler::new", XS_Wx__TIFFHandler_new);
#endif
        newXS_deffile("Wx::XPMHandler::new", XS_Wx__XPMHandler_new);
#if XSubPPtmpAAAY
        newXS_deffile("Wx::IFFHandler::new", XS_Wx__IFFHandler_new);
#endif
#if XSubPPtmpAAAZ
        newXS_deffile("Wx::ICOHandler::new", XS_Wx__ICOHandler_new);
        newXS_deffile("Wx::CURHandler::new", XS_Wx__CURHandler_new);
        newXS_deffile("Wx::ANIHandler::new", XS_Wx__ANIHandler_new);
#endif
#if XSubPPtmpAABA
        newXS_deffile("Wx::TGAHandler::new", XS_Wx__TGAHandler_new);
#endif
        newXS_deffile("Wx::InitAllImageHandlers", XS_Wx_InitAllImageHandlers);
        newXS_deffile("Wx::Brush::newColour", XS_Wx__Brush_newColour);
        newXS_deffile("Wx::Brush::newBitmap", XS_Wx__Brush_newBitmap);
        newXS_deffile("Wx::Brush::newName", XS_Wx__Brush_newName);
        newXS_deffile("Wx::Brush::CLONE", XS_Wx__Brush_CLONE);
        newXS_deffile("Wx::Brush::DESTROY", XS_Wx__Brush_DESTROY);
        newXS_deffile("Wx::Brush::GetColour", XS_Wx__Brush_GetColour);
        newXS_deffile("Wx::Brush::GetStipple", XS_Wx__Brush_GetStipple);
        newXS_deffile("Wx::Brush::GetStyle", XS_Wx__Brush_GetStyle);
        newXS_deffile("Wx::Brush::Ok", XS_Wx__Brush_Ok);
#if XSubPPtmpAABB
        newXS_deffile("Wx::Brush::IsOk", XS_Wx__Brush_IsOk);
#endif
#if XSubPPtmpAABC
        newXS_deffile("Wx::Brush::IsHatch", XS_Wx__Brush_IsHatch);
#endif
        newXS_deffile("Wx::Brush::SetColourColour", XS_Wx__Brush_SetColourColour);
        newXS_deffile("Wx::Brush::SetColourName", XS_Wx__Brush_SetColourName);
        newXS_deffile("Wx::Brush::SetColourRGB", XS_Wx__Brush_SetColourRGB);
        newXS_deffile("Wx::Brush::SetStipple", XS_Wx__Brush_SetStipple);
        newXS_deffile("Wx::Brush::SetStyle", XS_Wx__Brush_SetStyle);
#if XSubPPtmpAABD
        newXS_deffile("Wx::Brush::SetColour", XS_Wx__Brush_SetColour);
#endif
#if XSubPPtmpAABE
        newXS_deffile("Wx::Brush::new", XS_Wx__Brush_new);
#endif
        newXS_deffile("Wx::Pen::new", XS_Wx__Pen_new);
        newXS_deffile("Wx::Pen::newColour", XS_Wx__Pen_newColour);
        newXS_deffile("Wx::Pen::newString", XS_Wx__Pen_newString);
#if XSubPPtmpAABF
        newXS_deffile("Wx::Pen::newBitmap", XS_Wx__Pen_newBitmap);
#endif
        newXS_deffile("Wx::Pen::CLONE", XS_Wx__Pen_CLONE);
        newXS_deffile("Wx::Pen::DESTROY", XS_Wx__Pen_DESTROY);
        newXS_deffile("Wx::Pen::GetCap", XS_Wx__Pen_GetCap);
        newXS_deffile("Wx::Pen::GetColour", XS_Wx__Pen_GetColour);
        newXS_deffile("Wx::Pen::GetDashes", XS_Wx__Pen_GetDashes);
        newXS_deffile("Wx::Pen::GetJoin", XS_Wx__Pen_GetJoin);
#if XSubPPtmpAABG
        newXS_deffile("Wx::Pen::GetStipple", XS_Wx__Pen_GetStipple);
#endif
        newXS_deffile("Wx::Pen::GetStyle", XS_Wx__Pen_GetStyle);
        newXS_deffile("Wx::Pen::GetWidth", XS_Wx__Pen_GetWidth);
        newXS_deffile("Wx::Pen::Ok", XS_Wx__Pen_Ok);
#if XSubPPtmpAABH
        newXS_deffile("Wx::Pen::IsOk", XS_Wx__Pen_IsOk);
#endif
        newXS_deffile("Wx::Pen::SetCap", XS_Wx__Pen_SetCap);
        newXS_deffile("Wx::Pen::SetColour", XS_Wx__Pen_SetColour);
        newXS_deffile("Wx::Pen::SetColourColour", XS_Wx__Pen_SetColourColour);
        newXS_deffile("Wx::Pen::SetColourName", XS_Wx__Pen_SetColourName);
        newXS_deffile("Wx::Pen::SetColourRGB", XS_Wx__Pen_SetColourRGB);
        newXS_deffile("Wx::Pen::SetDashes", XS_Wx__Pen_SetDashes);
        newXS_deffile("Wx::Pen::SetJoin", XS_Wx__Pen_SetJoin);
#if XSubPPtmpAABI
        newXS_deffile("Wx::Pen::SetStipple", XS_Wx__Pen_SetStipple);
#endif
        newXS_deffile("Wx::Pen::SetStyle", XS_Wx__Pen_SetStyle);
        newXS_deffile("Wx::Pen::SetWidth", XS_Wx__Pen_SetWidth);
#if XSubPPtmpAABJ
        newXS_deffile("Wx::Overlay::new", XS_Wx__Overlay_new);
        newXS_deffile("Wx::Overlay::CLONE", XS_Wx__Overlay_CLONE);
        newXS_deffile("Wx::Overlay::DESTROY", XS_Wx__Overlay_DESTROY);
        newXS_deffile("Wx::Overlay::Reset", XS_Wx__Overlay_Reset);
        newXS_deffile("Wx::DCOverlay::new", XS_Wx__DCOverlay_new);
        newXS_deffile("Wx::DCOverlay::newDefault", XS_Wx__DCOverlay_newDefault);
        newXS_deffile("Wx::DCOverlay::newLong", XS_Wx__DCOverlay_newLong);
        newXS_deffile("Wx::DCOverlay::CLONE", XS_Wx__DCOverlay_CLONE);
        newXS_deffile("Wx::DCOverlay::DESTROY", XS_Wx__DCOverlay_DESTROY);
        newXS_deffile("Wx::DCOverlay::Clear", XS_Wx__DCOverlay_Clear);
#endif
        newXS_deffile("Wx::DC::CLONE", XS_Wx__DC_CLONE);
        newXS_deffile("Wx::DC::DESTROY", XS_Wx__DC_DESTROY);
#if XSubPPtmpAABK
        newXS_deffile("Wx::DC::BeginDrawing", XS_Wx__DC_BeginDrawing);
#endif
        newXS_deffile("Wx::DC::Blit", XS_Wx__DC_Blit);
#if XSubPPtmpAABL
        newXS_deffile("Wx::DC::StretchBlit", XS_Wx__DC_StretchBlit);
#endif
        newXS_deffile("Wx::DC::CalcBoundingBox", XS_Wx__DC_CalcBoundingBox);
        newXS_deffile("Wx::DC::Clear", XS_Wx__DC_Clear);
        newXS_deffile("Wx::DC::CrossHair", XS_Wx__DC_CrossHair);
        newXS_deffile("Wx::DC::DestroyClippingRegion", XS_Wx__DC_DestroyClippingRegion);
        newXS_deffile("Wx::DC::DeviceToLogicalX", XS_Wx__DC_DeviceToLogicalX);
        newXS_deffile("Wx::DC::DeviceToLogicalXRel", XS_Wx__DC_DeviceToLogicalXRel);
        newXS_deffile("Wx::DC::DeviceToLogicalY", XS_Wx__DC_DeviceToLogicalY);
        newXS_deffile("Wx::DC::DeviceToLogicalYRel", XS_Wx__DC_DeviceToLogicalYRel);
        newXS_deffile("Wx::DC::DrawArc", XS_Wx__DC_DrawArc);
        newXS_deffile("Wx::DC::DrawBitmap", XS_Wx__DC_DrawBitmap);
        newXS_deffile("Wx::DC::DrawCheckMark", XS_Wx__DC_DrawCheckMark);
        newXS_deffile("Wx::DC::DrawCheckMarkXYWH", XS_Wx__DC_DrawCheckMarkXYWH);
        newXS_deffile("Wx::DC::DrawCheckMarkRect", XS_Wx__DC_DrawCheckMarkRect);
        newXS_deffile("Wx::DC::DrawCircle", XS_Wx__DC_DrawCircle);
        newXS_deffile("Wx::DC::DrawEllipse", XS_Wx__DC_DrawEllipse);
        newXS_deffile("Wx::DC::DrawEllipticArc", XS_Wx__DC_DrawEllipticArc);
        newXS_deffile("Wx::DC::DrawIcon", XS_Wx__DC_DrawIcon);
        newXS_deffile("Wx::DC::DrawLine", XS_Wx__DC_DrawLine);
        newXS_deffile("Wx::DC::DrawLines", XS_Wx__DC_DrawLines);
        newXS_deffile("Wx::DC::DrawPoint", XS_Wx__DC_DrawPoint);
        newXS_deffile("Wx::DC::DrawPolygon", XS_Wx__DC_DrawPolygon);
        newXS_deffile("Wx::DC::DrawRectangle", XS_Wx__DC_DrawRectangle);
        newXS_deffile("Wx::DC::DrawRotatedText", XS_Wx__DC_DrawRotatedText);
        newXS_deffile("Wx::DC::DrawRoundedRectangle", XS_Wx__DC_DrawRoundedRectangle);
        newXS_deffile("Wx::DC::DrawSpline", XS_Wx__DC_DrawSpline);
        newXS_deffile("Wx::DC::DrawText", XS_Wx__DC_DrawText);
        newXS_deffile("Wx::DC::EndDoc", XS_Wx__DC_EndDoc);
#if XSubPPtmpAABM
        newXS_deffile("Wx::DC::EndDrawing", XS_Wx__DC_EndDrawing);
#endif
        newXS_deffile("Wx::DC::EndPage", XS_Wx__DC_EndPage);
        newXS_deffile("Wx::DC::FloodFill", XS_Wx__DC_FloodFill);
#if XSubPPtmpAABN
        newXS_deffile("Wx::DC::GetAsBitmap", XS_Wx__DC_GetAsBitmap);
#endif
        newXS_deffile("Wx::DC::GetBackground", XS_Wx__DC_GetBackground);
        newXS_deffile("Wx::DC::GetBackgroundMode", XS_Wx__DC_GetBackgroundMode);
        newXS_deffile("Wx::DC::GetBrush", XS_Wx__DC_GetBrush);
        newXS_deffile("Wx::DC::GetCharHeight", XS_Wx__DC_GetCharHeight);
        newXS_deffile("Wx::DC::GetCharWidth", XS_Wx__DC_GetCharWidth);
        newXS_deffile("Wx::DC::GetClippingBox", XS_Wx__DC_GetClippingBox);
        newXS_deffile("Wx::DC::GetFont", XS_Wx__DC_GetFont);
        newXS_deffile("Wx::DC::GetLogicalFunction", XS_Wx__DC_GetLogicalFunction);
        newXS_deffile("Wx::DC::GetMapMode", XS_Wx__DC_GetMapMode);
#if XSubPPtmpAABO
        newXS_deffile("Wx::DC::GetOptimization", XS_Wx__DC_GetOptimization);
#endif
#if XSubPPtmpAABP
        newXS_deffile("Wx::DC::GetContentScaleFactor", XS_Wx__DC_GetContentScaleFactor);
#endif
        newXS_deffile("Wx::DC::GetPen", XS_Wx__DC_GetPen);
        newXS_deffile("Wx::DC::GetPixel", XS_Wx__DC_GetPixel);
        newXS_deffile("Wx::DC::GetSize", XS_Wx__DC_GetSize);
        newXS_deffile("Wx::DC::GetSizeWH", XS_Wx__DC_GetSizeWH);
        newXS_deffile("Wx::DC::GetSizeMM", XS_Wx__DC_GetSizeMM);
        newXS_deffile("Wx::DC::GetSizeMMWH", XS_Wx__DC_GetSizeMMWH);
        newXS_deffile("Wx::DC::GetPPI", XS_Wx__DC_GetPPI);
        newXS_deffile("Wx::DC::GetTextBackground", XS_Wx__DC_GetTextBackground);
        newXS_deffile("Wx::DC::GetTextExtent", XS_Wx__DC_GetTextExtent);
        newXS_deffile("Wx::DC::GetPartialTextExtents", XS_Wx__DC_GetPartialTextExtents);
        newXS_deffile("Wx::DC::GetMultiLineTextExtent", XS_Wx__DC_GetMultiLineTextExtent);
        newXS_deffile("Wx::DC::GetTextForeground", XS_Wx__DC_GetTextForeground);
        newXS_deffile("Wx::DC::GetUserScale", XS_Wx__DC_GetUserScale);
#if XSubPPtmpAABQ
        newXS_deffile("Wx::DC::GradientFillLinear", XS_Wx__DC_GradientFillLinear);
#endif
        newXS_deffile("Wx::DC::LogicalToDeviceX", XS_Wx__DC_LogicalToDeviceX);
        newXS_deffile("Wx::DC::LogicalToDeviceXRel", XS_Wx__DC_LogicalToDeviceXRel);
        newXS_deffile("Wx::DC::LogicalToDeviceY", XS_Wx__DC_LogicalToDeviceY);
        newXS_deffile("Wx::DC::LogicalToDeviceYRel", XS_Wx__DC_LogicalToDeviceYRel);
        newXS_deffile("Wx::DC::MaxX", XS_Wx__DC_MaxX);
        newXS_deffile("Wx::DC::MaxY", XS_Wx__DC_MaxY);
        newXS_deffile("Wx::DC::MinX", XS_Wx__DC_MinX);
        newXS_deffile("Wx::DC::MinY", XS_Wx__DC_MinY);
#if XSubPPtmpAABR
        newXS_deffile("Wx::DC::IsOk", XS_Wx__DC_IsOk);
        newXS_deffile("Wx::DC::Ok", XS_Wx__DC_Ok);
#endif
#if XSubPPtmpAABS
        newXS_deffile("Wx::DC::Ok", XS_Wx__DC_Ok);
#endif
        newXS_deffile("Wx::DC::ResetBoundingBox", XS_Wx__DC_ResetBoundingBox);
        newXS_deffile("Wx::DC::SetAxisOrientation", XS_Wx__DC_SetAxisOrientation);
        newXS_deffile("Wx::DC::GetDepth", XS_Wx__DC_GetDepth);
        newXS_deffile("Wx::DC::GetDeviceOrigin", XS_Wx__DC_GetDeviceOrigin);
        newXS_deffile("Wx::DC::SetDeviceOrigin", XS_Wx__DC_SetDeviceOrigin);
        newXS_deffile("Wx::DC::SetBackground", XS_Wx__DC_SetBackground);
        newXS_deffile("Wx::DC::SetBackgroundMode", XS_Wx__DC_SetBackgroundMode);
        newXS_deffile("Wx::DC::SetBrush", XS_Wx__DC_SetBrush);
        newXS_deffile("Wx::DC::SetClippingRegion", XS_Wx__DC_SetClippingRegion);
        newXS_deffile("Wx::DC::SetClippingRegionXYWH", XS_Wx__DC_SetClippingRegionXYWH);
        newXS_deffile("Wx::DC::SetClippingRegionRegion", XS_Wx__DC_SetClippingRegionRegion);
        newXS_deffile("Wx::DC::SetFont", XS_Wx__DC_SetFont);
        newXS_deffile("Wx::DC::SetLogicalFunction", XS_Wx__DC_SetLogicalFunction);
        newXS_deffile("Wx::DC::SetMapMode", XS_Wx__DC_SetMapMode);
#if XSubPPtmpAABT
        newXS_deffile("Wx::DC::SetOptimization", XS_Wx__DC_SetOptimization);
#endif
        newXS_deffile("Wx::DC::SetPalette", XS_Wx__DC_SetPalette);
        newXS_deffile("Wx::DC::SetPen", XS_Wx__DC_SetPen);
        newXS_deffile("Wx::DC::SetTextBackground", XS_Wx__DC_SetTextBackground);
        newXS_deffile("Wx::DC::SetTextForeground", XS_Wx__DC_SetTextForeground);
        newXS_deffile("Wx::DC::SetUserScale", XS_Wx__DC_SetUserScale);
        newXS_deffile("Wx::DC::StartDoc", XS_Wx__DC_StartDoc);
        newXS_deffile("Wx::DC::StartPage", XS_Wx__DC_StartPage);
        newXS_deffile("Wx::DC::GetLogicalScale", XS_Wx__DC_GetLogicalScale);
        newXS_deffile("Wx::DC::SetLogicalScale", XS_Wx__DC_SetLogicalScale);
#if XSubPPtmpAABU
        newXS_deffile("Wx::DC::GetLayoutDirection", XS_Wx__DC_GetLayoutDirection);
        newXS_deffile("Wx::DC::SetLayoutDirection", XS_Wx__DC_SetLayoutDirection);
#endif
#if XSubPPtmpAABV
        newXS_deffile("Wx::DC::GradientFillConcentric", XS_Wx__DC_GradientFillConcentric);
        newXS_deffile("Wx::DC::GradientFillConcentricPoint", XS_Wx__DC_GradientFillConcentricPoint);
        newXS_deffile("Wx::DC::GradientFillConcentricNoPoint", XS_Wx__DC_GradientFillConcentricNoPoint);
        newXS_deffile("Wx::DC::DrawLabel", XS_Wx__DC_DrawLabel);
        newXS_deffile("Wx::DC::DrawLabelBitmap", XS_Wx__DC_DrawLabelBitmap);
        newXS_deffile("Wx::DC::DrawLabelNoBitmap", XS_Wx__DC_DrawLabelNoBitmap);
#endif
#if XSubPPtmpAABW
        newXS_deffile("Wx::DC::GetGraphicsContext", XS_Wx__DC_GetGraphicsContext);
#endif
#if XSubPPtmpAABX
        newXS_deffile("Wx::GCDC::new", XS_Wx__GCDC_new);
#if XSubPPtmpAABY
        newXS_deffile("Wx::GCDC::newMemoryDC", XS_Wx__GCDC_newMemoryDC);
#endif
        newXS_deffile("Wx::GCDC::newWindowDC", XS_Wx__GCDC_newWindowDC);
#if XSubPPtmpAABZ
        newXS_deffile("Wx::GCDC::GetGraphicsContext", XS_Wx__GCDC_GetGraphicsContext);
        newXS_deffile("Wx::GCDC::SetGraphicsContext", XS_Wx__GCDC_SetGraphicsContext);
#endif
#endif
        newXS_deffile("Wx::ScreenDC::new", XS_Wx__ScreenDC_new);
        newXS_deffile("Wx::ScreenDC::EndDrawingOnTop", XS_Wx__ScreenDC_EndDrawingOnTop);
        newXS_deffile("Wx::ScreenDC::StartDrawingOnTop", XS_Wx__ScreenDC_StartDrawingOnTop);
        newXS_deffile("Wx::ScreenDC::StartDrawingOnTopWindow", XS_Wx__ScreenDC_StartDrawingOnTopWindow);
        newXS_deffile("Wx::ScreenDC::StartDrawingOnTopRect", XS_Wx__ScreenDC_StartDrawingOnTopRect);
        newXS_deffile("Wx::WindowDC::new", XS_Wx__WindowDC_new);
        newXS_deffile("Wx::PaintDC::new", XS_Wx__PaintDC_new);
        newXS_deffile("Wx::MemoryDC::new", XS_Wx__MemoryDC_new);
        newXS_deffile("Wx::MemoryDC::SelectObject", XS_Wx__MemoryDC_SelectObject);
#if XSubPPtmpAACA
        newXS_deffile("Wx::MemoryDC::SelectObjectAsSource", XS_Wx__MemoryDC_SelectObjectAsSource);
#endif
        newXS_deffile("Wx::ClientDC::new", XS_Wx__ClientDC_new);
        newXS_deffile("Wx::BufferedDC::newDefault", XS_Wx__BufferedDC_newDefault);
#if XSubPPtmpAACB
        newXS_deffile("Wx::BufferedDC::newBitmap", XS_Wx__BufferedDC_newBitmap);
        newXS_deffile("Wx::BufferedDC::newSize", XS_Wx__BufferedDC_newSize);
        newXS_deffile("Wx::BufferedDC::InitBitmap", XS_Wx__BufferedDC_InitBitmap);
        newXS_deffile("Wx::BufferedDC::InitSize", XS_Wx__BufferedDC_InitSize);
#endif
#if XSubPPtmpAACC
        newXS_deffile("Wx::BufferedDC::newBitmap", XS_Wx__BufferedDC_newBitmap);
        newXS_deffile("Wx::BufferedDC::newSize", XS_Wx__BufferedDC_newSize);
        newXS_deffile("Wx::BufferedDC::InitBitmap", XS_Wx__BufferedDC_InitBitmap);
        newXS_deffile("Wx::BufferedDC::InitSize", XS_Wx__BufferedDC_InitSize);
#endif
        newXS_deffile("Wx::BufferedDC::new", XS_Wx__BufferedDC_new);
        newXS_deffile("Wx::BufferedDC::Init", XS_Wx__BufferedDC_Init);
        newXS_deffile("Wx::BufferedDC::UnMask", XS_Wx__BufferedDC_UnMask);
#if XSubPPtmpAACD
        newXS_deffile("Wx::BufferedDC::SetStyle", XS_Wx__BufferedDC_SetStyle);
        newXS_deffile("Wx::BufferedDC::GetStyle", XS_Wx__BufferedDC_GetStyle);
#endif
#if XSubPPtmpAACE
        newXS_deffile("Wx::BufferedPaintDC::newBitmap", XS_Wx__BufferedPaintDC_newBitmap);
        newXS_deffile("Wx::BufferedPaintDC::newWindow", XS_Wx__BufferedPaintDC_newWindow);
#endif
#if XSubPPtmpAACF
        newXS_deffile("Wx::BufferedPaintDC::newBitmap", XS_Wx__BufferedPaintDC_newBitmap);
        newXS_deffile("Wx::BufferedPaintDC::newWindow", XS_Wx__BufferedPaintDC_newWindow);
#endif
        newXS_deffile("Wx::BufferedPaintDC::new", XS_Wx__BufferedPaintDC_new);
#if XSubPPtmpAACG
        newXS_deffile("Wx::AutoBufferedPaintDC::new", XS_Wx__AutoBufferedPaintDC_new);
        newXS_deffile("Wx::AutoBufferedPaintDCFactory", XS_Wx_AutoBufferedPaintDCFactory);
        newXS_deffile("Wx::MirrorDC::new", XS_Wx__MirrorDC_new);
        newXS_deffile("Wx::DCClipper::new", XS_Wx__DCClipper_new);
        newXS_deffile("Wx::DCClipper::newRegion", XS_Wx__DCClipper_newRegion);
        newXS_deffile("Wx::DCClipper::newRect", XS_Wx__DCClipper_newRect);
        newXS_deffile("Wx::DCClipper::newXYWH", XS_Wx__DCClipper_newXYWH);
        newXS_deffile("Wx::DCClipper::CLONE", XS_Wx__DCClipper_CLONE);
        newXS_deffile("Wx::DCClipper::DESTROY", XS_Wx__DCClipper_DESTROY);
#endif
        newXS_deffile("Wx::Cursor::new", XS_Wx__Cursor_new);
#if XSubPPtmpAACH
        newXS_deffile("Wx::Cursor::newFile", XS_Wx__Cursor_newFile);
#endif
#if XSubPPtmpAACI
        newXS_deffile("Wx::Cursor::newFile", XS_Wx__Cursor_newFile);
#endif
        newXS_deffile("Wx::Cursor::newId", XS_Wx__Cursor_newId);
#if XSubPPtmpAACJ
        newXS_deffile("Wx::Cursor::newImage", XS_Wx__Cursor_newImage);
#endif
#if XSubPPtmpAACK
        newXS_deffile("Wx::Cursor::newData", XS_Wx__Cursor_newData);
#endif
        newXS_deffile("Wx::Cursor::CLONE", XS_Wx__Cursor_CLONE);
        newXS_deffile("Wx::Cursor::DESTROY", XS_Wx__Cursor_DESTROY);
        newXS_deffile("Wx::Cursor::Ok", XS_Wx__Cursor_Ok);
#if XSubPPtmpAACL
        newXS_deffile("Wx::Cursor::IsOk", XS_Wx__Cursor_IsOk);
#endif
        newXS_deffile("Wx::GetWxPerlIcon", XS_Wx_GetWxPerlIcon);
        newXS_deffile("Wx::Icon::new", XS_Wx__Icon_new);
        newXS_deffile("Wx::Icon::newNull", XS_Wx__Icon_newNull);
        newXS_deffile("Wx::Icon::newFile", XS_Wx__Icon_newFile);
        newXS_deffile("Wx::Icon::newFromXPM", XS_Wx__Icon_newFromXPM);
#if XSubPPtmpAACM
        newXS_deffile("Wx::Icon::newLocation", XS_Wx__Icon_newLocation);
#endif
        newXS_deffile("Wx::Icon::CLONE", XS_Wx__Icon_CLONE);
        newXS_deffile("Wx::Icon::DESTROY", XS_Wx__Icon_DESTROY);
        newXS_deffile("Wx::Icon::LoadFile", XS_Wx__Icon_LoadFile);
        newXS_deffile("Wx::Icon::Ok", XS_Wx__Icon_Ok);
#if XSubPPtmpAACN
        newXS_deffile("Wx::Icon::IsOk", XS_Wx__Icon_IsOk);
#endif
        newXS_deffile("Wx::Icon::CopyFromBitmap", XS_Wx__Icon_CopyFromBitmap);
#if XSubPPtmpAACO
        newXS_deffile("Wx::Icon::GetDepth", XS_Wx__Icon_GetDepth);
        newXS_deffile("Wx::Icon::GetHeight", XS_Wx__Icon_GetHeight);
        newXS_deffile("Wx::Icon::GetWidth", XS_Wx__Icon_GetWidth);
        newXS_deffile("Wx::Icon::SetDepth", XS_Wx__Icon_SetDepth);
        newXS_deffile("Wx::Icon::SetHeight", XS_Wx__Icon_SetHeight);
        newXS_deffile("Wx::Icon::SetWidth", XS_Wx__Icon_SetWidth);
#endif
        newXS_deffile("Wx::Mask::new", XS_Wx__Mask_new);
        newXS_deffile("Wx::Mask::newBitmap", XS_Wx__Mask_newBitmap);
        newXS_deffile("Wx::Mask::newBitmapColour", XS_Wx__Mask_newBitmapColour);
        newXS_deffile("Wx::Mask::newBitmapIndex", XS_Wx__Mask_newBitmapIndex);
        newXS_deffile("Wx::Mask::Destroy", XS_Wx__Mask_Destroy);
#if XSubPPtmpAACP
        newXS_deffile("Wx::Bitmap::bmp_spaceship", XS_Wx__Bitmap_bmp_spaceship);
#endif
        newXS_deffile("Wx::Bitmap::new", XS_Wx__Bitmap_new);
        newXS_deffile("Wx::Bitmap::newEmpty", XS_Wx__Bitmap_newEmpty);
        newXS_deffile("Wx::Bitmap::newFile", XS_Wx__Bitmap_newFile);
        newXS_deffile("Wx::Bitmap::newIcon", XS_Wx__Bitmap_newIcon);
        newXS_deffile("Wx::Bitmap::newFromBits", XS_Wx__Bitmap_newFromBits);
        newXS_deffile("Wx::Bitmap::newFromXPM", XS_Wx__Bitmap_newFromXPM);
        newXS_deffile("Wx::Bitmap::newImage", XS_Wx__Bitmap_newImage);
        newXS_deffile("Wx::Bitmap::CLONE", XS_Wx__Bitmap_CLONE);
        newXS_deffile("Wx::Bitmap::DESTROY", XS_Wx__Bitmap_DESTROY);
        newXS_deffile("Wx::Bitmap::ConvertToImage", XS_Wx__Bitmap_ConvertToImage);
        newXS_deffile("Wx::Bitmap::CopyFromIcon", XS_Wx__Bitmap_CopyFromIcon);
#if XSubPPtmpAACQ
        newXS_deffile("Wx::Bitmap::AddHandler", XS_Wx__Bitmap_AddHandler);
#endif
#if XSubPPtmpAACR
        newXS_deffile("Wx::Bitmap::FindHandlerName", XS_Wx__Bitmap_FindHandlerName);
        newXS_deffile("Wx::Bitmap::FindHandlerExtType", XS_Wx__Bitmap_FindHandlerExtType);
        newXS_deffile("Wx::Bitmap::FindHandlerType", XS_Wx__Bitmap_FindHandlerType);
#endif
        newXS_deffile("Wx::Bitmap::GetDepth", XS_Wx__Bitmap_GetDepth);
#if XSubPPtmpAACS
        newXS_deffile("Wx::Bitmap::GetHandlers", XS_Wx__Bitmap_GetHandlers);
#endif
        newXS_deffile("Wx::Bitmap::GetHeight", XS_Wx__Bitmap_GetHeight);
        newXS_deffile("Wx::Bitmap::GetPalette", XS_Wx__Bitmap_GetPalette);
        newXS_deffile("Wx::Bitmap::GetMask", XS_Wx__Bitmap_GetMask);
        newXS_deffile("Wx::Bitmap::GetWidth", XS_Wx__Bitmap_GetWidth);
        newXS_deffile("Wx::Bitmap::GetSubBitmap", XS_Wx__Bitmap_GetSubBitmap);
#if XSubPPtmpAACT
        newXS_deffile("Wx::Bitmap::InitStandardHandlers", XS_Wx__Bitmap_InitStandardHandlers);
        newXS_deffile("Wx::Bitmap::InsertHandler", XS_Wx__Bitmap_InsertHandler);
#endif
#if XSubPPtmpAACU
        newXS_deffile("Wx::Bitmap::LoadFile", XS_Wx__Bitmap_LoadFile);
#endif
#if XSubPPtmpAACV
        newXS_deffile("Wx::Bitmap::LoadFile", XS_Wx__Bitmap_LoadFile);
#endif
        newXS_deffile("Wx::Bitmap::Ok", XS_Wx__Bitmap_Ok);
#if XSubPPtmpAACW
        newXS_deffile("Wx::Bitmap::IsOk", XS_Wx__Bitmap_IsOk);
#endif
#if XSubPPtmpAACX
        newXS_deffile("Wx::Bitmap::RemoveHandler", XS_Wx__Bitmap_RemoveHandler);
#endif
        newXS_deffile("Wx::Bitmap::SaveFile", XS_Wx__Bitmap_SaveFile);
        newXS_deffile("Wx::Bitmap::SetDepth", XS_Wx__Bitmap_SetDepth);
        newXS_deffile("Wx::Bitmap::SetHeight", XS_Wx__Bitmap_SetHeight);
        newXS_deffile("Wx::Bitmap::SetMask", XS_Wx__Bitmap_SetMask);
#if XSubPPtmpAACY
        newXS_deffile("Wx::Bitmap::SetPalette", XS_Wx__Bitmap_SetPalette);
#endif
        newXS_deffile("Wx::Bitmap::SetWidth", XS_Wx__Bitmap_SetWidth);
        newXS_deffile("Wx::ImageList::new", XS_Wx__ImageList_new);
        newXS_deffile("Wx::ImageList::AddBitmap", XS_Wx__ImageList_AddBitmap);
        newXS_deffile("Wx::ImageList::AddWithColourMask", XS_Wx__ImageList_AddWithColourMask);
        newXS_deffile("Wx::ImageList::AddIcon", XS_Wx__ImageList_AddIcon);
        newXS_deffile("Wx::ImageList::Draw", XS_Wx__ImageList_Draw);
        newXS_deffile("Wx::ImageList::GetImageCount", XS_Wx__ImageList_GetImageCount);
        newXS_deffile("Wx::ImageList::Remove", XS_Wx__ImageList_Remove);
        newXS_deffile("Wx::ImageList::RemoveAll", XS_Wx__ImageList_RemoveAll);
#if XSubPPtmpAACZ
        newXS_deffile("Wx::ImageList::ReplaceBitmap", XS_Wx__ImageList_ReplaceBitmap);
#endif
#if XSubPPtmpAADA
        newXS_deffile("Wx::ImageList::ReplaceBitmap", XS_Wx__ImageList_ReplaceBitmap);
#endif
        newXS_deffile("Wx::ImageList::ReplaceIcon", XS_Wx__ImageList_ReplaceIcon);
#if XSubPPtmpAADB
        newXS_deffile("Wx::ImageList::GetBitmap", XS_Wx__ImageList_GetBitmap);
        newXS_deffile("Wx::ImageList::GetIcon", XS_Wx__ImageList_GetIcon);
#endif
        newXS_deffile("Wx::ImageList::CLONE", XS_Wx__ImageList_CLONE);
        newXS_deffile("Wx::ImageList::DESTROY", XS_Wx__ImageList_DESTROY);
        newXS_deffile("Wx::ImageList::Add", XS_Wx__ImageList_Add);
        newXS_deffile("Wx::ImageList::GetSize", XS_Wx__ImageList_GetSize);
        newXS_deffile("Wx::ImageList::Replace", XS_Wx__ImageList_Replace);
        newXS_deffile("Wx::NativeFontInfo::new", XS_Wx__NativeFontInfo_new);
        newXS_deffile("Wx::NativeFontInfo::CLONE", XS_Wx__NativeFontInfo_CLONE);
        newXS_deffile("Wx::NativeFontInfo::DESTROY", XS_Wx__NativeFontInfo_DESTROY);
        newXS_deffile("Wx::NativeFontInfo::FromString", XS_Wx__NativeFontInfo_FromString);
        newXS_deffile("Wx::NativeFontInfo::ToString", XS_Wx__NativeFontInfo_ToString);
        newXS_deffile("Wx::NativeFontInfo::FromUserString", XS_Wx__NativeFontInfo_FromUserString);
        newXS_deffile("Wx::NativeFontInfo::ToUserString", XS_Wx__NativeFontInfo_ToUserString);
        newXS_deffile("Wx::Font::new", XS_Wx__Font_new);
        newXS_deffile("Wx::Font::newNativeInfo", XS_Wx__Font_newNativeInfo);
        newXS_deffile("Wx::Font::newFont", XS_Wx__Font_newFont);
        newXS_deffile("Wx::Font::newLong", XS_Wx__Font_newLong);
#if XSubPPtmpAADC
        newXS_deffile("Wx::Font::newSize", XS_Wx__Font_newSize);
#endif
        newXS_deffile("Wx::Font::New", XS_Wx__Font_New);
        newXS_deffile("Wx::Font::NewPoint", XS_Wx__Font_NewPoint);
        newXS_deffile("Wx::Font::NewPointFlags", XS_Wx__Font_NewPointFlags);
#if XSubPPtmpAADD
        newXS_deffile("Wx::Font::NewSize", XS_Wx__Font_NewSize);
        newXS_deffile("Wx::Font::NewSizeFlags", XS_Wx__Font_NewSizeFlags);
#endif
        newXS_deffile("Wx::Font::NewPointStatic", XS_Wx__Font_NewPointStatic);
        newXS_deffile("Wx::Font::NewPointFlagsStatic", XS_Wx__Font_NewPointFlagsStatic);
#if XSubPPtmpAADE
        newXS_deffile("Wx::Font::NewSizeStatic", XS_Wx__Font_NewSizeStatic);
        newXS_deffile("Wx::Font::NewSizeFlagsStatic", XS_Wx__Font_NewSizeFlagsStatic);
#endif
        newXS_deffile("Wx::Font::CLONE", XS_Wx__Font_CLONE);
        newXS_deffile("Wx::Font::DESTROY", XS_Wx__Font_DESTROY);
        newXS_deffile("Wx::Font::font_spaceship", XS_Wx__Font_font_spaceship);
        newXS_deffile("Wx::Font::GetDefaultEncoding", XS_Wx__Font_GetDefaultEncoding);
        newXS_deffile("Wx::Font::GetFaceName", XS_Wx__Font_GetFaceName);
        newXS_deffile("Wx::Font::GetFamily", XS_Wx__Font_GetFamily);
#if XSubPPtmpAADF
        newXS_deffile("Wx::Font::GetNativeFontInfo", XS_Wx__Font_GetNativeFontInfo);
#endif
#if XSubPPtmpAADG
        newXS_deffile("Wx::Font::GetNativeFontInfo", XS_Wx__Font_GetNativeFontInfo);
#endif
        newXS_deffile("Wx::Font::SetNativeFontInfoUserDesc", XS_Wx__Font_SetNativeFontInfoUserDesc);
        newXS_deffile("Wx::Font::GetFamilyString", XS_Wx__Font_GetFamilyString);
        newXS_deffile("Wx::Font::GetStyleString", XS_Wx__Font_GetStyleString);
        newXS_deffile("Wx::Font::GetWeightString", XS_Wx__Font_GetWeightString);
        newXS_deffile("Wx::Font::GetNativeFontInfoDesc", XS_Wx__Font_GetNativeFontInfoDesc);
        newXS_deffile("Wx::Font::GetNativeFontInfoUserDesc", XS_Wx__Font_GetNativeFontInfoUserDesc);
#if XSubPPtmpAADH
        newXS_deffile("Wx::Font::GetPixelSize", XS_Wx__Font_GetPixelSize);
#endif
        newXS_deffile("Wx::Font::GetEncoding", XS_Wx__Font_GetEncoding);
        newXS_deffile("Wx::Font::GetPointSize", XS_Wx__Font_GetPointSize);
        newXS_deffile("Wx::Font::GetStyle", XS_Wx__Font_GetStyle);
        newXS_deffile("Wx::Font::GetUnderlined", XS_Wx__Font_GetUnderlined);
        newXS_deffile("Wx::Font::GetWeight", XS_Wx__Font_GetWeight);
        newXS_deffile("Wx::Font::IsFixedWidth", XS_Wx__Font_IsFixedWidth);
        newXS_deffile("Wx::Font::Ok", XS_Wx__Font_Ok);
#if XSubPPtmpAADI
        newXS_deffile("Wx::Font::IsOk", XS_Wx__Font_IsOk);
#endif
        newXS_deffile("Wx::Font::SetDefaultEncoding", XS_Wx__Font_SetDefaultEncoding);
#if XSubPPtmpAADJ
        newXS_deffile("Wx::Font::SetFaceName", XS_Wx__Font_SetFaceName);
#endif
#if XSubPPtmpAADK
        newXS_deffile("Wx::Font::SetFaceName", XS_Wx__Font_SetFaceName);
#endif
        newXS_deffile("Wx::Font::SetEncoding", XS_Wx__Font_SetEncoding);
        newXS_deffile("Wx::Font::SetFamily", XS_Wx__Font_SetFamily);
        newXS_deffile("Wx::Font::SetNativeFontInfo", XS_Wx__Font_SetNativeFontInfo);
#if XSubPPtmpAADL
        newXS_deffile("Wx::Font::SetPixelSize", XS_Wx__Font_SetPixelSize);
        newXS_deffile("Wx::Font::IsUsingSizeInPixels", XS_Wx__Font_IsUsingSizeInPixels);
#endif
        newXS_deffile("Wx::Font::SetPointSize", XS_Wx__Font_SetPointSize);
        newXS_deffile("Wx::Font::SetStyle", XS_Wx__Font_SetStyle);
        newXS_deffile("Wx::Font::SetUnderlined", XS_Wx__Font_SetUnderlined);
        newXS_deffile("Wx::Font::SetWeight", XS_Wx__Font_SetWeight);
        newXS_deffile("Wx::ColourDatabase::AddColour", XS_Wx__ColourDatabase_AddColour);
        newXS_deffile("Wx::ColourDatabase::Find", XS_Wx__ColourDatabase_Find);
        newXS_deffile("Wx::ColourDatabase::FindName", XS_Wx__ColourDatabase_FindName);
        newXS_deffile("Wx::Colour::new", XS_Wx__Colour_new);
#if XSubPPtmpAADM
        newXS_deffile("Wx::Colour::newRGBA", XS_Wx__Colour_newRGBA);
#endif
        newXS_deffile("Wx::Colour::newRGB", XS_Wx__Colour_newRGB);
        newXS_deffile("Wx::Colour::newName", XS_Wx__Colour_newName);
        newXS_deffile("Wx::Colour::CLONE", XS_Wx__Colour_CLONE);
        newXS_deffile("Wx::Colour::DESTROY", XS_Wx__Colour_DESTROY);
        newXS_deffile("Wx::Colour::Blue", XS_Wx__Colour_Blue);
        newXS_deffile("Wx::Colour::Green", XS_Wx__Colour_Green);
        newXS_deffile("Wx::Colour::Ok", XS_Wx__Colour_Ok);
#if XSubPPtmpAADN
        newXS_deffile("Wx::Colour::IsOk", XS_Wx__Colour_IsOk);
#endif
        newXS_deffile("Wx::Colour::Red", XS_Wx__Colour_Red);
#if XSubPPtmpAADO
        newXS_deffile("Wx::Colour::Alpha", XS_Wx__Colour_Alpha);
        newXS_deffile("Wx::Colour::Set", XS_Wx__Colour_Set);
#endif
#if XSubPPtmpAADP
        newXS_deffile("Wx::Colour::Set", XS_Wx__Colour_Set);
#endif
#if XSubPPtmpAADQ
        newXS_deffile("Wx::Colour::GetAsString", XS_Wx__Colour_GetAsString);
#endif
#if XSubPPtmpAADR
        newXS_deffile("Wx::Colour::GetPixel", XS_Wx__Colour_GetPixel);
#endif
#if XSubPPtmpAADS
        newXS_deffile("Wx::Animation::new", XS_Wx__Animation_new);
        newXS_deffile("Wx::Animation::CLONE", XS_Wx__Animation_CLONE);
        newXS_deffile("Wx::Animation::DESTROY", XS_Wx__Animation_DESTROY);
        newXS_deffile("Wx::Animation::IsOk", XS_Wx__Animation_IsOk);
        newXS_deffile("Wx::Animation::GetDelay", XS_Wx__Animation_GetDelay);
        newXS_deffile("Wx::Animation::GetFrameCount", XS_Wx__Animation_GetFrameCount);
        newXS_deffile("Wx::Animation::GetFrame", XS_Wx__Animation_GetFrame);
        newXS_deffile("Wx::Animation::GetSize", XS_Wx__Animation_GetSize);
        newXS_deffile("Wx::Animation::LoadFile", XS_Wx__Animation_LoadFile);
        newXS_deffile("Wx::Animation::Load", XS_Wx__Animation_Load);
#endif
#if XSubPPtmpAADT
        newXS_deffile("Wx::GraphicsGradientStop::new", XS_Wx__GraphicsGradientStop_new);
        newXS_deffile("Wx::GraphicsGradientStop::CLONE", XS_Wx__GraphicsGradientStop_CLONE);
        newXS_deffile("Wx::GraphicsGradientStop::DESTROY", XS_Wx__GraphicsGradientStop_DESTROY);
        newXS_deffile("Wx::GraphicsGradientStop::GetColour", XS_Wx__GraphicsGradientStop_GetColour);
        newXS_deffile("Wx::GraphicsGradientStop::SetColour", XS_Wx__GraphicsGradientStop_SetColour);
        newXS_deffile("Wx::GraphicsGradientStop::GetPosition", XS_Wx__GraphicsGradientStop_GetPosition);
        newXS_deffile("Wx::GraphicsGradientStop::SetPosition", XS_Wx__GraphicsGradientStop_SetPosition);
        newXS_deffile("Wx::GraphicsGradientStops::new", XS_Wx__GraphicsGradientStops_new);
        newXS_deffile("Wx::GraphicsGradientStops::CLONE", XS_Wx__GraphicsGradientStops_CLONE);
        newXS_deffile("Wx::GraphicsGradientStops::DESTROY", XS_Wx__GraphicsGradientStops_DESTROY);
        newXS_deffile("Wx::GraphicsGradientStops::AddStop", XS_Wx__GraphicsGradientStops_AddStop);
        newXS_deffile("Wx::GraphicsGradientStops::AddColour", XS_Wx__GraphicsGradientStops_AddColour);
        newXS_deffile("Wx::GraphicsGradientStops::GetCount", XS_Wx__GraphicsGradientStops_GetCount);
        newXS_deffile("Wx::GraphicsGradientStops::Item", XS_Wx__GraphicsGradientStops_Item);
        newXS_deffile("Wx::GraphicsGradientStops::SetStartColour", XS_Wx__GraphicsGradientStops_SetStartColour);
        newXS_deffile("Wx::GraphicsGradientStops::GetStartColour", XS_Wx__GraphicsGradientStops_GetStartColour);
        newXS_deffile("Wx::GraphicsGradientStops::SetEndColour", XS_Wx__GraphicsGradientStops_SetEndColour);
        newXS_deffile("Wx::GraphicsGradientStops::GetEndColour", XS_Wx__GraphicsGradientStops_GetEndColour);
#if XSubPPtmpAADU
        newXS_deffile("Wx::GraphicsGradientStops::Add", XS_Wx__GraphicsGradientStops_Add);
#endif
#endif
#if XSubPPtmpAADV
        newXS_deffile("Wx::GraphicsRenderer::GetDefaultRenderer", XS_Wx__GraphicsRenderer_GetDefaultRenderer);
        newXS_deffile("Wx::GraphicsRenderer::CreateContext", XS_Wx__GraphicsRenderer_CreateContext);
        newXS_deffile("Wx::GraphicsRenderer::CreateFromWindowDC", XS_Wx__GraphicsRenderer_CreateFromWindowDC);
        newXS_deffile("Wx::GraphicsRenderer::CreateFromWindow", XS_Wx__GraphicsRenderer_CreateFromWindow);
#if XSubPPtmpAADW
        newXS_deffile("Wx::GraphicsRenderer::CreateFromMemoryDC", XS_Wx__GraphicsRenderer_CreateFromMemoryDC);
#endif
#if XSubPPtmpAADX
        newXS_deffile("Wx::GraphicsRenderer::CreateFromPrinterDC", XS_Wx__GraphicsRenderer_CreateFromPrinterDC);
#endif
        newXS_deffile("Wx::GraphicsRenderer::CreateMeasuringContext", XS_Wx__GraphicsRenderer_CreateMeasuringContext);
        newXS_deffile("Wx::GraphicsRenderer::CreatePath", XS_Wx__GraphicsRenderer_CreatePath);
        newXS_deffile("Wx::GraphicsRenderer::CreateMatrix", XS_Wx__GraphicsRenderer_CreateMatrix);
        newXS_deffile("Wx::GraphicsRenderer::CreatePen", XS_Wx__GraphicsRenderer_CreatePen);
        newXS_deffile("Wx::GraphicsRenderer::CreateBrush", XS_Wx__GraphicsRenderer_CreateBrush);
#if XSubPPtmpAADY
        newXS_deffile("Wx::GraphicsRenderer::CreateLinearGradientBrush0", XS_Wx__GraphicsRenderer_CreateLinearGradientBrush0);
        newXS_deffile("Wx::GraphicsRenderer::CreateRadialGradientBrush0", XS_Wx__GraphicsRenderer_CreateRadialGradientBrush0);
#endif
#if XSubPPtmpAADZ
        newXS_deffile("Wx::GraphicsRenderer::CreateLinearGradientBrush1", XS_Wx__GraphicsRenderer_CreateLinearGradientBrush1);
        newXS_deffile("Wx::GraphicsRenderer::CreateRadialGradientBrush1", XS_Wx__GraphicsRenderer_CreateRadialGradientBrush1);
#endif
        newXS_deffile("Wx::GraphicsRenderer::CreateFont", XS_Wx__GraphicsRenderer_CreateFont);
#if XSubPPtmpAAEA
        newXS_deffile("Wx::GraphicsRenderer::CreateRadialGradientBrush", XS_Wx__GraphicsRenderer_CreateRadialGradientBrush);
#endif
#if XSubPPtmpAAEB
        newXS_deffile("Wx::GraphicsRenderer::CreateLinearGradientBrush", XS_Wx__GraphicsRenderer_CreateLinearGradientBrush);
#endif
#endif
#if XSubPPtmpAAEC
        newXS_deffile("Wx::GraphicsObject::CLONE", XS_Wx__GraphicsObject_CLONE);
        newXS_deffile("Wx::GraphicsObject::DESTROY", XS_Wx__GraphicsObject_DESTROY);
        newXS_deffile("Wx::GraphicsObject::GetRenderer", XS_Wx__GraphicsObject_GetRenderer);
        newXS_deffile("Wx::GraphicsObject::IsNull", XS_Wx__GraphicsObject_IsNull);
#endif
#if XSubPPtmpAAED
        newXS_deffile("Wx::GraphicsMatrix::Concat", XS_Wx__GraphicsMatrix_Concat);
        newXS_deffile("Wx::GraphicsMatrix::Get", XS_Wx__GraphicsMatrix_Get);
        newXS_deffile("Wx::GraphicsMatrix::Invert", XS_Wx__GraphicsMatrix_Invert);
        newXS_deffile("Wx::GraphicsMatrix::IsEqual", XS_Wx__GraphicsMatrix_IsEqual);
        newXS_deffile("Wx::GraphicsMatrix::IsIdentity", XS_Wx__GraphicsMatrix_IsIdentity);
        newXS_deffile("Wx::GraphicsMatrix::Rotate", XS_Wx__GraphicsMatrix_Rotate);
        newXS_deffile("Wx::GraphicsMatrix::Scale", XS_Wx__GraphicsMatrix_Scale);
        newXS_deffile("Wx::GraphicsMatrix::Translate", XS_Wx__GraphicsMatrix_Translate);
        newXS_deffile("Wx::GraphicsMatrix::Set", XS_Wx__GraphicsMatrix_Set);
        newXS_deffile("Wx::GraphicsMatrix::TransformPoint", XS_Wx__GraphicsMatrix_TransformPoint);
        newXS_deffile("Wx::GraphicsMatrix::TransformDistance", XS_Wx__GraphicsMatrix_TransformDistance);
#endif
#if XSubPPtmpAAEE
        newXS_deffile("Wx::GraphicsPath::MoveToPoint", XS_Wx__GraphicsPath_MoveToPoint);
        newXS_deffile("Wx::GraphicsPath::AddArc", XS_Wx__GraphicsPath_AddArc);
        newXS_deffile("Wx::GraphicsPath::AddArcToPoint", XS_Wx__GraphicsPath_AddArcToPoint);
        newXS_deffile("Wx::GraphicsPath::AddCircle", XS_Wx__GraphicsPath_AddCircle);
        newXS_deffile("Wx::GraphicsPath::AddCurveToPoint", XS_Wx__GraphicsPath_AddCurveToPoint);
        newXS_deffile("Wx::GraphicsPath::AddEllipse", XS_Wx__GraphicsPath_AddEllipse);
        newXS_deffile("Wx::GraphicsPath::AddLineToPoint", XS_Wx__GraphicsPath_AddLineToPoint);
        newXS_deffile("Wx::GraphicsPath::AddPath", XS_Wx__GraphicsPath_AddPath);
        newXS_deffile("Wx::GraphicsPath::AddQuadCurveToPoint", XS_Wx__GraphicsPath_AddQuadCurveToPoint);
        newXS_deffile("Wx::GraphicsPath::AddRectangle", XS_Wx__GraphicsPath_AddRectangle);
        newXS_deffile("Wx::GraphicsPath::AddRoundedRectangle", XS_Wx__GraphicsPath_AddRoundedRectangle);
        newXS_deffile("Wx::GraphicsPath::CloseSubpath", XS_Wx__GraphicsPath_CloseSubpath);
        newXS_deffile("Wx::GraphicsPath::Contains", XS_Wx__GraphicsPath_Contains);
        newXS_deffile("Wx::GraphicsPath::GetBox", XS_Wx__GraphicsPath_GetBox);
        newXS_deffile("Wx::GraphicsPath::GetCurrentPoint", XS_Wx__GraphicsPath_GetCurrentPoint);
        newXS_deffile("Wx::GraphicsPath::Transform", XS_Wx__GraphicsPath_Transform);
#endif
#if XSubPPtmpAAEF
        newXS_deffile("Wx::GraphicsContext::CLONE", XS_Wx__GraphicsContext_CLONE);
        newXS_deffile("Wx::GraphicsContext::DESTROY", XS_Wx__GraphicsContext_DESTROY);
        newXS_deffile("Wx::GraphicsContext::Create", XS_Wx__GraphicsContext_Create);
        newXS_deffile("Wx::GraphicsContext::createFromWindow", XS_Wx__GraphicsContext_createFromWindow);
        newXS_deffile("Wx::GraphicsContext::createFromWindowDC", XS_Wx__GraphicsContext_createFromWindowDC);
#if XSubPPtmpAAEG
        newXS_deffile("Wx::GraphicsContext::createFromPrinterDC", XS_Wx__GraphicsContext_createFromPrinterDC);
#endif
#if XSubPPtmpAAEH
        newXS_deffile("Wx::GraphicsContext::createFromMemoryDC", XS_Wx__GraphicsContext_createFromMemoryDC);
#endif
        newXS_deffile("Wx::GraphicsContext::createMeasuringContext", XS_Wx__GraphicsContext_createMeasuringContext);
        newXS_deffile("Wx::GraphicsContext::CreatePen", XS_Wx__GraphicsContext_CreatePen);
        newXS_deffile("Wx::GraphicsContext::CreateBrush", XS_Wx__GraphicsContext_CreateBrush);
        newXS_deffile("Wx::GraphicsContext::CreateRadialGradientBrush", XS_Wx__GraphicsContext_CreateRadialGradientBrush);
        newXS_deffile("Wx::GraphicsContext::CreateLinearGradientBrush", XS_Wx__GraphicsContext_CreateLinearGradientBrush);
        newXS_deffile("Wx::GraphicsContext::CreateFont", XS_Wx__GraphicsContext_CreateFont);
        newXS_deffile("Wx::GraphicsContext::CreateMatrix", XS_Wx__GraphicsContext_CreateMatrix);
        newXS_deffile("Wx::GraphicsContext::CreatePath", XS_Wx__GraphicsContext_CreatePath);
        newXS_deffile("Wx::GraphicsContext::Clip", XS_Wx__GraphicsContext_Clip);
        newXS_deffile("Wx::GraphicsContext::ClipXYWH", XS_Wx__GraphicsContext_ClipXYWH);
        newXS_deffile("Wx::GraphicsContext::ClipRegion", XS_Wx__GraphicsContext_ClipRegion);
        newXS_deffile("Wx::GraphicsContext::ResetClip", XS_Wx__GraphicsContext_ResetClip);
        newXS_deffile("Wx::GraphicsContext::DrawBitmap", XS_Wx__GraphicsContext_DrawBitmap);
        newXS_deffile("Wx::GraphicsContext::DrawEllipse", XS_Wx__GraphicsContext_DrawEllipse);
        newXS_deffile("Wx::GraphicsContext::DrawIcon", XS_Wx__GraphicsContext_DrawIcon);
        newXS_deffile("Wx::GraphicsContext::DrawLines", XS_Wx__GraphicsContext_DrawLines);
        newXS_deffile("Wx::GraphicsContext::DrawPath", XS_Wx__GraphicsContext_DrawPath);
        newXS_deffile("Wx::GraphicsContext::DrawRectangle", XS_Wx__GraphicsContext_DrawRectangle);
        newXS_deffile("Wx::GraphicsContext::DrawRoundedRectangle", XS_Wx__GraphicsContext_DrawRoundedRectangle);
        newXS_deffile("Wx::GraphicsContext::DrawText", XS_Wx__GraphicsContext_DrawText);
        newXS_deffile("Wx::GraphicsContext::DrawTextAngle", XS_Wx__GraphicsContext_DrawTextAngle);
        newXS_deffile("Wx::GraphicsContext::DrawTextNoAngle", XS_Wx__GraphicsContext_DrawTextNoAngle);
        newXS_deffile("Wx::GraphicsContext::FillPath", XS_Wx__GraphicsContext_FillPath);
        newXS_deffile("Wx::GraphicsContext::StrokePath", XS_Wx__GraphicsContext_StrokePath);
        newXS_deffile("Wx::GraphicsContext::GetTextExtent", XS_Wx__GraphicsContext_GetTextExtent);
        newXS_deffile("Wx::GraphicsContext::GetPartialTextExtents", XS_Wx__GraphicsContext_GetPartialTextExtents);
        newXS_deffile("Wx::GraphicsContext::Rotate", XS_Wx__GraphicsContext_Rotate);
        newXS_deffile("Wx::GraphicsContext::Scale", XS_Wx__GraphicsContext_Scale);
        newXS_deffile("Wx::GraphicsContext::Translate", XS_Wx__GraphicsContext_Translate);
        newXS_deffile("Wx::GraphicsContext::GetTransform", XS_Wx__GraphicsContext_GetTransform);
        newXS_deffile("Wx::GraphicsContext::SetTransform", XS_Wx__GraphicsContext_SetTransform);
        newXS_deffile("Wx::GraphicsContext::ConcatTransform", XS_Wx__GraphicsContext_ConcatTransform);
        newXS_deffile("Wx::GraphicsContext::SetBrush", XS_Wx__GraphicsContext_SetBrush);
        newXS_deffile("Wx::GraphicsContext::SetBrushBrush", XS_Wx__GraphicsContext_SetBrushBrush);
        newXS_deffile("Wx::GraphicsContext::SetBrushGraphics", XS_Wx__GraphicsContext_SetBrushGraphics);
        newXS_deffile("Wx::GraphicsContext::SetFont", XS_Wx__GraphicsContext_SetFont);
        newXS_deffile("Wx::GraphicsContext::SetFontFont", XS_Wx__GraphicsContext_SetFontFont);
        newXS_deffile("Wx::GraphicsContext::SetFontGraphics", XS_Wx__GraphicsContext_SetFontGraphics);
        newXS_deffile("Wx::GraphicsContext::SetPen", XS_Wx__GraphicsContext_SetPen);
        newXS_deffile("Wx::GraphicsContext::SetPenPen", XS_Wx__GraphicsContext_SetPenPen);
        newXS_deffile("Wx::GraphicsContext::SetPenGraphics", XS_Wx__GraphicsContext_SetPenGraphics);
        newXS_deffile("Wx::GraphicsContext::StrokeLine", XS_Wx__GraphicsContext_StrokeLine);
        newXS_deffile("Wx::GraphicsContext::StrokeLines", XS_Wx__GraphicsContext_StrokeLines);
        newXS_deffile("Wx::GraphicsContext::StrokeLinesOne", XS_Wx__GraphicsContext_StrokeLinesOne);
        newXS_deffile("Wx::GraphicsContext::StrokeLinesTwo", XS_Wx__GraphicsContext_StrokeLinesTwo);
        newXS_deffile("Wx::GraphicsContext::PopState", XS_Wx__GraphicsContext_PopState);
        newXS_deffile("Wx::GraphicsContext::PushState", XS_Wx__GraphicsContext_PushState);
#endif
#if XSubPPtmpAAEI
        newXS_deffile("Wx::SVGFileDC::new", XS_Wx__SVGFileDC_new);
#endif
        newXS_deffile("Wx::GetClientDisplayRect", XS_Wx_GetClientDisplayRect);
        newXS_deffile("Wx::ColourDisplay", XS_Wx_ColourDisplay);
        newXS_deffile("Wx::DisplayDepth", XS_Wx_DisplayDepth);
        newXS_deffile("Wx::GetDisplaySizeMM", XS_Wx_GetDisplaySizeMM);
        newXS_deffile("Wx::GetDisplaySize", XS_Wx_GetDisplaySize);

    /* Initialisation Section */

#if XSubPPtmpAAAA
#endif
#if XSubPPtmpAAAB
#endif
#if XSubPPtmpAAAC
#endif
#if XSubPPtmpAAAD
#endif
#if XSubPPtmpAAAE
#endif
#if XSubPPtmpAAAF
#endif
#if XSubPPtmpAAAG
#endif
#if XSubPPtmpAAAH
#endif
#if XSubPPtmpAAAI
#endif
#if XSubPPtmpAAAJ
#endif
#if XSubPPtmpAAAK
#endif
#if XSubPPtmpAAAL
#endif
#if XSubPPtmpAAAM
#endif
#if XSubPPtmpAAAN
#endif
#if XSubPPtmpAAAO
#endif
#if XSubPPtmpAAAP
#endif
#if XSubPPtmpAAAQ
#endif
#if XSubPPtmpAAAR
#endif
#if XSubPPtmpAAAS
#endif
#if XSubPPtmpAAAT
#endif
#if XSubPPtmpAAAU
#endif
#if XSubPPtmpAAAV
#endif
#if XSubPPtmpAAAW
#endif
#if XSubPPtmpAAAX
#endif
#if XSubPPtmpAAAY
#endif
#if XSubPPtmpAAAZ
#endif
#if XSubPPtmpAABA
#endif
#if XSubPPtmpAABB
#endif
#if XSubPPtmpAABC
#endif
#if XSubPPtmpAABD
#endif
#if XSubPPtmpAABE
#endif
    {
        AV* isa = get_av( "Wx::Brush::ISA", 1 );
        av_store( isa, 0, newSVpv( "Wx::GDIObject", 0 ) );
    } // blank line here is important

#if XSubPPtmpAABF
#endif
#if XSubPPtmpAABG
#endif
#if XSubPPtmpAABH
#endif
#if XSubPPtmpAABI
#endif
#if XSubPPtmpAABJ
#endif
#if XSubPPtmpAABK
#endif
#if XSubPPtmpAABL
#endif
#if XSubPPtmpAABM
#endif
#if XSubPPtmpAABN
#endif
#if XSubPPtmpAABO
#endif
#if XSubPPtmpAABP
#endif
#if XSubPPtmpAABQ
#endif
#if XSubPPtmpAABR
#endif
#if XSubPPtmpAABS
#endif
#if XSubPPtmpAABT
#endif
#if XSubPPtmpAABU
#endif
#if XSubPPtmpAABV
#endif
#if XSubPPtmpAABW
#endif
#if XSubPPtmpAABX
#if XSubPPtmpAABY
#endif
#if XSubPPtmpAABZ
#endif
#endif
#if XSubPPtmpAACA
#endif
#if XSubPPtmpAACB
#endif
#if XSubPPtmpAACC
#endif
#if XSubPPtmpAACD
#endif
#if XSubPPtmpAACE
#endif
#if XSubPPtmpAACF
#endif
#if XSubPPtmpAACG
#endif
#if XSubPPtmpAACH
#endif
#if XSubPPtmpAACI
#endif
#if XSubPPtmpAACJ
#endif
#if XSubPPtmpAACK
#endif
#if XSubPPtmpAACL
#endif
#if XSubPPtmpAACM
#endif
#if XSubPPtmpAACN
#endif
#if XSubPPtmpAACO
#endif
#if XSubPPtmpAACP
#endif
#if XSubPPtmpAACQ
#endif
#if XSubPPtmpAACR
#endif
#if XSubPPtmpAACS
#endif
#if XSubPPtmpAACT
#endif
#if XSubPPtmpAACU
#endif
#if XSubPPtmpAACV
#endif
#if XSubPPtmpAACW
#endif
#if XSubPPtmpAACX
#endif
#if XSubPPtmpAACY
#endif
#if XSubPPtmpAACZ
#endif
#if XSubPPtmpAADA
#endif
#if XSubPPtmpAADB
#endif
#if XSubPPtmpAADC
#endif
#if XSubPPtmpAADD
#endif
#if XSubPPtmpAADE
#endif
#if XSubPPtmpAADF
#endif
#if XSubPPtmpAADG
#endif
#if XSubPPtmpAADH
#endif
#if XSubPPtmpAADI
#endif
#if XSubPPtmpAADJ
#endif
#if XSubPPtmpAADK
#endif
#if XSubPPtmpAADL
#endif
#if XSubPPtmpAADM
#endif
#if XSubPPtmpAADN
#endif
#if XSubPPtmpAADO
#endif
#if XSubPPtmpAADP
#endif
#if XSubPPtmpAADQ
#endif
#if XSubPPtmpAADR
#endif
#if XSubPPtmpAADS
#endif
#if XSubPPtmpAADT
#if XSubPPtmpAADU
#endif
#endif
#if XSubPPtmpAADV
#if XSubPPtmpAADW
#endif
#if XSubPPtmpAADX
#endif
#if XSubPPtmpAADY
#endif
#if XSubPPtmpAADZ
#endif
#if XSubPPtmpAAEA
#endif
#if XSubPPtmpAAEB
#endif
#endif
#if XSubPPtmpAAEC
#endif
#if XSubPPtmpAAED
#endif
#if XSubPPtmpAAEE
#endif
#if XSubPPtmpAAEF
#if XSubPPtmpAAEG
#endif
#if XSubPPtmpAAEH
#endif
#endif
#if XSubPPtmpAAEI
#endif

    /* End of Initialisation Section */

#if PERL_VERSION_LE(5, 21, 5)
#  if PERL_VERSION_GE(5, 9, 0)
    if (PL_unitcheckav)
        call_list(PL_scopestack_ix, PL_unitcheckav);
#  endif
    XSRETURN_YES;
#else
    Perl_xs_boot_epilog(aTHX_ ax);
#endif
}

