1 /////////////////////////////////////////////////////////////////////////////
2 // Name: cpp/validators.h
3 // Purpose: c++ wrapper for wxValidator, and wxPlValidator
4 // Author: Mattia Barbon
7 // RCS-ID: $Id: validators.h 2057 2007-06-18 23:03:00Z mbarbon $
8 // Copyright: (c) 2000-2002, 2004 Mattia Barbon
9 // Licence: This program is free software; you can redistribute it and/or
10 // modify it under the same terms as Perl itself
11 /////////////////////////////////////////////////////////////////////////////
13 #ifndef _WXPERL_VALIDATORS_H
14 #define _WXPERL_VALIDATORS_H
16 class wxPlValidator:public wxValidator
18 WXPLI_DECLARE_DYNAMIC_CLASS( wxPlValidator );
19 WXPLI_DECLARE_V_CBACK();
21 wxPlValidator( const char* package );
23 virtual wxObject* Clone() const;
24 virtual bool Validate( wxWindow* );
26 DEC_V_CBACK_BOOL__VOID( TransferToWindow );
27 DEC_V_CBACK_BOOL__VOID( TransferFromWindow );
30 DEF_V_CBACK_BOOL__VOID( wxPlValidator, wxValidator, TransferToWindow );
31 DEF_V_CBACK_BOOL__VOID( wxPlValidator, wxValidator, TransferFromWindow );
33 inline wxPlValidator::wxPlValidator( const char* package )
34 :m_callback( "Wx::PlValidator" )
36 m_callback.SetSelf( wxPli_make_object( this, package ), true );
39 wxObject* wxPlValidator::Clone() const
42 wxPlValidator* self = (wxPlValidator*)this;
44 if( wxPliVirtualCallback_FindCallback( aTHX_ &self->m_callback, "Clone" ) )
46 SV* ret = wxPliVirtualCallback_CallCallback
47 ( aTHX_ &self->m_callback, G_SCALAR, NULL );
49 (wxValidator*)wxPli_sv_2_object( aTHX_ ret, "Wx::Validator" );
59 bool wxPlValidator::Validate( wxWindow* parent )
62 if( wxPliVirtualCallback_FindCallback( aTHX_ &m_callback, "Validate" ) )
64 SV* ret = wxPliVirtualCallback_CallCallback
65 ( aTHX_ &m_callback, G_SCALAR, "s",
66 wxPli_object_2_sv( aTHX_ sv_newmortal(), parent ) );
67 bool val = SvTRUE( ret );
73 return wxValidator::Validate( parent );
76 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlValidator, wxValidator );
78 #endif // _WXPERL_VALIDATORS_H
80 // Local variables: //