Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / XS / GridBagSizer.xsp
1 #############################################################################
2 ## Name:        XS/GridBagSizer.xsp
3 ## Purpose:     XS for Wx::GridBagSizer
4 ## Author:      Mattia Barbon
5 ## Modified by:
6 ## Created:     310/11/2003
7 ## RCS-ID:      $Id: GridBagSizer.xsp 2293 2007-11-25 00:33:03Z mbarbon $
8 ## Copyright:   (c) 2003, 2005-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 #if WXPERL_W_VERSION_GE( 2, 5, 1 )
16
17 #define wxPlDefaultSpan (wxGBSpan*)&wxDefaultSpan
18
19 #include <wx/gbsizer.h>
20
21 ## DECLARE_OVERLOAD( wgbp, Wx::GBPosition )
22 ## DECLARE_OVERLOAD( wgbs, Wx::GBSpan )
23 ## DECLARE_OVERLOAD( wgbi, Wx::GBSizerItem )
24
25 %typemap{wxGridBagSizer *}{simple};
26 %typemap{wxGBPosition *}{simple};
27 %typemap{wxGBSpan *}{simple};
28 %typemap{wxGBSizerItem *}{simple};
29 %typemap{const wxGBSizerItem&}{reference};
30 %typemap{wxGBPosition}{reference};
31 %typemap{const wxGBPosition&}{reference};
32 %typemap{wxGBSpan}{reference};
33 %typemap{const wxGBSpan&}{reference};
34
35 %name{Wx::GBPosition} class wxGBPosition
36 {
37     wxGBPosition(int row = 0, int col = 0);
38
39     int GetRow() const;
40     int GetCol() const;
41     void SetRow(int row);
42     void SetCol(int col);
43     
44 ##    bool operator==(const wxGBPosition& p) const;
45 ##    bool operator!=(const wxGBPosition& p) const;
46 };
47
48 %name{Wx::GBSpan} class wxGBSpan
49 {
50     wxGBSpan(int rowspan = 1, int colspan = 1);
51
52     int GetRowspan() const;
53     int GetColspan() const;
54     void SetRowspan(int rowspan);
55     void SetColspan(int colspan);
56     
57 ##    bool operator==(const wxGBSpan& o) const;
58 ##    bool operator!=(const wxGBSpan& o) const;
59 };
60
61 %name{Wx::GBSizerItem} class wxGBSizerItem
62 {
63     wxGBPosition GetPos() const;
64 %{
65 void
66 wxGBSizerItem::GetPosXY()
67   PPCODE:
68     int x, y;
69     THIS->GetPos( x, y );
70     wxPli_push_2ints( x, y );
71 %}
72
73     wxGBSpan GetSpan() const;
74 %{
75 void
76 wxGBSizerItem::GetSpanWH()
77   PPCODE:
78     int x, y;
79     THIS->GetSpan( x, y );
80     wxPli_push_2ints( x, y );
81 %}
82
83     bool SetPos( const wxGBPosition& pos );
84     bool SetSpan( const wxGBSpan& span );
85     %name{IntersectsItem}
86     bool Intersects(const wxGBSizerItem& other);
87     %name{IntersectsPosition}
88     bool Intersects(const wxGBPosition& pos, const wxGBSpan& span);
89 %{
90 void
91 wxGBSizerItem::Intersects( ... )
92   PPCODE:
93     BEGIN_OVERLOAD()
94         MATCH_REDISP( wxPliOvl_wgbi, IntersectsItem )
95         MATCH_REDISP( wxPliOvl_wgbp_wgbs, IntersectsPosition )
96     END_OVERLOAD( Wx::GridBagSizer::Add )
97 %}
98
99 %{
100 void
101 wxGBSizerItem::GetEndPos()
102   PPCODE:
103     int x, y;
104     THIS->GetEndPos( x, y );
105     wxPli_push_2ints( x, y );
106 %}
107     wxGridBagSizer* GetGBSizer() const;
108     void SetGBSizer(wxGridBagSizer* sizer);
109 };
110
111 %name{Wx::GridBagSizer} class wxGridBagSizer
112 {
113     wxGridBagSizer(int vgap = 0, int hgap = 0 );
114
115     %name{AddWindow}
116     bool Add( wxWindow *window,
117               const wxGBPosition& pos,
118               const wxGBSpan& span = wxPlDefaultSpan,
119               int flag = 0,
120               int border = 0,
121               wxObject* userData = NULL );
122     %name{AddSizer}
123     bool Add( wxSizer *sizer,
124               const wxGBPosition& pos,
125               const wxGBSpan& span = wxPlDefaultSpan,
126               int flag = 0,
127               int border = 0,
128               wxObject* userData = NULL );
129     %name{AddSpace}
130     bool Add( int width,
131               int height,
132               const wxGBPosition& pos,
133               const wxGBSpan& span = wxPlDefaultSpan,
134               int flag = 0,
135               int border = 0,
136               wxObject* userData = NULL );
137     %name{AddItem}
138     bool Add( wxGBSizerItem *item );
139
140     wxSize GetEmptyCellSize() const;
141     void SetEmptyCellSize(const wxSize& sz);
142     wxSize GetCellSize(int row, int col) const;
143     
144     %name{GetItemPositionWindow} 
145     wxGBPosition GetItemPosition(wxWindow *window);
146     %name{GetItemPositionSizer}
147     wxGBPosition GetItemPosition(wxSizer *sizer);
148     %name{GetItemPositionIndex}
149     wxGBPosition GetItemPosition(size_t index);
150 %{
151 void
152 wxGridBagSizer::GetItemPosition( ... )
153   PPCODE:
154     BEGIN_OVERLOAD()
155         MATCH_REDISP( wxPliOvl_wwin, GetItemPositionWindow )
156         MATCH_REDISP( wxPliOvl_wszr, GetItemPositionSizer )
157         MATCH_REDISP( wxPliOvl_n, GetItemPositionIndex )
158     END_OVERLOAD( Wx::GridBagSizer::GetItemPosition )
159 %}
160
161     %name{SetItemPositionWindow}
162     bool SetItemPosition(wxWindow *window, const wxGBPosition& pos);
163     %name{SetItemPositionSizer}
164     bool SetItemPosition(wxSizer *sizer, const wxGBPosition& pos);
165     %name{SetItemPositionIndex}
166     bool SetItemPosition(size_t index, const wxGBPosition& pos);
167 %{
168 void
169 wxGridBagSizer::SetItemPosition( ... )
170   PPCODE:
171     BEGIN_OVERLOAD()
172         MATCH_REDISP( wxPliOvl_wwin_wgbp, SetItemPositionWindow )
173         MATCH_REDISP( wxPliOvl_wszr_wgbp, SetItemPositionSizer )
174         MATCH_REDISP( wxPliOvl_n_wgbp, SetItemPositionIndex )
175     END_OVERLOAD( Wx::GridBagSizer::SetItemPosition )
176 %}
177
178     %name{GetItemSpanWindow}
179     wxGBSpan GetItemSpan(wxWindow *window);
180     %name{GetItemSpanSizer}
181     wxGBSpan GetItemSpan(wxSizer *sizer);
182     %name{GetItemSpanIndex}
183     wxGBSpan GetItemSpan(size_t index);
184 %{
185 void
186 wxGridBagSizer::GetItemSpan( ... )
187   PPCODE:
188     BEGIN_OVERLOAD()
189         MATCH_REDISP( wxPliOvl_wwin, GetItemSpanWindow )
190         MATCH_REDISP( wxPliOvl_wszr, GetItemSpanSizer )
191         MATCH_REDISP( wxPliOvl_n, GetItemSpanIndex )
192     END_OVERLOAD( Wx::GridBagSizer::GetItemSpan )
193 %}
194
195     %name{SetItemSpanWindow}
196     bool SetItemSpan(wxWindow *window, const wxGBSpan& span);
197     %name{SetItemSpanSizer}
198     bool SetItemSpan(wxSizer *sizer, const wxGBSpan& span);
199     %name{SetItemSpanIndex}
200     bool SetItemSpan(size_t index, const wxGBSpan& span);
201 %{
202 void
203 wxGridBagSizer::SetItemSpan( ... )
204   PPCODE:
205     BEGIN_OVERLOAD()
206         MATCH_REDISP( wxPliOvl_wwin_wgbp, SetItemSpanWindow )
207         MATCH_REDISP( wxPliOvl_wszr_wgbp, SetItemSpanSizer )
208         MATCH_REDISP( wxPliOvl_n_wgbp, SetItemSpanIndex )
209     END_OVERLOAD( Wx::GridBagSizer::SetItemSpan )
210 %}
211
212     %name{FindItemWindow}
213     wxGBSizerItem* FindItem(wxWindow* window);
214     %name{FindItemSizer}
215     wxGBSizerItem* FindItem(wxSizer* sizer);
216 %{
217 void
218 wxGridBagSizer::FindItem( ... )
219   PPCODE:
220     BEGIN_OVERLOAD()
221         MATCH_REDISP( wxPliOvl_wwin, FindItemWindow )
222         MATCH_REDISP( wxPliOvl_wszr, FindItemSizer )
223     END_OVERLOAD( Wx::GridBagSizer::FindItem )
224 %}
225
226     wxGBSizerItem* FindItemAtPosition(const wxGBPosition& pos);
227     wxGBSizerItem* FindItemAtPoint(const wxPoint& pt);
228 ##    wxGBSizerItem* FindItemWithData(const wxObject* userData);
229
230     %name{CheckForIntersectionItem}
231     bool CheckForIntersection(wxGBSizerItem* item,
232                               wxGBSizerItem* excludeItem = NULL);
233     %name{CheckForIntersectionPos}
234     bool CheckForIntersection(const wxGBPosition& pos, const wxGBSpan& span,
235                               wxGBSizerItem* excludeItem = NULL);
236 %{
237 void
238 wxGridBagSizer::CheckForIntersection( ... )
239   PPCODE:
240     BEGIN_OVERLOAD()
241         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wgbi_wgbi, CheckForIntersectionItem, 1 )
242         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wgbp_wgbs_wgbi, CheckForIntersectionPos, 2 )
243     END_OVERLOAD( Wx::GridBagSizer::CheckForIntersection )
244 %}
245
246 };
247
248 {%
249 MODULE=Wx PACKAGE=Wx::GridBagSizer
250
251 void
252 wxGridBagSizer::Add( ... )
253   PPCODE:
254     BEGIN_OVERLOAD()
255         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wwin_wgbp_wgbs_n_n_s, AddWindow, 1 )
256         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wszr_wgbp_wgbs_n_n_s, AddSizer, 1 )
257         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_n_n_wgbp_wgbs_n_n_s, AddSpace, 2 )
258         MATCH_REDISP_COUNT( wxPliOvl_wgbi, AddItem, 1 )
259     END_OVERLOAD( Wx::GridBagSizer::Add )
260 %}
261
262 #endif