Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / cpp / artprov.h
1
2
3
4 #include "cpp/v_cback.h"
5
6 #define DEC_V_CBACK_WXBITMAP__WXARTID_WXARTCLIENT_WXSIZE_pure( METHOD ) \
7   wxBitmap METHOD( const wxArtID& id, const wxArtClient& client, const wxSize& size )
8
9 #define DEF_V_CBACK_WXBITMAP__WXARTID_WXARTCLIENT_WXSIZE_pure( CLASS, BASE, METHOD ) \
10   wxBitmap CLASS::METHOD( const wxArtID& id, const wxArtClient& client,      \
11                           const wxSize& size )                               \
12   {                                                                          \
13       dTHX;                                                                  \
14       if( wxPliVirtualCallback_FindCallback( aTHX_ &m_callback, #METHOD ) )  \
15       {                                                                      \
16           wxAutoSV ret( aTHX_ wxPliCCback( aTHX_ &m_callback,                \
17                         G_SCALAR, "PPo", &id, &client, new wxSize( size ) ) );\
18           return *(wxBitmap*)wxPli_sv_2_object( aTHX_ ret, "Wx::Bitmap" );   \
19       } else                                                                 \
20           return wxNullBitmap;                                               \
21   }
22
23 #define DEC_V_CBACK_WXICONBUNDLE__WXARTID_WXARTCLIENT_pure( METHOD ) \
24   wxIconBundle METHOD( const wxArtID& id, const wxArtClient& client )
25
26 #define DEF_V_CBACK_WXICONBUNDLE__WXARTID_WXARTCLIENT_pure( CLASS, BASE, METHOD ) \
27   wxIconBundle CLASS::METHOD( const wxArtID& id, const wxArtClient& client )     \
28   {                                                                          \
29       dTHX;                                                                  \
30       if( wxPliVirtualCallback_FindCallback( aTHX_ &m_callback, #METHOD ) )  \
31       {                                                                      \
32           wxAutoSV ret( aTHX_ wxPliCCback( aTHX_ &m_callback,                \
33                         G_SCALAR, "PP", &id, &client ) );                    \
34           return *(wxIconBundle*)wxPli_sv_2_object( aTHX_ ret, "Wx::IconBundle" );   \
35       } else                                                                 \
36           return wxNullIconBundle;                                           \
37   }
38
39 class wxPlArtProvider : public wxArtProvider
40 {
41     WXPLI_DECLARE_DYNAMIC_CLASS( wxPlArtProvider );
42     WXPLI_DECLARE_V_CBACK();
43 public:
44     wxPlArtProvider( const char* package )
45       : m_callback( "Wx::ArtProvider" )
46     {
47         m_callback.SetSelf( wxPli_make_object( this, package ), true );
48     }
49
50     DEC_V_CBACK_WXBITMAP__WXARTID_WXARTCLIENT_WXSIZE_pure( CreateBitmap );
51 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
52     DEC_V_CBACK_WXICONBUNDLE__WXARTID_WXARTCLIENT_pure( CreateIconBundle );
53 #endif
54 };
55
56 DEF_V_CBACK_WXBITMAP__WXARTID_WXARTCLIENT_WXSIZE_pure( wxPlArtProvider,
57   wxArtProvider, CreateBitmap );
58 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
59 DEF_V_CBACK_WXICONBUNDLE__WXARTID_WXARTCLIENT_pure( wxPlArtProvider,
60   wxArtProvider, CreateIconBundle );
61 #endif
62
63 #if WXPERL_W_VERSION_GE( 2, 5, 1 )
64 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlArtProvider, wxArtProvider );
65 #else
66 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlArtProvider, wxObject );
67 #endif
68
69
70