Add libwx-perl
[pkg-perl] / deb-src / libwx-perl / libwx-perl-0.96 / ext / dataview / XS / DataViewCtrl.xsp
1 #############################################################################
2 ## Name:        ext/dataview/XS/DataViewCtrl.xsp
3 ## Purpose:     XS++ for Wx::DataViewCtrl
4 ## Author:      Mattia Barbon
5 ## Modified by:
6 ## Created:     05/11/2007
7 ## RCS-ID:      $Id: DataViewCtrl.xsp 2382 2008-04-27 16:51:03Z mbarbon $
8 ## Copyright:   (c) 2007-2008 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 #if wxUSE_DATAVIEWCTRL
14
15 #include <wx/dataview.h>
16 #include "cpp/dataview.h"
17
18 %typemap{wxRect&}{reference};
19
20 %module{Wx};
21 %file{cpp/dataview.h};
22 %{
23
24 double dataview_constant( const char* name, int arg )
25 {
26     // !package: Wx
27     // !parser: sub { $_[0] =~ m<^\s*r\w*\(\s*(\w+)\s*\);\s*(?://(.*))?$> }
28     // !tag: dataview
29 #define r( n ) \
30     if( strEQ( name, #n ) ) \
31         return n;
32
33     WX_PL_CONSTANT_INIT();
34
35     switch( fl )
36     {
37     case 'D':
38         r( wxDV_SINGLE );
39         r( wxDV_MULTIPLE );
40         r( wxDV_NO_HEADER );
41         r( wxDV_HORIZ_RULES );
42         r( wxDV_VERT_RULES );
43         r( wxDV_ROW_LINES );
44
45         r( wxDVR_DEFAULT_ALIGNMENT );
46
47         r( wxDATAVIEW_CELL_INERT );
48         r( wxDATAVIEW_CELL_ACTIVATABLE );
49         r( wxDATAVIEW_CELL_EDITABLE );
50
51         r( wxDATAVIEW_CELL_SELECTED );
52         r( wxDATAVIEW_CELL_PRELIT );
53         r( wxDATAVIEW_CELL_INSENSITIVE );
54         r( wxDATAVIEW_CELL_FOCUSED );
55
56         r( wxDATAVIEW_COL_RESIZABLE );
57         r( wxDATAVIEW_COL_SORTABLE );
58         r( wxDATAVIEW_COL_REORDERABLE );
59         r( wxDATAVIEW_COL_HIDDEN );
60         break;
61     }
62 #undef r
63
64     WX_PL_CONSTANT_CLEANUP();
65 }
66
67 wxPlConstants dataview_module( &dataview_constant );
68
69 %}
70 %file{-};
71
72 %name{Wx::DataViewCtrl} class wxDataViewCtrl
73 {
74 %{
75 void
76 new( ... )
77   PPCODE:
78     BEGIN_OVERLOAD()
79         MATCH_VOIDM_REDISP( newDefault )
80         MATCH_ANY_REDISP( newFull )
81     END_OVERLOAD( "Wx::DataViewCtrl::new" )
82 %}
83
84     %name{newDefault} wxDataViewCtrl()
85         %code{% RETVAL = new wxDataViewCtrl();
86                 wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
87              %};
88     %name{newFull} wxDataViewCtrl( wxWindow* parent,
89                                    wxWindowID id = wxID_ANY,
90                                    const wxPoint& pos = wxDefaultPosition,
91                                    const wxSize& size = wxDefaultSize,
92                                    long style = 0,
93                                    const wxValidator& validator = wxDefaultValidatorPtr )
94         %code{% RETVAL = new wxDataViewCtrl( parent, id, pos, size,
95                                              style, *validator );
96                 wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
97              %};
98
99     bool Create( wxWindow* parent, wxWindowID id = wxID_ANY,
100                  const wxPoint& pos = wxDefaultPosition,
101                  const wxSize& size = wxDefaultSize,
102                  long style = 0,
103                  const wxValidator& validator = wxDefaultValidatorPtr );
104
105     bool AssociateModel( wxDataViewModel* model );
106     wxDataViewModel* GetModel()
107         %code{% RETVAL = THIS->GetModel();
108                 if( RETVAL )
109                     RETVAL->IncRef();
110                 %};
111
112     bool PrependColumn( wxDataViewColumnDisown* col );
113     bool AppendColumn( wxDataViewColumnDisown* col );
114
115     ## Bitmap
116 %{
117 void
118 AppendBitmapColumn( ... )
119   PPCODE:
120     BEGIN_OVERLOAD()
121         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_n_n_n, AppendBitmapColumnLabel, 2 )
122         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wbmp_n_n_n, AppendBitmapColumnBitmap, 2 )
123     END_OVERLOAD( "Wx::DataViewCtrl::AppendBitmapColumn" )
124 %}
125
126     %name{AppendBitmapColumnLabel}
127     wxDataViewColumnDisown* AppendBitmapColumn( const wxString& label,
128                                                 unsigned int model_column,
129                                                 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
130                                                 int width = -1 );
131     %name{AppendBitmapColumnBitmap}
132     wxDataViewColumnDisown* AppendBitmapColumn( const wxBitmap& label,
133                                                 unsigned int model_column,
134                                                 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
135                                                 int width = -1 );
136     ## Date
137 %{
138 void
139 AppendDateColumn( ... )
140   PPCODE:
141     BEGIN_OVERLOAD()
142         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_n_n_n, AppendDateColumnLabel, 2 )
143         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wbmp_n_n_n, AppendDateColumnBitmap, 2 )
144     END_OVERLOAD( "Wx::DataViewCtrl::AppendDateColumn" )
145 %}
146
147     %name{AppendDateColumnLabel}
148     wxDataViewColumnDisown* AppendDateColumn( const wxString& label,
149                                               unsigned int model_column,
150                                               wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
151                                               int width = -1 );
152     %name{AppendDateColumnBitmap}
153     wxDataViewColumnDisown* AppendDateColumn( const wxBitmap& label,
154                                               unsigned int model_column,
155                                               wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
156                                               int width = -1 );
157
158     ## Progress
159 %{
160 void
161 AppendProgressColumn( ... )
162   PPCODE:
163     BEGIN_OVERLOAD()
164         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_n_n_n, AppendProgressColumnLabel, 2 )
165         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wbmp_n_n_n, AppendProgressColumnBitmap, 2 )
166     END_OVERLOAD( "Wx::DataViewCtrl::AppendProgressColumn" )
167 %}
168
169     %name{AppendProgressColumnLabel}
170     wxDataViewColumnDisown* AppendProgressColumn( const wxString& label,
171                                                   unsigned int model_column,
172                                                   wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
173                                                   int width = 80 );
174     %name{AppendProgressColumnBitmap}
175     wxDataViewColumnDisown* AppendProgressColumn( const wxBitmap& label,
176                                                   unsigned int model_column,
177                                                   wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
178                                                   int width = 80 );
179
180     ## IconText
181 %{
182 void
183 AppendIconTextColumn( ... )
184   PPCODE:
185     BEGIN_OVERLOAD()
186         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_n_n_n, AppendIconTextColumnLabel, 2 )
187         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wbmp_n_n_n, AppendIconTextColumnBitmap, 2 )
188     END_OVERLOAD( "Wx::DataViewCtrl::AppendIconTextColumn" )
189 %}
190
191     %name{AppendIconTextColumnLabel}
192     wxDataViewColumnDisown* AppendIconTextColumn( const wxString& label,
193                                                   unsigned int model_column,
194                                                   wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
195                                                   int width = -1 );
196     %name{AppendIconTextColumnBitmap}
197     wxDataViewColumnDisown* AppendIconTextColumn( const wxBitmap& label,
198                                                   unsigned int model_column,
199                                                   wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
200                                                   int width = -1 );
201
202     ## Text
203 %{
204 void
205 AppendTextColumn( ... )
206   PPCODE:
207     BEGIN_OVERLOAD()
208         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_n_n_n, AppendTextColumnLabel, 2 )
209         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wbmp_n_n_n, AppendTextColumnBitmap, 2 )
210     END_OVERLOAD( "Wx::DataViewCtrl::AppendTextColumn" )
211 %}
212
213     %name{AppendTextColumnLabel}
214     wxDataViewColumnDisown* AppendTextColumn( const wxString& label,
215                                               unsigned int model_column,
216                                               wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
217                                               int width = -1 );
218     %name{AppendTextColumnBitmap}
219     wxDataViewColumnDisown* AppendTextColumn( const wxBitmap& label,
220                                               unsigned int model_column,
221                                               wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
222                                               int width = -1 );
223
224     ## Toggle
225 %{
226 void
227 AppendToggleColumn( ... )
228   PPCODE:
229     BEGIN_OVERLOAD()
230         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_s_n_n_n, AppendToggleColumnLabel, 2 )
231         MATCH_REDISP_COUNT_ALLOWMORE( wxPliOvl_wbmp_n_n_n, AppendToggleColumnBitmap, 2 )
232     END_OVERLOAD( "Wx::DataViewCtrl::AppendToggleColumn" )
233 %}
234
235     %name{AppendToggleColumnLabel}
236     wxDataViewColumnDisown* AppendToggleColumn( const wxString& label,
237                                                 unsigned int model_column,
238                                                 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
239                                                 int width = 30 );
240     %name{AppendToggleColumnBitmap}
241     wxDataViewColumnDisown* AppendToggleColumn( const wxBitmap& label,
242                                                 unsigned int model_column,
243                                                 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
244                                                 int width = 30 );
245
246     unsigned int GetColumnCount() const;
247     wxDataViewColumnDisown* GetColumn( unsigned int pos ) const;
248     int GetColumnPosition( const wxDataViewColumn* column ) const;
249     bool DeleteColumn( wxDataViewColumn* column );
250     bool ClearColumns();
251     void SetExpanderColumn( wxDataViewColumn* col );
252     wxDataViewColumnDisown* GetExpanderColumn() const;
253 ##    wxDataViewColumnDisown* GetSortingColumn() const;
254
255     void SetIndent( int indent );
256     int GetIndent() const;
257
258     wxDataViewItem& GetSelection() const;
259     void Select( const wxDataViewItem& item );
260     void Unselect( const wxDataViewItem& item );
261     bool IsSelected( const wxDataViewItem& item ) const;
262
263     void SelectAll();
264     void UnselectAll();
265
266     void Expand( const wxDataViewItem& item );
267     void Collapse( const wxDataViewItem& item );
268     void EnsureVisible( const wxDataViewItem& item,
269                         const wxDataViewColumn* column = NULL );
270     wxRect& GetItemRect( const wxDataViewItem& item,
271                          const wxDataViewColumn* column = NULL ) const;
272 };
273
274 #endif