Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / cpp / process.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        cpp/process.h
3 // Purpose:     C++ wrapper for wxProcess
4 // Author:      Mattia Barbon
5 // Modified by:
6 // Created:     11/02/2002
7 // RCS-ID:      $Id: process.h 2057 2007-06-18 23:03:00Z mbarbon $
8 // Copyright:   (c) 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 /////////////////////////////////////////////////////////////////////////////
12
13 class wxPliProcess:public wxProcess
14 {
15     WXPLI_DECLARE_DYNAMIC_CLASS( wxPliProcess );
16     WXPLI_DECLARE_V_CBACK();
17 public:
18     wxPliProcess( const char* package, wxEvtHandler* parent, int id );
19
20     virtual void OnTerminate( int pid, int status );
21 };
22
23 inline wxPliProcess::wxPliProcess( const char* package,
24                                    wxEvtHandler* parent, int id )
25     : wxProcess( parent, id ),
26       m_callback( "Wx::Process" )
27 {
28     m_callback.SetSelf( wxPli_make_object( this, package ), true );
29 }
30
31 void wxPliProcess::OnTerminate( int pid, int status )
32 {
33     dTHX;
34     if( wxPliVirtualCallback_FindCallback( aTHX_ &m_callback, "OnTerminate" ) )
35     {
36         wxPliVirtualCallback_CallCallback( aTHX_ &m_callback,
37                                            G_SCALAR|G_DISCARD,
38                                            "ii", pid, status );
39     }
40     else
41         wxProcess::OnTerminate( pid, status );
42 }
43
44 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPliProcess, wxProcess );
45
46 // Local variables: //
47 // mode: c++ //
48 // End: //