]> git.saurik.com Git - wxWidgets.git/blame_incremental - include/wx/gtk/dataview.h
adding alpha to gtk colour
[wxWidgets.git] / include / wx / gtk / dataview.h
... / ...
CommitLineData
1/////////////////////////////////////////////////////////////////////////////
2// Name: wx/gtk/dataview.h
3// Purpose: wxDataViewCtrl GTK+2 implementation header
4// Author: Robert Roebling
5// Id: $Id$
6// Copyright: (c) 1998 Robert Roebling
7// Licence: wxWindows licence
8/////////////////////////////////////////////////////////////////////////////
9
10#ifndef __GTKDATAVIEWCTRLH__
11#define __GTKDATAVIEWCTRLH__
12
13#include "wx/defs.h"
14#include "wx/object.h"
15#include "wx/list.h"
16#include "wx/control.h"
17
18// ---------------------------------------------------------
19// classes
20// ---------------------------------------------------------
21
22class WXDLLIMPEXP_CORE wxDataViewCtrl;
23
24// ---------------------------------------------------------
25// wxDataViewRenderer
26// ---------------------------------------------------------
27
28class wxDataViewRenderer: public wxDataViewRendererBase
29{
30public:
31 wxDataViewRenderer( const wxString &varianttype, wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
32
33 // implementation
34 void* GetGtkHandle() { return m_renderer; }
35
36protected:
37 // holds the GTK handle
38 void* m_renderer;
39
40protected:
41 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewRenderer)
42};
43
44// ---------------------------------------------------------
45// wxDataViewTextRenderer
46// ---------------------------------------------------------
47
48class wxDataViewTextRenderer: public wxDataViewRenderer
49{
50public:
51 wxDataViewTextRenderer( const wxString &varianttype = wxT("string"),
52 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
53
54 bool SetValue( const wxVariant &value );
55 bool GetValue( wxVariant &value );
56
57protected:
58 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewTextRenderer)
59};
60
61// ---------------------------------------------------------
62// wxDataViewBitmapRenderer
63// ---------------------------------------------------------
64
65class wxDataViewBitmapRenderer: public wxDataViewRenderer
66{
67public:
68 wxDataViewBitmapRenderer( const wxString &varianttype = wxT("wxBitmap"),
69 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
70
71 bool SetValue( const wxVariant &value );
72 bool GetValue( wxVariant &value );
73
74protected:
75 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewBitmapRenderer)
76};
77
78// ---------------------------------------------------------
79// wxDataViewToggleRenderer
80// ---------------------------------------------------------
81
82class wxDataViewToggleRenderer: public wxDataViewRenderer
83{
84public:
85 wxDataViewToggleRenderer( const wxString &varianttype = wxT("bool"),
86 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
87
88 bool SetValue( const wxVariant &value );
89 bool GetValue( wxVariant &value );
90
91protected:
92 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewToggleRenderer)
93};
94
95// ---------------------------------------------------------
96// wxDataViewCustomRenderer
97// ---------------------------------------------------------
98
99class wxDataViewCustomRenderer: public wxDataViewRenderer
100{
101public:
102 wxDataViewCustomRenderer( const wxString &varianttype = wxT("string"),
103 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT,
104 bool no_init = false );
105 virtual ~wxDataViewCustomRenderer();
106 bool Init();
107
108 virtual bool Render( wxRect cell, wxDC *dc, int state ) = 0;
109 virtual wxSize GetSize() = 0;
110
111 virtual bool Activate( wxRect cell,
112 wxDataViewListModel *model, unsigned int col, unsigned int row )
113 { return false; }
114
115 virtual bool LeftClick( wxPoint cursor, wxRect cell,
116 wxDataViewListModel *model, unsigned int col, unsigned int row )
117 { return false; }
118 virtual bool RightClick( wxPoint cursor, wxRect cell,
119 wxDataViewListModel *model, unsigned int col, unsigned int row )
120 { return false; }
121 virtual bool StartDrag( wxPoint cursor, wxRect cell,
122 wxDataViewListModel *model, unsigned int col, unsigned int row )
123 { return false; }
124
125 // Create DC on request
126 virtual wxDC *GetDC();
127
128private:
129 wxDC *m_dc;
130
131protected:
132 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewCustomRenderer)
133};
134
135// ---------------------------------------------------------
136// wxDataViewProgressRenderer
137// ---------------------------------------------------------
138
139class wxDataViewProgressRenderer: public wxDataViewCustomRenderer
140{
141public:
142 wxDataViewProgressRenderer( const wxString &label = wxEmptyString,
143 const wxString &varianttype = wxT("long"),
144 wxDataViewCellMode mode = wxDATAVIEW_CELL_INERT );
145 virtual ~wxDataViewProgressRenderer();
146
147 bool SetValue( const wxVariant &value );
148
149 virtual bool Render( wxRect cell, wxDC *dc, int state );
150 virtual wxSize GetSize();
151
152private:
153 wxString m_label;
154 int m_value;
155
156protected:
157 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewProgressRenderer)
158};
159
160// ---------------------------------------------------------
161// wxDataViewDateRenderer
162// ---------------------------------------------------------
163
164class wxDataViewDateRenderer: public wxDataViewCustomRenderer
165{
166public:
167 wxDataViewDateRenderer( const wxString &varianttype = wxT("datetime"),
168 wxDataViewCellMode mode = wxDATAVIEW_CELL_ACTIVATABLE );
169
170 bool SetValue( const wxVariant &value );
171
172 virtual bool Render( wxRect cell, wxDC *dc, int state );
173 virtual wxSize GetSize();
174 virtual bool Activate( wxRect cell,
175 wxDataViewListModel *model, unsigned int col, unsigned int row );
176
177private:
178 wxDateTime m_date;
179
180protected:
181 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewDateRenderer)
182};
183
184// ---------------------------------------------------------
185// wxDataViewColumn
186// ---------------------------------------------------------
187
188class WXDLLIMPEXP_CORE wxDataViewColumn: public wxDataViewColumnBase
189{
190public:
191 wxDataViewColumn( const wxString &title, wxDataViewRenderer *renderer, unsigned int model_column,
192 int width = 80, int flags = wxDATAVIEW_COL_RESIZABLE );
193 virtual ~wxDataViewColumn();
194
195 virtual void SetTitle( const wxString &title );
196
197 virtual int GetWidth();
198
199 virtual void SetFixedWidth( int width );
200 virtual int GetFixedWidth();
201
202 // implementation
203 void* GetGtkHandle() { return m_column; }
204
205private:
206 // holds the GTK handle
207 void* m_column;
208
209protected:
210 DECLARE_DYNAMIC_CLASS_NO_COPY(wxDataViewColumn)
211};
212
213// ---------------------------------------------------------
214// wxDataViewCtrl
215// ---------------------------------------------------------
216
217class WXDLLIMPEXP_CORE wxDataViewCtrl: public wxDataViewCtrlBase
218{
219public:
220 wxDataViewCtrl()
221 {
222 Init();
223 }
224
225 wxDataViewCtrl( wxWindow *parent, wxWindowID id,
226 const wxPoint& pos = wxDefaultPosition,
227 const wxSize& size = wxDefaultSize, long style = 0,
228 const wxValidator& validator = wxDefaultValidator )
229 {
230 Create(parent, id, pos, size, style, validator );
231 }
232
233 virtual ~wxDataViewCtrl();
234
235 void Init();
236
237 bool Create(wxWindow *parent, wxWindowID id,
238 const wxPoint& pos = wxDefaultPosition,
239 const wxSize& size = wxDefaultSize, long style = 0,
240 const wxValidator& validator = wxDefaultValidator );
241
242 virtual bool AssociateModel( wxDataViewListModel *model );
243 virtual bool AppendColumn( wxDataViewColumn *col );
244
245 virtual void SetSelection( int row ); // -1 for unselect
246 virtual void SetSelectionRange( unsigned int from, unsigned int to );
247 virtual void SetSelections( const wxArrayInt& aSelections);
248
249 virtual bool IsSelected( unsigned int row ) const;
250 virtual int GetSelection() const;
251 virtual int GetSelections(wxArrayInt& aSelections) const;
252
253
254private:
255 friend class wxDataViewCtrlDC;
256 friend class wxGtkDataViewListModelNotifier;
257 GtkWidget *m_treeview;
258 wxDataViewListModelNotifier *m_notifier;
259
260private:
261 DECLARE_DYNAMIC_CLASS(wxDataViewCtrl)
262 DECLARE_NO_COPY_CLASS(wxDataViewCtrl)
263};
264
265
266#endif // __GTKDATAVIEWCTRLH__