#############################################################################
## Name: XS/ArtProvider.xsp
## Purpose: XS++ for wxArtProvider class
## Author: Matthew "Cheetah" Gabeler-Lee
## Modified by:
## Created: 10/01/2005
## RCS-ID: $Id: ArtProvider.xsp 2927 2010-06-06 08:06:10Z mbarbon $
## Copyright: (c) 2005-2008, 2010 Matthew Gabeler-Lee
## Licence: This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself
#############################################################################
%module{Wx};
%typemap{wxPlArtProvider*}{simple};
%file{xspp/artprov.h};
%{
#include "cpp/v_cback.h"
#define DEC_V_CBACK_WXBITMAP__WXARTID_WXARTCLIENT_WXSIZE_pure( METHOD ) \
wxBitmap METHOD( const wxArtID& id, const wxArtClient& client, const wxSize& size )
#define DEF_V_CBACK_WXBITMAP__WXARTID_WXARTCLIENT_WXSIZE_pure( CLASS, BASE, METHOD ) \
wxBitmap CLASS::METHOD( const wxArtID& id, const wxArtClient& client, \
const wxSize& size ) \
{ \
dTHX; \
if( wxPliVirtualCallback_FindCallback( aTHX_ &m_callback, #METHOD ) ) \
{ \
wxAutoSV ret( aTHX_ wxPliCCback( aTHX_ &m_callback, \
G_SCALAR, "PPo", &id, &client, \
new wxSize( size ), "Wx::Size" ) ); \
return *(wxBitmap*)wxPli_sv_2_object( aTHX_ ret, "Wx::Bitmap" ); \
} else \
return wxNullBitmap; \
}
#define DEC_V_CBACK_WXICONBUNDLE__WXARTID_WXARTCLIENT_pure( METHOD ) \
wxIconBundle METHOD( const wxArtID& id, const wxArtClient& client )
#define DEF_V_CBACK_WXICONBUNDLE__WXARTID_WXARTCLIENT_pure( CLASS, BASE, METHOD ) \
wxIconBundle CLASS::METHOD( const wxArtID& id, const wxArtClient& client ) \
{ \
dTHX; \
if( wxPliVirtualCallback_FindCallback( aTHX_ &m_callback, #METHOD ) ) \
{ \
wxAutoSV ret( aTHX_ wxPliCCback( aTHX_ &m_callback, \
G_SCALAR, "PP", &id, &client ) ); \
return *(wxIconBundle*)wxPli_sv_2_object( aTHX_ ret, "Wx::IconBundle" ); \
} else \
return wxNullIconBundle; \
}
class wxPlArtProvider : public wxArtProvider
{
WXPLI_DECLARE_DYNAMIC_CLASS( wxPlArtProvider );
WXPLI_DECLARE_V_CBACK();
public:
wxPlArtProvider( const char* package )
: m_callback( "Wx::ArtProvider" )
{
m_callback.SetSelf( wxPli_make_object( this, package ), true );
}
DEC_V_CBACK_WXBITMAP__WXARTID_WXARTCLIENT_WXSIZE_pure( CreateBitmap );
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
DEC_V_CBACK_WXICONBUNDLE__WXARTID_WXARTCLIENT_pure( CreateIconBundle );
#endif
};
DEF_V_CBACK_WXBITMAP__WXARTID_WXARTCLIENT_WXSIZE_pure( wxPlArtProvider,
wxArtProvider, CreateBitmap );
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
DEF_V_CBACK_WXICONBUNDLE__WXARTID_WXARTCLIENT_pure( wxPlArtProvider,
wxArtProvider, CreateIconBundle );
#endif
#if WXPERL_W_VERSION_GE( 2, 5, 1 )
WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlArtProvider, wxArtProvider );
#else
WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlArtProvider, wxObject );
#endif
%}
%file{-};
%{
#if WXPERL_W_VERSION_GE( 2, 5, 2 )
#include <wx/artprov.h>
#include "xspp/artprov.h"
MODULE=Wx PACKAGE=Wx::ArtProvider
#!sub CreateBitmap
#!sub CreateIconBundle
wxBitmap*
GetBitmap( id, client = wxART_OTHER, size = wxDefaultSize )
wxString id
wxString client
wxSize size
CODE:
RETVAL = new wxBitmap( wxArtProvider::GetBitmap( id, client, size ) );
OUTPUT: RETVAL
wxIcon*
GetIcon( id, client = wxART_OTHER, size = wxDefaultSize )
wxString id
wxString client
wxSize size
CODE:
RETVAL = new wxIcon( wxArtProvider::GetIcon( id, client, size ) );
OUTPUT: RETVAL
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
wxIconBundle*
GetIconBundle( id, client = wxART_OTHER )
wxString id
wxString client
CODE:
RETVAL = new wxIconBundle( wxArtProvider::GetIconBundle( id, client ) );
OUTPUT: RETVAL
#endif
bool
PopProvider()
CODE:
#if WXPERL_W_VERSION_GE( 2, 7, 1 )
RETVAL = wxArtProvider::Pop();
#else
RETVAL = wxArtProvider::PopProvider();
#endif
OUTPUT: RETVAL
void
PushProvider( provider )
wxArtProvider* provider
CODE:
#if WXPERL_W_VERSION_GE( 2, 7, 1 )
wxArtProvider::Push( provider);
#else
wxArtProvider::PushProvider( provider);
#endif
#if WXPERL_W_VERSION_GE( 2, 7, 1 )
void
InsertProvider( provider )
wxArtProvider* provider
CODE:
#if WXPERL_W_VERSION_GE( 2, 9, 0 )
wxArtProvider::PushBack( provider);
#else
wxArtProvider::Insert( provider);
#endif
#endif
bool
RemoveProvider( provider )
wxArtProvider* provider
CODE:
#if WXPERL_W_VERSION_GE( 2, 7, 1 )
RETVAL = wxArtProvider::Remove( provider );
#else
RETVAL = wxArtProvider::RemoveProvider( provider );
#endif
OUTPUT: RETVAL
#if WXPERL_W_VERSION_GE( 2, 7, 2 )
bool
DeleteProvider( provider )
wxArtProvider* provider
CODE:
RETVAL = wxArtProvider::Delete( provider );
OUTPUT: RETVAL
#endif
MODULE=Wx PACKAGE=Wx::PlArtProvider
wxPlArtProvider*
wxPlArtProvider::new()
CODE:
RETVAL = new wxPlArtProvider( CLASS );
OUTPUT: RETVAL
%}
%name{Wx::PlArtProvider} class wxPlArtProvider
{
wxBitmap CreateBitmap( const wxArtID& id, const wxArtClient& client,
const wxSize& size );
};
#endif