Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / XS / VScrolledWindow.xsp
1 #############################################################################
2 ## Name:        XS/VScrolledWindow.xsp
3 ## Purpose:     XS++ for Wx::[HV]ScrolledWindow
4 ## Author:      Mattia Barbon
5 ## Modified by:
6 ## Created:     18/09/2006
7 ## RCS-ID:      $Id: VScrolledWindow.xsp 2197 2007-08-21 23:10:35Z mbarbon $
8 ## Copyright:   (c) 2006-2007 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 %module{Wx};
14
15 %typemap{wxVScrolledWindow*}{simple};
16 %typemap{wxHScrolledWindow*}{simple};
17 %typemap{wxHVScrolledWindow*}{simple};
18 %typemap{wxPlVScrolledWindow*}{simple};
19 %typemap{wxPlHScrolledWindow*}{simple};
20 %typemap{wxPlHVScrolledWindow*}{simple};
21
22 #if WXPERL_W_VERSION_GE( 2, 5, 0 )
23
24 #include <wx/vscroll.h>
25
26 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
27
28 %name{Wx::HScrolledWindow} class wxHScrolledWindow
29 {
30     bool Create( wxWindow *parent, wxWindowID id = wxID_ANY,
31                  const wxPoint& pos = wxDefaultPosition,
32                  const wxSize& size = wxDefaultSize,
33                  long style = 0,
34                  const wxString& name = wxPanelNameStr );
35
36     ## wxVarScrollHelperBase
37     INCLUDE: perl -pe "s/VarScrollHelperBase/HScrolledWindow/g" XS/VarScrollHelperBase.xs |
38
39     ## wxVarHScrollHelper
40     INCLUDE: perl -pe "s/VarHScrollHelper/HScrolledWindow/g" XS/VarHScrollHelper.xs |
41
42 };
43
44 #endif
45
46 %name{Wx::VScrolledWindow} class wxVScrolledWindow
47 {
48     bool Create( wxWindow *parent, wxWindowID id = wxID_ANY,
49                  const wxPoint& pos = wxDefaultPosition,
50                  const wxSize& size = wxDefaultSize,
51                  long style = 0,
52                  const wxString& name = wxPanelNameStr );
53
54 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
55     ## compatibility with < 2.9
56     %name{SetLineCount} void SetRowCount( size_t count );
57     %name{ScrollToLine} bool ScrollToRow( size_t line );
58     %name{RefreshLine} void RefreshRow( size_t line );
59     %name{RefreshLines} void RefreshRows( size_t from, size_t to );
60     %name{GetLineCount} size_t GetRowCount() const;
61     %name{GetFirstVisibleLine} size_t GetVisibleRowsBegin() const;
62     %name{GetLastVisibleLine} size_t GetVisibleRowsEnd() const;
63     %name{ScrollLines} bool ScrollRows( int lines );
64     %name{ScrollPages} bool ScrollRowPages( int pages );
65
66     ## wxVarScrollHelperBase
67     INCLUDE: perl -pe "s/VarScrollHelperBase/VScrolledWindow/g" XS/VarScrollHelperBase.xs |
68
69     ## wxVarVScrollHelper
70     INCLUDE: perl -pe "s/VarVScrollHelper/VScrolledWindow/g" XS/VarVScrollHelper.xs |
71
72 #else
73     ## old interface
74     void SetLineCount( size_t count );
75     bool ScrollToLine( size_t line );
76     void RefreshLine( size_t line );
77     void RefreshLines( size_t from, size_t to );
78     size_t GetLineCount() const;
79     size_t GetFirstVisibleLine() const;
80     size_t GetLastVisibleLine() const;
81     bool ScrollLines( int lines );
82     bool ScrollPages( int pages );
83
84     ## forward compatibilty with 2.9
85     %name{SetRowCount} void SetLineCount( size_t count );
86     %name{ScrollToRow} bool ScrollToLine( size_t line );
87     %name{RefreshRow} void RefreshLine( size_t line );
88     %name{RefreshRows} void RefreshLines( size_t from, size_t to );
89     %name{GetRowCount} size_t GetLineCount() const;
90     %name{GetVisibleRowsBegin} size_t GetFirstVisibleLine() const;
91     %name{GetVisibleRowsEnd} size_t GetLastVisibleLine() const;
92     %name{ScrollRows} bool ScrollLines( int lines );
93     %name{ScrollRowPages} bool ScrollPages( int pages );
94
95     ## already in wxVarScrollHelperBase
96     void RefreshAll();
97 #if WXPERL_W_VERSION_GE( 2, 6, 0 )
98     size_t GetVisibleBegin() const;
99     size_t GetVisibleEnd() const;
100 #endif
101     bool IsVisible( size_t line ) const;
102     %name{IsRowVisible} bool IsVisible( size_t line ) const;
103 #endif
104
105     int HitTest( const wxPoint& pt ) const;
106     bool Layout();
107 };
108
109 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
110
111 %name{Wx::HVScrolledWindow} class wxHVScrolledWindow
112 {
113     bool Create( wxWindow *parent, wxWindowID id = wxID_ANY,
114                  const wxPoint& pos = wxDefaultPosition,
115                  const wxSize& size = wxDefaultSize,
116                  long style = 0,
117                  const wxString& name = wxPanelNameStr );
118
119     ## poor man's MI support; should use dynamic_cast<> in typemap
120
121     ## wxVarHScrollHelper
122     INCLUDE: perl -pe "s/VarHScrollHelper/HVScrolledWindow/g" XS/VarHScrollHelper.xs |
123
124     ## wxVarVScrollHelper
125     INCLUDE: perl -pe "s/VarVScrollHelper/HVScrolledWindow/g" XS/VarVScrollHelper.xs |
126
127     ## wxVarHVScrollHelper
128     INCLUDE: perl -pe "s/VarHVScrollHelper/HVScrolledWindow/g" XS/VarHVScrollHelper.xs |
129
130 };
131
132 #endif
133
134 %file{cpp/vscrl.h};
135 %{
136
137 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
138
139 class wxPlHScrolledWindow : public wxHScrolledWindow {
140     WXPLI_DECLARE_DYNAMIC_CLASS( wxPlHScrolledWindow );
141     WXPLI_DECLARE_V_CBACK();
142 public:
143     WXPLI_DEFAULT_CONSTRUCTOR( wxPlHScrolledWindow, "Wx::HScrolledWindow",
144                                true );
145     WXPLI_CONSTRUCTOR_6( wxPlHScrolledWindow, "Wx::HScrolledWindow", true,
146                          wxWindow*, wxWindowID, const wxPoint&,
147                          const wxSize&, long, const wxString& );
148
149     // wxVarHScrollHelper
150     DEC_V_CBACK_WXCOORD__SIZET_const( OnGetColumnWidth );
151     DEC_V_CBACK_VOID__SIZET_SIZET_const( OnGetColumnsWidthHint );
152     DEC_V_CBACK_WXCOORD__VOID_const( EstimateTotalWidth );
153 };
154
155 // wxVarHScrollHelper
156 DEF_V_CBACK_WXCOORD__SIZET_const_pure( wxPlHScrolledWindow, wxHScrolledWindow,
157                                        OnGetColumnWidth );
158 DEF_V_CBACK_VOID__SIZET_SIZET_const( wxPlHScrolledWindow, wxHScrolledWindow,
159                                      OnGetColumnsWidthHint );
160 DEF_V_CBACK_WXCOORD__VOID_const( wxPlHScrolledWindow, wxHScrolledWindow,
161                                  EstimateTotalWidth );
162
163 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlHScrolledWindow, wxHScrolledWindow );
164
165 #endif
166
167 class wxPlVScrolledWindow : public wxVScrolledWindow {
168     WXPLI_DECLARE_DYNAMIC_CLASS( wxPlVScrolledWindow );
169     WXPLI_DECLARE_V_CBACK();
170 public:
171     WXPLI_DEFAULT_CONSTRUCTOR( wxPlVScrolledWindow, "Wx::VScrolledWindow",
172                                true );
173     WXPLI_CONSTRUCTOR_6( wxPlVScrolledWindow, "Wx::VScrolledWindow", true,
174                          wxWindow*, wxWindowID, const wxPoint&,
175                          const wxSize&, long, const wxString& );
176
177     // < 2.9
178 #if WXPERL_W_VERSION_LT( 2, 9, 0 ) || WXWIN_COMPATIBILITY_2_8
179     DEC_V_CBACK_WXCOORD__SIZET_const( OnGetLineHeight );
180     DEC_V_CBACK_VOID__SIZET_SIZET_const( OnGetLinesHint );
181 #endif
182
183     // wxVarVScrollHelper
184 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
185     DEC_V_CBACK_WXCOORD__SIZET_const( OnGetRowHeight );
186     DEC_V_CBACK_VOID__SIZET_SIZET_const( OnGetRowsHeightHint );
187 #endif
188     DEC_V_CBACK_WXCOORD__VOID_const( EstimateTotalHeight );
189 };
190
191 // < 2.9
192 #if WXPERL_W_VERSION_LT( 2, 9, 0 ) || WXWIN_COMPATIBILITY_2_8
193 DEF_V_CBACK_WXCOORD__SIZET_const_pure( wxPlVScrolledWindow, wxVScrolledWindow,
194                                        OnGetLineHeight );
195 DEF_V_CBACK_VOID__SIZET_SIZET_const( wxPlVScrolledWindow, wxVScrolledWindow,
196                                      OnGetLinesHint );
197 #endif
198
199 // wxVarVScrollHelper
200 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
201 DEF_V_CBACK_WXCOORD__SIZET_const_pure( wxPlVScrolledWindow, wxVScrolledWindow,
202                                        OnGetRowHeight );
203 DEF_V_CBACK_VOID__SIZET_SIZET_const( wxPlVScrolledWindow, wxVScrolledWindow,
204                                      OnGetRowsHeightHint );
205 #endif
206 DEF_V_CBACK_WXCOORD__VOID_const( wxPlVScrolledWindow, wxVScrolledWindow,
207                                  EstimateTotalHeight );
208
209 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlVScrolledWindow, wxVScrolledWindow );
210
211 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
212
213 class wxPlHVScrolledWindow : public wxHVScrolledWindow {
214     WXPLI_DECLARE_DYNAMIC_CLASS( wxPlHVScrolledWindow );
215     WXPLI_DECLARE_V_CBACK();
216 public:
217     WXPLI_DEFAULT_CONSTRUCTOR( wxPlHVScrolledWindow, "Wx::HVScrolledWindow",
218                                true );
219     WXPLI_CONSTRUCTOR_6( wxPlHVScrolledWindow, "Wx::HVScrolledWindow", true,
220                          wxWindow*, wxWindowID, const wxPoint&,
221                          const wxSize&, long, const wxString& );
222
223     // wxVarHScrollHelper
224     DEC_V_CBACK_WXCOORD__SIZET_const( OnGetColumnWidth );
225     DEC_V_CBACK_VOID__SIZET_SIZET_const( OnGetColumnsWidthHint );
226     DEC_V_CBACK_WXCOORD__VOID_const( EstimateTotalWidth );
227
228     // wxVarVScrollHelper
229     DEC_V_CBACK_WXCOORD__SIZET_const( OnGetRowHeight );
230     DEC_V_CBACK_VOID__SIZET_SIZET_const( OnGetRowsHeightHint );
231     DEC_V_CBACK_WXCOORD__VOID_const( EstimateTotalHeight );
232 };
233
234 // wxVarHScrollHelper
235 DEF_V_CBACK_WXCOORD__SIZET_const_pure( wxPlHVScrolledWindow, wxHVScrolledWindow,
236                                        OnGetColumnWidth );
237 DEF_V_CBACK_VOID__SIZET_SIZET_const( wxPlHVScrolledWindow, wxHVScrolledWindow,
238                                      OnGetColumnsWidthHint );
239 DEF_V_CBACK_WXCOORD__VOID_const( wxPlHVScrolledWindow, wxHVScrolledWindow,
240                                  EstimateTotalWidth );
241
242 // wxVarVScrollHelper
243 DEF_V_CBACK_WXCOORD__SIZET_const_pure( wxPlHVScrolledWindow, wxHVScrolledWindow,
244                                        OnGetRowHeight );
245 DEF_V_CBACK_VOID__SIZET_SIZET_const( wxPlHVScrolledWindow, wxHVScrolledWindow,
246                                      OnGetRowsHeightHint );
247 DEF_V_CBACK_WXCOORD__VOID_const( wxPlHVScrolledWindow, wxHVScrolledWindow,
248                                  EstimateTotalHeight );
249
250 WXPLI_IMPLEMENT_DYNAMIC_CLASS( wxPlHVScrolledWindow, wxHVScrolledWindow );
251
252 #endif
253
254 %}
255 %file{-};
256
257 #include "cpp/overload.h"
258 #include "cpp/vscrl.h"
259
260 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
261
262 %name{Wx::PlHScrolledWindow} class wxPlHScrolledWindow
263 {
264 %{
265 void
266 new( ... )
267   PPCODE:
268     BEGIN_OVERLOAD()
269         MATCH_VOIDM_REDISP( newDefault )
270         MATCH_ANY_REDISP( newFull )
271     END_OVERLOAD( "Wx::PlHScrolledWindow::new" )
272 %}
273
274     %name{newDefault} wxPlHScrolledWindow()
275         %code{% RETVAL = new wxPlHScrolledWindow( CLASS ); %};
276     %name{newFull} wxPlHScrolledWindow( wxWindow *parent,
277                                         wxWindowID id = wxID_ANY,
278                                         const wxPoint& pos = wxDefaultPosition,
279                                         const wxSize& size = wxDefaultSize,
280                                         long style = 0,
281                                         const wxString& name = wxPanelNameStr )
282         %code{% RETVAL = new wxPlHScrolledWindow( CLASS, parent, id, pos, size,
283                                                   style, name );
284                 %};
285 };
286
287 #endif
288
289 %name{Wx::PlVScrolledWindow} class wxPlVScrolledWindow
290 {
291 %{
292 void
293 new( ... )
294   PPCODE:
295     BEGIN_OVERLOAD()
296         MATCH_VOIDM_REDISP( newDefault )
297         MATCH_ANY_REDISP( newFull )
298     END_OVERLOAD( "Wx::PlVScrolledWindow::new" )
299 %}
300
301     %name{newDefault} wxPlVScrolledWindow()
302         %code{% RETVAL = new wxPlVScrolledWindow( CLASS ); %};
303     %name{newFull} wxPlVScrolledWindow( wxWindow *parent,
304                                         wxWindowID id = wxID_ANY,
305                                         const wxPoint& pos = wxDefaultPosition,
306                                         const wxSize& size = wxDefaultSize,
307                                         long style = 0,
308                                         const wxString& name = wxPanelNameStr )
309         %code{% RETVAL = new wxPlVScrolledWindow( CLASS, parent, id, pos, size,
310                                                   style, name );
311                 %};
312 };
313
314 #if WXPERL_W_VERSION_GE( 2, 9, 0 )
315
316 %name{Wx::PlHVScrolledWindow} class wxPlHVScrolledWindow
317 {
318 %{
319 void
320 new( ... )
321   PPCODE:
322     BEGIN_OVERLOAD()
323         MATCH_VOIDM_REDISP( newDefault )
324         MATCH_ANY_REDISP( newFull )
325     END_OVERLOAD( "Wx::PlHVScrolledWindow::new" )
326 %}
327
328     %name{newDefault} wxPlHVScrolledWindow()
329         %code{% RETVAL = new wxPlHVScrolledWindow( CLASS ); %};
330     %name{newFull} wxPlHVScrolledWindow( wxWindow *parent,
331                                          wxWindowID id = wxID_ANY,
332                                          const wxPoint& pos = wxDefaultPosition,
333                                          const wxSize& size = wxDefaultSize,
334                                          long style = 0,
335                                          const wxString& name = wxPanelNameStr )
336         %code{% RETVAL = new wxPlHVScrolledWindow( CLASS, parent, id, pos,
337                                                    size, style, name );
338                 %};
339 };
340
341 #endif
342
343 #endif