############################################################################# ## Name: XS/Pen.xs ## Purpose: XS for Wx::Pen ## Author: Mattia Barbon ## Modified by: ## Created: 21/11/2000 ## RCS-ID: $Id: Pen.xs 3125 2011-11-21 02:47:30Z mdootson $ ## Copyright: (c) 2000-2003, 2004, 2006-2008 Mattia Barbon ## Licence: This program is free software; you can redistribute it and/or ## modify it under the same terms as Perl itself ############################################################################# #include #include MODULE=Wx PACKAGE=Wx::Pen void wxPen::new( ... ) PPCODE: 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 ) wxPen* newColour( CLASS, colour, width, style ) SV* CLASS wxColour* colour int width int style CODE: RETVAL = new wxPen( *colour, width, style ); OUTPUT: RETVAL wxPen* newString( CLASS, name, width, style ) SV* CLASS wxString name int width int style CODE: RETVAL = new wxPen( name, width, style ); OUTPUT: RETVAL #if defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ ) wxPen* newBitmap( CLASS, stipple, width ) SV* CLASS wxBitmap* stipple int width CODE: RETVAL = new wxPen( *stipple, width ); OUTPUT: RETVAL #endif static void wxPen::CLONE() CODE: wxPli_thread_sv_clone( aTHX_ CLASS, (wxPliCloneSV)wxPli_detach_object ); ## // thread OK void wxPen::DESTROY() CODE: wxPli_thread_sv_unregister( aTHX_ "Wx::Pen", THIS, ST(0) ); delete THIS; wxPenCap wxPen::GetCap() wxColour* wxPen::GetColour() CODE: RETVAL = new wxColour( THIS->GetColour() ); OUTPUT: RETVAL void wxPen::GetDashes() PREINIT: int i, n; wxDash* array; PPCODE: n = THIS->GetDashes( &array ); EXTEND( SP, n ); for( i = 0; i < n; ++i ) { PUSHs( sv_2mortal( newSViv( array[i] ) ) ); } wxPenJoin wxPen::GetJoin() #if defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ ) wxBitmap* wxPen::GetStipple() CODE: RETVAL = new wxBitmap( *THIS->GetStipple() ); OUTPUT: RETVAL #endif wxPenStyle wxPen::GetStyle() int wxPen::GetWidth() bool wxPen::Ok() #if WXPERL_W_VERSION_GE( 2, 8, 0 ) bool wxPen::IsOk() #endif void wxPen::SetCap( capStyle ) wxPenCap capStyle void wxPen::SetColour( ... ) PPCODE: BEGIN_OVERLOAD() MATCH_REDISP( wxPliOvl_wcol, SetColourColour ) MATCH_REDISP( wxPliOvl_n_n_n, SetColourRGB ) MATCH_REDISP( wxPliOvl_s, SetColourName ) END_OVERLOAD( Wx::Pen::SetColour ) void wxPen::SetColourColour( colour ) wxColour* colour CODE: THIS->SetColour( *colour ); void wxPen::SetColourName( name ) wxString name CODE: THIS->SetColour( name ); void wxPen::SetColourRGB( r, g, b ) int r int g int b CODE: THIS->SetColour( r, g, b ); void wxPen::SetDashes( ds ) SV* ds PREINIT: int n = 0; wxDash* dashes = 0; wxDash* olddashes; CODE: 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; void wxPen::SetJoin( join_style ) wxPenJoin join_style #if defined( __WXMSW__ ) || defined( __WXPERL_FORCE__ ) void wxPen::SetStipple( stipple ) wxBitmap* stipple CODE: THIS->SetStipple( *stipple ); #endif void wxPen::SetStyle( style ) wxPenStyle style void wxPen::SetWidth( width ) int width