Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / ext / mdi / cpp / mdi.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name:        ext/mdi/cpp/mdi.h
3 // Purpose:     c++ wrapper for wxMDI*
4 // Author:      Mattia Barbon
5 // Modified by:
6 // Created:     06/09/2001
7 // RCS-ID:      $Id: mdi.h 2057 2007-06-18 23:03:00Z mbarbon $
8 // Copyright:   (c) 2001, 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 #ifndef _WXPERL_MDI_H
14 #define _WXPERL_MDI_H
15
16 #include <wx/mdi.h>
17 #include "cpp/v_cback.h"
18
19 class wxPliMDIParentFrame:public wxMDIParentFrame
20 {
21     WXPLI_DECLARE_DYNAMIC_CLASS( wxPliMDIParentFrame );
22     WXPLI_DECLARE_V_CBACK();
23 public:
24     WXPLI_DEFAULT_CONSTRUCTOR( wxPliMDIParentFrame, "Wx::MDIParentFrame", true );
25
26     virtual wxStatusBar* OnCreateStatusBar( int, long, wxWindowID,
27                                             const wxString& );
28     virtual wxToolBar* OnCreateToolBar( long, wxWindowID, const wxString& );
29
30     // void GetClientSize( int* width, int* height ) const;
31     // wxWindow* GetToolBar() const;
32     // wxMDIClientWindow* OnCreateClient();
33 };
34
35 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPliMDIParentFrame, wxMDIParentFrame );
36
37 inline wxStatusBar* wxPliMDIParentFrame::OnCreateStatusBar( int number, long style,
38                                                    wxWindowID id,
39                                                    const wxString& name ) 
40 {
41     dTHX;
42     if( wxPliVirtualCallback_FindCallback( aTHX_ &m_callback,
43                                            "OnCreateStatusBar" ) ) 
44     {
45         SV* ret = wxPliVirtualCallback_CallCallback
46             ( aTHX_ &m_callback, G_SCALAR, "illP",
47               number, style, id, &name );
48         wxStatusBar* retval =
49             (wxStatusBar*)wxPli_sv_2_object( aTHX_ ret, "Wx::StatusBar" );
50         SvREFCNT_dec( ret );
51
52         return retval;
53     } else
54         return wxFrame::OnCreateStatusBar( number, style, id, name );
55 }
56
57 inline wxToolBar* wxPliMDIParentFrame::OnCreateToolBar( long style, wxWindowID id,
58                                                const wxString& name )
59 {
60     dTHX;
61     if( wxPliVirtualCallback_FindCallback( aTHX_ &m_callback,
62                                            "OnCreateToolBar" ) ) 
63     {
64         SV* ret = wxPliVirtualCallback_CallCallback
65             ( aTHX_ &m_callback, G_SCALAR, "llP", style, id, &name );
66         wxToolBar* retval =
67             (wxToolBar*)wxPli_sv_2_object( aTHX_ ret, "Wx::ToolBar" );
68         SvREFCNT_dec( ret );
69
70         return retval;
71     } else
72         return wxFrame::OnCreateToolBar( style, id, name );
73 }
74     
75 # if 0
76
77 void GetClientSize( int* width, int* height ) const
78 {
79     if( wxPliVirtualCallback_FindCallback( &m_callback, "GetClientSize" ) )
80     {
81         SV* ret = wxPliVirtualCallback_CallCallback( &m_callback, G_SCALAR,
82                                                      NULL );
83         wxSize* val = (wxSize*)wxPli_sv_2_object( ret, "Wx::Size" );
84         *width = val->x;
85         *height = val->y;
86         SvREFCNT_dec( ret );
87     } else
88         return wxMDIParentFrame::GetClientSize( width, height );
89 }
90
91 #endif
92
93 #if 0
94
95 wxWindow* GetToolBar() const
96 {
97     if( wxPliVirtualCallback_FindCallback( &m_callback, "GetToolBar" ) ) 
98     {
99         SV* ret = wxPliVirtualCallback_CallCallback( &m_callback, G_SCALAR,
100                                                      NULL);
101         wxWindow* retval =
102             (wxToolBar*)wxPli_sv_2_object( ret, "Wx::Window" );
103         SvREFCNT_dec( ret );
104
105         return retval;
106     } else
107         return wxMDIParentFrame::GetToolBar();
108 }
109
110 #endif
111
112 // wxMDIClientWindow isn't (yet) implemented
113 #if 0
114
115 wxMDIClientWindow* OnCreateClient()
116 {
117     if( wxPliVirtualCallback_FindCallback( &m_callback, "OnCreateClient" ) ) 
118     {
119         SV* ret = wxPliVirtualCallback_CallCallback( &m_callback, G_SCALAR,
120                                                      NULL );
121         wxToolBar* retval =
122             (wxToolBar*)wxPli_sv_2_object( ret, "Wx::MDIClientWindow" );
123         SvREFCNT_dec( ret );
124
125         return retval;
126     } else
127         return wxMDIParentFrame::GetToolBar();
128 }
129
130 #endif
131
132 WXPLI_DECLARE_CLASS_7( MDIChildFrame, true,
133                        wxMDIParentFrame*, wxWindowID, const wxString&,
134                        const wxPoint&, const wxSize&, long,
135                        const wxString& );
136
137 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPliMDIChildFrame, wxMDIChildFrame );
138
139 #endif
140     // _WXPERL_MDI_H
141
142 // Local variables: //
143 // mode: c++ //
144 // End: //
145