The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#############################################################################
## Name:        XS/IconBundle.xsp
## Purpose:     XS++ for Wx::IconBundle
## Author:      Mattia Barbon
## Modified by:
## Created:     25/03/2003
## RCS-ID:      $Id: IconBundle.xsp 2968 2010-08-28 10:52:46Z mbarbon $
## Copyright:   (c) 2003, 2005, 2007-2008, 2010 Mattia Barbon
## Licence:     This program is free software; you can redistribute it and/or
##              modify it under the same terms as Perl itself
#############################################################################

%module{Wx};

#include <wx/icon.h>
#include <wx/iconbndl.h>
#include "cpp/overload.h"

%typemap{wxBitmapType}{simple};

%name{Wx::IconBundle} class wxIconBundle
{
    %name{newEmpty} wxIconBundle();
    %name{newFile} wxIconBundle( const wxString& file,
                                 wxBitmapType type = wxBITMAP_TYPE_ANY );
    %name{newIcon} wxIconBundle( const wxIcon& icon );

    %name{AddIconFile} void AddIcon( const wxString& filr,
                                     wxBitmapType type = wxBITMAP_TYPE_ANY );
    %name{AddIconIcon} void AddIcon( const wxIcon& icon );

    %name{GetIconSize} const wxIcon& GetIcon( const wxSize& size );
    %name{GetIconCoord} const wxIcon& GetIcon( wxCoord size = -1 );

#if WXPERL_W_VERSION_GE( 2, 9, 0 )
    bool IsEmpty();

    %name{GetIconOfExactSizeSize}
    const wxIcon& GetIconOfExactSize( const wxSize& size );
    %name{GetIconOfExactSizeCoord}
    const wxIcon& GetIconOfExactSize( wxCoord size = -1 );

%{

void
wxIconBundle::GetIconOfExactSize( ... )
  PPCODE:
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wsiz, GetIconOfExactSizeSize )
        MATCH_REDISP( wxPliOvl_n, GetIconOfExactSizeCoord )
    END_OVERLOAD( Wx::IconBundle::GetIconOfExactSize )

%}

#endif
};

%{

void
wxIconBundle::new( ... )
  PPCODE:
    BEGIN_OVERLOAD()
        MATCH_VOIDM_REDISP( newEmpty )
        MATCH_REDISP( wxPliOvl_wico, newIcon )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_n, newFile, 1 )
    END_OVERLOAD( Wx::IconBundle::new )

void
wxIconBundle::AddIcon( ... )
  PPCODE:
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wico, AddIconIcon )
        MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_n, AddIconFile, 1 )
    END_OVERLOAD( Wx::IconBundle::AddIcon )

void
wxIconBundle::GetIcon( ... )
  PPCODE:
    BEGIN_OVERLOAD()
        MATCH_REDISP( wxPliOvl_wsiz, GetIconSize )
        MATCH_REDISP( wxPliOvl_n, GetIconCoord )
    END_OVERLOAD( Wx::IconBundle::GetIcon )

%}