1 #############################################################################
2 ## Name: ext/dataview/XS/DataViewCtrl.xsp
3 ## Purpose: XS++ for Wx::DataViewCtrl
4 ## Author: Mattia Barbon
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 #############################################################################
13 #if wxUSE_DATAVIEWCTRL
15 #include <wx/dataview.h>
16 #include "cpp/dataview.h"
18 %typemap{wxRect&}{reference};
21 %file{cpp/dataview.h};
24 double dataview_constant( const char* name, int arg )
27 // !parser: sub { $_[0] =~ m<^\s*r\w*\(\s*(\w+)\s*\);\s*(?://(.*))?$> }
30 if( strEQ( name, #n ) ) \
33 WX_PL_CONSTANT_INIT();
41 r( wxDV_HORIZ_RULES );
45 r( wxDVR_DEFAULT_ALIGNMENT );
47 r( wxDATAVIEW_CELL_INERT );
48 r( wxDATAVIEW_CELL_ACTIVATABLE );
49 r( wxDATAVIEW_CELL_EDITABLE );
51 r( wxDATAVIEW_CELL_SELECTED );
52 r( wxDATAVIEW_CELL_PRELIT );
53 r( wxDATAVIEW_CELL_INSENSITIVE );
54 r( wxDATAVIEW_CELL_FOCUSED );
56 r( wxDATAVIEW_COL_RESIZABLE );
57 r( wxDATAVIEW_COL_SORTABLE );
58 r( wxDATAVIEW_COL_REORDERABLE );
59 r( wxDATAVIEW_COL_HIDDEN );
64 WX_PL_CONSTANT_CLEANUP();
67 wxPlConstants dataview_module( &dataview_constant );
72 %name{Wx::DataViewCtrl} class wxDataViewCtrl
79 MATCH_VOIDM_REDISP( newDefault )
80 MATCH_ANY_REDISP( newFull )
81 END_OVERLOAD( "Wx::DataViewCtrl::new" )
84 %name{newDefault} wxDataViewCtrl()
85 %code{% RETVAL = new wxDataViewCtrl();
86 wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
88 %name{newFull} wxDataViewCtrl( wxWindow* parent,
89 wxWindowID id = wxID_ANY,
90 const wxPoint& pos = wxDefaultPosition,
91 const wxSize& size = wxDefaultSize,
93 const wxValidator& validator = wxDefaultValidatorPtr )
94 %code{% RETVAL = new wxDataViewCtrl( parent, id, pos, size,
96 wxPli_create_evthandler( aTHX_ RETVAL, CLASS );
99 bool Create( wxWindow* parent, wxWindowID id = wxID_ANY,
100 const wxPoint& pos = wxDefaultPosition,
101 const wxSize& size = wxDefaultSize,
103 const wxValidator& validator = wxDefaultValidatorPtr );
105 bool AssociateModel( wxDataViewModel* model );
106 wxDataViewModel* GetModel()
107 %code{% RETVAL = THIS->GetModel();
112 bool PrependColumn( wxDataViewColumnDisown* col );
113 bool AppendColumn( wxDataViewColumnDisown* col );
118 AppendBitmapColumn( ... )
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" )
126 %name{AppendBitmapColumnLabel}
127 wxDataViewColumnDisown* AppendBitmapColumn( const wxString& label,
128 unsigned int model_column,
129 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
131 %name{AppendBitmapColumnBitmap}
132 wxDataViewColumnDisown* AppendBitmapColumn( const wxBitmap& label,
133 unsigned int model_column,
134 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
139 AppendDateColumn( ... )
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" )
147 %name{AppendDateColumnLabel}
148 wxDataViewColumnDisown* AppendDateColumn( const wxString& label,
149 unsigned int model_column,
150 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
152 %name{AppendDateColumnBitmap}
153 wxDataViewColumnDisown* AppendDateColumn( const wxBitmap& label,
154 unsigned int model_column,
155 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
161 AppendProgressColumn( ... )
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" )
169 %name{AppendProgressColumnLabel}
170 wxDataViewColumnDisown* AppendProgressColumn( const wxString& label,
171 unsigned int model_column,
172 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
174 %name{AppendProgressColumnBitmap}
175 wxDataViewColumnDisown* AppendProgressColumn( const wxBitmap& label,
176 unsigned int model_column,
177 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
183 AppendIconTextColumn( ... )
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" )
191 %name{AppendIconTextColumnLabel}
192 wxDataViewColumnDisown* AppendIconTextColumn( const wxString& label,
193 unsigned int model_column,
194 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
196 %name{AppendIconTextColumnBitmap}
197 wxDataViewColumnDisown* AppendIconTextColumn( const wxBitmap& label,
198 unsigned int model_column,
199 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
205 AppendTextColumn( ... )
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" )
213 %name{AppendTextColumnLabel}
214 wxDataViewColumnDisown* AppendTextColumn( const wxString& label,
215 unsigned int model_column,
216 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
218 %name{AppendTextColumnBitmap}
219 wxDataViewColumnDisown* AppendTextColumn( const wxBitmap& label,
220 unsigned int model_column,
221 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
227 AppendToggleColumn( ... )
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" )
235 %name{AppendToggleColumnLabel}
236 wxDataViewColumnDisown* AppendToggleColumn( const wxString& label,
237 unsigned int model_column,
238 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
240 %name{AppendToggleColumnBitmap}
241 wxDataViewColumnDisown* AppendToggleColumn( const wxBitmap& label,
242 unsigned int model_column,
243 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
246 unsigned int GetColumnCount() const;
247 wxDataViewColumnDisown* GetColumn( unsigned int pos ) const;
248 int GetColumnPosition( const wxDataViewColumn* column ) const;
249 bool DeleteColumn( wxDataViewColumn* column );
251 void SetExpanderColumn( wxDataViewColumn* col );
252 wxDataViewColumnDisown* GetExpanderColumn() const;
253 ## wxDataViewColumnDisown* GetSortingColumn() const;
255 void SetIndent( int indent );
256 int GetIndent() const;
258 wxDataViewItem& GetSelection() const;
259 void Select( const wxDataViewItem& item );
260 void Unselect( const wxDataViewItem& item );
261 bool IsSelected( const wxDataViewItem& item ) const;
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;