#############################################################################
## Name: DataObject.xs
## Purpose: XS for Wx::*DataObject and Wx::DataFormat
## Author: Mattia Barbon
## Modified by:
## Created: 12/ 8/2001
## RCS-ID: $Id: DataObject.xs,v 1.13 2003/05/17 13:15:02 mbarbon Exp $
## Copyright: (c) 2001-2003 Mattia Barbon
## Licence: This program is free software; you can redistribute it and/or
## modify it under the same terms as Perl itself
#############################################################################
#include <wx/dataobj.h>
#include "cpp/dataobject.h"
MODULE=Wx PACKAGE=Wx::DataFormat
Wx_DataFormat*
newNative( dummy, format = wxDF_INVALID )
SV* dummy
NativeFormat format
CODE:
RETVAL = new wxDataFormat( format );
OUTPUT:
RETVAL
Wx_DataFormat*
newUser( dummy, id )
SV* dummy
wxChar* id
CODE:
RETVAL = new wxDataFormat( id );
OUTPUT:
RETVAL
## XXX threads
void
Wx_DataFormat::DESTROY()
wxString
Wx_DataFormat::GetId()
void
Wx_DataFormat::SetId( id )
wxString id
#if defined( __WXMSW__ )
NativeFormat
Wx_DataFormat::GetType()
void
Wx_DataFormat::SetType( type )
NativeFormat type
#else
wxDataFormatId
Wx_DataFormat::GetType()
#if 0
void
Wx_DataFormat::SetType( type )
wxDataFormatId type
#endif
#endif
MODULE=Wx PACKAGE=Wx::DataObject
## XXX threads
void
DESTROY( THIS )
Wx_DataObject* THIS
CODE:
if( wxPli_object_is_deleteable( aTHX_ ST(0) ) )
delete THIS;
void
Wx_DataObject::Destroy()
CODE:
delete THIS;
void
Wx_DataObject::GetAllFormats( dir = wxDataObjectBase::Get )
Direction dir
PPCODE:
size_t formats = THIS->GetFormatCount( dir );
size_t i, wanted = formats;
wxDataFormat* formats_d = new wxDataFormat[ formats ];
THIS->GetAllFormats( formats_d, dir );
if( GIMME_V == G_SCALAR )
wanted = 1;
EXTEND( SP, (IV)wanted );
for( i = 0; i < wanted; ++i )
{
PUSHs( wxPli_non_object_2_sv( aTHX_ sv_newmortal(),
new wxDataFormat( formats_d[i] ), "Wx::DataFormat" ) );
}
delete [] formats_d;
bool
Wx_DataObject::GetDataHere( format, buf )
Wx_DataFormat* format
SV* buf
CODE:
size_t size = THIS->GetDataSize( *format );
void* buffer = SvGROW( buf, size + 1 );
SvCUR_set( buf, size );
RETVAL = THIS->GetDataHere( *format, buffer );
OUTPUT:
RETVAL
size_t
Wx_DataObject::GetDataSize( format )
Wx_DataFormat* format
CODE:
RETVAL = THIS->GetDataSize( *format );
OUTPUT:
RETVAL
size_t
Wx_DataObject::GetFormatCount( dir = wxDataObjectBase::Get )
Direction dir
Wx_DataFormat*
Wx_DataObject::GetPreferredFormat( dir = wxDataObjectBase::Get )
Direction dir
CODE:
RETVAL = new wxDataFormat( THIS->GetPreferredFormat( dir ) );
OUTPUT:
RETVAL
bool
Wx_DataObject::IsSupported( format, dir = wxDataObjectBase::Get )
Wx_DataFormat* format
Direction dir
CODE:
RETVAL = THIS->IsSupported( *format, dir );
OUTPUT:
RETVAL
bool
Wx_DataObject::SetData( format, buf )
Wx_DataFormat* format
SV* buf
PREINIT:
char* data;
STRLEN len;
CODE:
data = SvPV( buf, len );
RETVAL = THIS->SetData( *format, len, data );
OUTPUT:
RETVAL
MODULE=Wx PACKAGE=Wx::DataObjectSimple
Wx_DataObjectSimple*
Wx_DataObjectSimple::new( format = (wxDataFormat*)&wxFormatInvalid )
Wx_DataFormat* format
CODE:
RETVAL = new wxDataObjectSimple( *format );
OUTPUT:
RETVAL
Wx_DataFormat*
Wx_DataObjectSimple::GetFormat()
CODE:
RETVAL = new wxDataFormat( THIS->GetFormat() );
OUTPUT:
RETVAL
void
Wx_DataObjectSimple::SetFormat( format )
Wx_DataFormat* format
CODE:
THIS->SetFormat( *format );
MODULE=Wx PACKAGE=Wx::PlDataObjectSimple
SV*
Wx_PlDataObjectSimple::new( format = (wxDataFormat*)&wxFormatInvalid )
Wx_DataFormat* format
CODE:
wxPlDataObjectSimple* THIS = new wxPlDataObjectSimple( CLASS, *format );
RETVAL = newRV_noinc( SvRV( THIS->m_callback.GetSelf() ) );
OUTPUT: RETVAL
void
wxPlDataObjectSimple::DESTROY()
CODE:
SvRV( THIS->m_callback.GetSelf() ) = NULL;
delete THIS;
MODULE=Wx PACKAGE=Wx::DataObjectComposite
Wx_DataObjectComposite*
Wx_DataObjectComposite::new()
void
Wx_DataObjectComposite::Add( dataObject, preferred = FALSE )
Wx_DataObjectSimple* dataObject
bool preferred
CODE:
// at this point the data object is owned!
wxPli_object_set_deleteable( aTHX_ ST(1), FALSE );
THIS->Add( dataObject, preferred );
MODULE=Wx PACKAGE=Wx::TextDataObject
Wx_TextDataObject*
Wx_TextDataObject::new( text = wxEmptyString )
wxString text
size_t
Wx_TextDataObject::GetTextLength()
wxString
Wx_TextDataObject::GetText()
void
Wx_TextDataObject::SetText( text )
wxString text
MODULE=Wx PACKAGE=Wx::BitmapDataObject
#if WXPERL_W_VERSION_GE( 2, 5, 0 ) || !defined(__WXMOTIF__)
Wx_BitmapDataObject*
Wx_BitmapDataObject::new( bitmap = (wxBitmap*)&wxNullBitmap )
Wx_Bitmap* bitmap
CODE:
RETVAL = new wxBitmapDataObject( *bitmap );
OUTPUT:
RETVAL
Wx_Bitmap*
Wx_BitmapDataObject::GetBitmap()
CODE:
RETVAL = new wxBitmap( THIS->GetBitmap() );
OUTPUT:
RETVAL
void
Wx_BitmapDataObject::SetBitmap( bitmap )
Wx_Bitmap* bitmap
CODE:
THIS->SetBitmap( *bitmap );
#endif
MODULE=Wx PACKAGE=Wx::FileDataObject
#if !defined(__WXMOTIF__)
Wx_FileDataObject*
Wx_FileDataObject::new()
void
Wx_FileDataObject::AddFile( file )
wxString file
void
Wx_FileDataObject::GetFilenames()
PREINIT:
int i, max;
PPCODE:
const wxArrayString& filenames = THIS->GetFilenames();
max = filenames.GetCount();
EXTEND( SP, max );
for( i = 0; i < max; ++i ) {
#if wxUSE_UNICODE
SV* tmp = sv_2mortal( newSVpv( filenames[i].mb_str(wxConvUTF8), 0 ) );
SvUTF8_on( tmp );
PUSHs( tmp );
#else
PUSHs( sv_2mortal( newSVpv( CHAR_P filenames[i].c_str(), 0 ) ) );
#endif
}
MODULE=Wx PACKAGE=Wx::URLDataObject
Wx_URLDataObject*
Wx_URLDataObject::new()
wxString
Wx_URLDataObject::GetURL()
void
Wx_URLDataObject::SetURL( url )
wxString url
#endif