]> git.saurik.com Git - wxWidgets.git/blob - include/wx/dataview.h
Compilation fixes.
[wxWidgets.git] / include / wx / dataview.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: wx/dataview.h
3 // Purpose: wxDataViewCtrl base classes
4 // Author: Robert Roebling
5 // Modified by:
6 // Created: 08.01.06
7 // RCS-ID: $Id$
8 // Copyright: (c) Robert Roebling
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_DATAVIEW_H_BASE_
13 #define _WX_DATAVIEW_H_BASE_
14
15 #include "wx/defs.h"
16
17 #if wxUSE_DATAVIEWCTRL
18
19 #include "wx/control.h"
20 #include "wx/textctrl.h"
21 #include "wx/bitmap.h"
22 #include "wx/variant.h"
23
24 // ----------------------------------------------------------------------------
25 // wxDataViewCtrl flags
26 // ----------------------------------------------------------------------------
27
28 // ----------------------------------------------------------------------------
29 // wxDataViewCtrl globals
30 // ----------------------------------------------------------------------------
31
32 extern WXDLLEXPORT_DATA(const wxChar) wxDataViewCtrlNameStr[];
33
34 // ---------------------------------------------------------
35 // wxDataViewModel
36 // ---------------------------------------------------------
37
38 class wxDataViewModel: public wxObject
39 {
40 public:
41 wxDataViewModel() { }
42 virtual ~wxDataViewModel() { }
43
44 protected:
45 DECLARE_NO_COPY_CLASS(wxDataViewModel)
46 };
47
48 // ---------------------------------------------------------
49 // wxDataViewListModelNotifier
50 // ---------------------------------------------------------
51
52 class wxDataViewListModelNotifier
53 {
54 public:
55 wxDataViewListModelNotifier() { }
56 virtual ~wxDataViewListModelNotifier() { }
57
58 virtual bool RowAppended() = 0;
59 virtual bool RowPrepended() = 0;
60 virtual bool RowInserted( size_t before ) = 0;
61 virtual bool RowDeleted( size_t row ) = 0;
62 virtual bool RowChanged( size_t row ) = 0;
63 virtual bool ValueChanged( size_t row, size_t col ) = 0;
64 virtual bool Cleared() = 0;
65 };
66
67 // ---------------------------------------------------------
68 // wxDataViewListModel
69 // ---------------------------------------------------------
70
71 class wxDataViewListModel: public wxDataViewModel
72 {
73 public:
74 wxDataViewListModel();
75 virtual ~wxDataViewListModel();
76
77 virtual size_t GetNumberOfRows() = 0;
78 virtual size_t GetNumberOfCols() = 0;
79 // as reported by wxVariant
80 virtual wxString GetColType( size_t col ) = 0;
81 virtual wxVariant GetValue( size_t col, size_t row ) = 0;
82
83 // delegated notifiers
84 bool RowAppended();
85 bool RowPrepended();
86 bool RowInserted( size_t before );
87 bool RowDeleted( size_t row );
88 bool RowChanged( size_t row );
89 bool ValueChanged( size_t row, size_t col );
90 bool Cleared();
91
92 void SetNotifier( wxDataViewListModelNotifier *notifier );
93 wxDataViewListModelNotifier* GetNotifier();
94
95 private:
96 wxDataViewListModelNotifier *m_notifier;
97
98 protected:
99 DECLARE_NO_COPY_CLASS(wxDataViewListModel)
100 };
101
102 // ---------------------------------------------------------
103 // wxDataViewCtrlBase
104 // ---------------------------------------------------------
105
106 class wxDataViewCtrlBase: public wxControl
107 {
108 public:
109 wxDataViewCtrlBase();
110 ~wxDataViewCtrlBase();
111
112 virtual bool AppendStringColumn( const wxString &label ) = 0;
113
114 virtual bool AssociateModel( wxDataViewModel *model );
115 wxDataViewModel* GetModel();
116
117 private:
118 wxDataViewModel *m_model;
119
120 protected:
121 DECLARE_NO_COPY_CLASS(wxDataViewCtrlBase)
122 };
123
124
125
126 #if defined(__WXGTK20__)
127 #include "wx/gtk/dataview.h"
128 #elif defined(__WXMAC__)
129 #include "wx/mac/dataview.h"
130 #else
131 #include "wx/generic/dataview.h"
132 #endif
133
134 #endif // wxUSE_DATAVIEWCTRL
135
136 #endif
137 // _WX_DATAVIEW_H_BASE_