///////////////////////////////////////////////////////////////////////////// // Name: ext/dnd/cpp/droptarget.h // Purpose: c++ wrapper for wxPli*DropTarget // Author: Mattia Barbon // Modified by: // Created: 16/08/2001 // RCS-ID: $Id: droptarget.h 2057 2007-06-18 23:03:00Z mbarbon $ // Copyright: (c) 2001-2002, 2004 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 "cpp/v_cback.h" class wxPliDropTarget:public wxDropTarget { WXPLI_DECLARE_V_CBACK(); public: wxPliDropTarget( const char* package, wxDataObject* data = 0 ) :wxDropTarget( data ), m_callback( "Wx::DropTarget" ) { dTHX; // this is necessary because the SV returned to // the perl program _is not_ this one! // so _this_ SV must not delete the object, // this is responsibility of the program's one! SV* sv = wxPli_make_object( this, package ); wxPli_object_set_deleteable( aTHX_ sv, false ); m_callback.SetSelf( sv ); } DEC_V_CBACK_WXDRAGRESULT__WXCOORD_WXCOORD_WXDRAGRESULT( OnData ); DEC_V_CBACK_BOOL__WXCOORD_WXCOORD( OnDrop ); DEC_V_CBACK_VOID__VOID( OnLeave ); DEC_V_CBACK_WXDRAGRESULT__WXCOORD_WXCOORD_WXDRAGRESULT( OnEnter ); DEC_V_CBACK_WXDRAGRESULT__WXCOORD_WXCOORD_WXDRAGRESULT( OnDragOver ); }; DEF_V_CBACK_WXDRAGRESULT__WXCOORD_WXCOORD_WXDRAGRESULT_pure( wxPliDropTarget, wxDropTarget, OnData ); DEF_V_CBACK_BOOL__WXCOORD_WXCOORD( wxPliDropTarget, wxDropTarget, OnDrop ); DEF_V_CBACK_VOID__VOID( wxPliDropTarget, wxDropTarget, OnLeave ); DEF_V_CBACK_WXDRAGRESULT__WXCOORD_WXCOORD_WXDRAGRESULT( wxPliDropTarget, wxDropTarget, OnEnter ); DEF_V_CBACK_WXDRAGRESULT__WXCOORD_WXCOORD_WXDRAGRESULT( wxPliDropTarget, wxDropTarget, OnDragOver ); class wxPliTextDropTarget:public wxTextDropTarget { WXPLI_DECLARE_V_CBACK(); public: wxPliTextDropTarget( const char* package ) :wxTextDropTarget(), m_callback( "Wx::TextDropTarget" ) { dTHX; SV* sv = wxPli_make_object( this, package ); wxPli_object_set_deleteable( aTHX_ sv, false ); m_callback.SetSelf( sv ); } DEC_V_CBACK_BOOL__WXCOORD_WXCOORD_WXSTRING( OnDropText ); }; DEF_V_CBACK_BOOL__WXCOORD_WXCOORD_WXSTRING_pure( wxPliTextDropTarget, wxTextDropTarget, OnDropText ); class wxPliFileDropTarget:public wxFileDropTarget { WXPLI_DECLARE_V_CBACK(); public: wxPliFileDropTarget( const char* package ) :wxFileDropTarget(), m_callback( "Wx::FileDropTarget" ) { dTHX; SV* sv = wxPli_make_object( this, package ); wxPli_object_set_deleteable( aTHX_ sv, false ); m_callback.SetSelf( sv ); } DEC_V_CBACK_BOOL__WXCOORD_WXCOORD_WXARRAYSTRING( OnDropFiles ); }; DEF_V_CBACK_BOOL__WXCOORD_WXCOORD_WXARRAYSTRING_pure( wxPliFileDropTarget, wxFileDropTarget, OnDropFiles ); // Local variables: // // mode: c++ // // End: //