############################################################################# ## Name: XS/Palette.xs ## Purpose: XS for Wx::Palette ## Author: Mattia Barbon ## Modified by: ## Created: 09/01/2000 ## RCS-ID: $Id: Palette.xs 2069 2007-07-08 15:33:40Z mbarbon $ ## Copyright: (c) 2001-2002, 2004, 2006-2007 Mattia Barbon ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# #include MODULE=Wx PACKAGE=Wx::Palette wxPalette* wxPalette::new( r, g, b ) SV* r SV* g SV* b PREINIT: unsigned char* red; unsigned char* green; unsigned char* blue; int rn, gn, bn; CODE: 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; OUTPUT: RETVAL static void wxPalette::CLONE() CODE: wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object ); ## // thread OK void wxPalette::DESTROY() CODE: wxPli_thread_sv_unregister( aTHX_ "Wx::Palette", THIS, ST(0) ); delete THIS; #if WXPERL_W_VERSION_GE( 2, 6, 1 ) int wxPalette::GetColoursCount() #endif int wxPalette::GetPixel( red, green, blue ) unsigned char red unsigned char green unsigned char blue void wxPalette::GetRGB( pixel ) int pixel PREINIT: unsigned char red, green, blue; PPCODE: 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 ); } bool wxPalette::Ok() #if WXPERL_W_VERSION_GE( 2, 8, 0 ) bool wxPalette::IsOk() #endif