]> git.saurik.com Git - wxWidgets.git/blob - contrib/include/wx/plot/plot.h
changed wxImage::ComputeHistogram to use wxHashMap
[wxWidgets.git] / contrib / include / wx / plot / plot.h
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: plot.h
3 // Purpose: wxPlotWindow
4 // Author: Robert Roebling
5 // Modified by:
6 // Created: 12/1/2000
7 // Copyright: (c) Robert Roebling
8 // RCS-ID: $Id$
9 // Licence: wxWindows licence
10 /////////////////////////////////////////////////////////////////////////////
11
12 #ifndef _WX_PLOT_H_
13 #define _WX_PLOT_H_
14
15 #ifdef __GNUG__
16 #pragma interface "plot.h"
17 #endif
18
19 #include "wx/defs.h"
20
21 #include "wx/scrolwin.h"
22 #include "wx/event.h"
23 #include "wx/dynarray.h"
24
25 //-----------------------------------------------------------------------------
26 // classes
27 //-----------------------------------------------------------------------------
28
29 class WXDLLEXPORT wxPlotEvent;
30 class WXDLLEXPORT wxPlotCurve;
31 class WXDLLEXPORT wxPlotValues;
32 class WXDLLEXPORT wxPlotArea;
33 class WXDLLEXPORT wxPlotXAxisArea;
34 class WXDLLEXPORT wxPlotYAxisArea;
35 class WXDLLEXPORT wxPlotWindow;
36
37 //-----------------------------------------------------------------------------
38 // consts
39 //-----------------------------------------------------------------------------
40
41 extern const int wxEVT_PLOT_SEL_CHANGING;
42 extern const int wxEVT_PLOT_SEL_CHANGED;
43 extern const int wxEVT_PLOT_CLICKED;
44 extern const int wxEVT_PLOT_DOUBLECLICKED;
45 extern const int wxEVT_PLOT_ZOOM_IN;
46 extern const int wxEVT_PLOT_ZOOM_OUT;
47 extern const int wxEVT_PLOT_VALUE_SEL_CREATING;
48 extern const int wxEVT_PLOT_VALUE_SEL_CREATED;
49 extern const int wxEVT_PLOT_VALUE_SEL_CHANGING;
50 extern const int wxEVT_PLOT_VALUE_SEL_CHANGED;
51 extern const int wxEVT_PLOT_AREA_SEL_CREATING;
52 extern const int wxEVT_PLOT_AREA_SEL_CREATED;
53 extern const int wxEVT_PLOT_AREA_SEL_CHANGING;
54 extern const int wxEVT_PLOT_AREA_SEL_CHANGED;
55 extern const int wxEVT_PLOT_BEGIN_X_LABEL_EDIT;
56 extern const int wxEVT_PLOT_END_X_LABEL_EDIT;
57 extern const int wxEVT_PLOT_BEGIN_Y_LABEL_EDIT;
58 extern const int wxEVT_PLOT_END_Y_LABEL_EDIT;
59 extern const int wxEVT_PLOT_BEGIN_TITLE_EDIT;
60 extern const int wxEVT_PLOT_END_TITLE_EDIT;
61 extern const int wxEVT_PLOT_AREA_CREATE;
62
63
64 #define wxPLOT_X_AXIS 0x0004
65 #define wxPLOT_Y_AXIS 0x0008
66 #define wxPLOT_BUTTON_MOVE 0x0010
67 #define wxPLOT_BUTTON_ZOOM 0x0020
68 #define wxPLOT_BUTTON_ENLARGE 0x0040
69
70 #define wxPLOT_BUTTON_ALL (wxPLOT_BUTTON_MOVE|wxPLOT_BUTTON_ZOOM|wxPLOT_BUTTON_ENLARGE)
71 #define wxPLOT_DEFAULT (wxPLOT_X_AXIS|wxPLOT_Y_AXIS | wxPLOT_BUTTON_ALL)
72
73 //-----------------------------------------------------------------------------
74 // wxPlotEvent
75 //-----------------------------------------------------------------------------
76
77 class WXDLLEXPORT wxPlotEvent: public wxNotifyEvent
78 {
79 public:
80 wxPlotEvent( wxEventType commandType = wxEVT_NULL, int id = 0 );
81
82 wxPlotCurve *GetCurve()
83 { return m_curve; }
84 void SetCurve( wxPlotCurve *curve )
85 { m_curve = curve; }
86
87 double GetZoom()
88 { return m_zoom; }
89 void SetZoom( double zoom )
90 { m_zoom = zoom; }
91
92 wxInt32 GetPosition()
93 { return m_position; }
94 void SetPosition( wxInt32 pos )
95 { m_position = pos; }
96
97 private:
98 wxPlotCurve *m_curve;
99 double m_zoom;
100 wxInt32 m_position;
101 };
102
103 //-----------------------------------------------------------------------------
104 // wxPlotCurve
105 //-----------------------------------------------------------------------------
106
107 class WXDLLEXPORT wxPlotCurve: public wxObject
108 {
109 public:
110 wxPlotCurve( int offsetY, double startY, double endY );
111
112 virtual wxInt32 GetStartX() = 0;
113 virtual wxInt32 GetEndX() = 0;
114
115 virtual double GetY( wxInt32 x ) = 0;
116
117 void SetStartY( double startY )
118 { m_startY = startY; }
119 double GetStartY()
120 { return m_startY; }
121 void SetEndY( double endY )
122 { m_endY = endY; }
123 double GetEndY()
124 { return m_endY; }
125 void SetOffsetY( int offsetY )
126 { m_offsetY = offsetY; }
127 int GetOffsetY()
128 { return m_offsetY; }
129
130 void SetPenNormal( const wxPen &pen )
131 { m_penNormal = pen; }
132 void SetPenSelected( const wxPen &pen )
133 { m_penSelected = pen; }
134
135 private:
136 int m_offsetY;
137 double m_startY;
138 double m_endY;
139 wxPen m_penNormal;
140 wxPen m_penSelected;
141
142 DECLARE_ABSTRACT_CLASS(wxPlotCurve)
143 };
144
145 //-----------------------------------------------------------------------------
146 // wxPlotOnOffCurve
147 //-----------------------------------------------------------------------------
148
149 class WXDLLEXPORT wxPlotOnOff
150 {
151 public:
152 wxPlotOnOff() { }
153
154 wxInt32 m_on;
155 wxInt32 m_off;
156 void *m_clientData;
157 };
158
159 WX_DECLARE_EXPORTED_OBJARRAY(wxPlotOnOff, wxArrayPlotOnOff);
160
161 class WXDLLEXPORT wxPlotOnOffCurve: public wxObject
162 {
163 public:
164 wxPlotOnOffCurve( int offsetY );
165
166 wxInt32 GetStartX()
167 { return m_minX; }
168 wxInt32 GetEndX()
169 { return m_maxX; }
170
171 void SetOffsetY( int offsetY )
172 { m_offsetY = offsetY; }
173 int GetOffsetY()
174 { return m_offsetY; }
175
176 void Add( wxInt32 on, wxInt32 off, void *clientData = NULL );
177 size_t GetCount();
178
179 wxInt32 GetOn( size_t index );
180 wxInt32 GetOff( size_t index );
181 void* GetClientData( size_t index );
182 wxPlotOnOff *GetAt( size_t index );
183
184 virtual void DrawOnLine( wxDC &dc, wxCoord y, wxCoord start, wxCoord end, void *clientData );
185 virtual void DrawOffLine( wxDC &dc, wxCoord y, wxCoord start, wxCoord end );
186
187 private:
188 int m_offsetY;
189 wxInt32 m_minX;
190 wxInt32 m_maxX;
191
192 wxArrayPlotOnOff m_marks;
193
194 DECLARE_CLASS(wxPlotOnOffCurve)
195 };
196
197 //-----------------------------------------------------------------------------
198 // wxPlotArea
199 //-----------------------------------------------------------------------------
200
201 class WXDLLEXPORT wxPlotArea: public wxWindow
202 {
203 public:
204 wxPlotArea() {}
205 wxPlotArea( wxPlotWindow *parent );
206
207 void OnPaint( wxPaintEvent &event );
208 void OnMouse( wxMouseEvent &event );
209
210 void DrawCurve( wxDC *dc, wxPlotCurve *curve, int from = -1, int to = -1 );
211 void DrawOnOffCurve( wxDC *dc, wxPlotOnOffCurve *curve, int from = -1, int to = -1 );
212 void DeleteCurve( wxPlotCurve *curve, int from = -1, int to = -1 );
213
214 virtual void ScrollWindow( int dx, int dy, const wxRect *rect );
215
216 private:
217 wxPlotWindow *m_owner;
218 bool m_zooming;
219
220 DECLARE_CLASS(wxPlotArea)
221 DECLARE_EVENT_TABLE()
222 };
223
224 //-----------------------------------------------------------------------------
225 // wxPlotXAxisArea
226 //-----------------------------------------------------------------------------
227
228 class WXDLLEXPORT wxPlotXAxisArea: public wxWindow
229 {
230 public:
231 wxPlotXAxisArea() {}
232 wxPlotXAxisArea( wxPlotWindow *parent );
233
234 void OnPaint( wxPaintEvent &event );
235 void OnMouse( wxMouseEvent &event );
236
237 private:
238 wxPlotWindow *m_owner;
239
240 DECLARE_CLASS(wxPlotXAxisArea)
241 DECLARE_EVENT_TABLE()
242 };
243
244 //-----------------------------------------------------------------------------
245 // wxPlotYAxisArea
246 //-----------------------------------------------------------------------------
247
248 class WXDLLEXPORT wxPlotYAxisArea: public wxWindow
249 {
250 public:
251 wxPlotYAxisArea() {}
252 wxPlotYAxisArea( wxPlotWindow *parent );
253
254 void OnPaint( wxPaintEvent &event );
255 void OnMouse( wxMouseEvent &event );
256
257 private:
258 wxPlotWindow *m_owner;
259
260 DECLARE_CLASS(wxPlotYAxisArea)
261 DECLARE_EVENT_TABLE()
262 };
263
264 //-----------------------------------------------------------------------------
265 // wxPlotWindow
266 //-----------------------------------------------------------------------------
267
268 class WXDLLEXPORT wxPlotWindow: public wxScrolledWindow
269 {
270 public:
271 wxPlotWindow() {}
272 wxPlotWindow( wxWindow *parent, wxWindowID id, const wxPoint &pos, const wxSize &size, int flags = wxPLOT_DEFAULT );
273 ~wxPlotWindow();
274
275 // curve accessors
276 // ---------------
277
278 void Add( wxPlotCurve *curve );
279 void Delete( wxPlotCurve* curve );
280
281 size_t GetCount();
282 wxPlotCurve *GetAt( size_t n );
283
284 void SetCurrent( wxPlotCurve* current );
285 wxPlotCurve *GetCurrent();
286
287 // mark list accessors
288 // -------------------
289
290 void Add( wxPlotOnOffCurve *curve );
291 void Delete( wxPlotOnOffCurve* curve );
292
293 size_t GetOnOffCurveCount();
294 wxPlotOnOffCurve *GetOnOffCurveAt( size_t n );
295
296 // vertical representation
297 // -----------------------
298
299 void Move( wxPlotCurve* curve, int pixels_up );
300 void Enlarge( wxPlotCurve *curve, double factor );
301
302 // horizontal representation
303 // -------------------------
304
305 void SetUnitsPerValue( double upv );
306 double GetUnitsPerValue()
307 { return m_xUnitsPerValue; }
308
309 void SetZoom( double zoom );
310 double GetZoom()
311 { return m_xZoom; }
312
313 // options
314 // -------
315
316 void SetScrollOnThumbRelease( bool scrollOnThumbRelease = TRUE )
317 { m_scrollOnThumbRelease = scrollOnThumbRelease; }
318 bool GetScrollOnThumbRelease()
319 { return m_scrollOnThumbRelease; }
320
321 void SetEnlargeAroundWindowCentre( bool enlargeAroundWindowCentre = TRUE )
322 { m_enlargeAroundWindowCentre = enlargeAroundWindowCentre; }
323 bool GetEnlargeAroundWindowCentre()
324 { return m_enlargeAroundWindowCentre; }
325
326 // events (may be overridden)
327 // --------------------------
328
329 void OnMoveUp( wxCommandEvent& event );
330 void OnMoveDown( wxCommandEvent& event );
331
332 void OnEnlarge( wxCommandEvent& event );
333 void OnShrink( wxCommandEvent& event );
334 void OnZoomIn( wxCommandEvent& event );
335 void OnZoomOut( wxCommandEvent& event );
336
337 void OnScroll2( wxScrollWinEvent& event );
338
339 // utilities
340 // ---------
341
342 void RedrawEverything();
343 void RedrawXAxis();
344 void RedrawYAxis();
345
346 void ResetScrollbar();
347
348 private:
349 friend class wxPlotArea;
350 friend class wxPlotXAxisArea;
351 friend class wxPlotYAxisArea;
352
353 double m_xUnitsPerValue;
354 double m_xZoom;
355
356 wxList m_curves;
357 wxList m_onOffCurves;
358
359 wxPlotArea *m_area;
360 wxPlotXAxisArea *m_xaxis;
361 wxPlotYAxisArea *m_yaxis;
362 wxPlotCurve *m_current;
363
364 bool m_scrollOnThumbRelease;
365 bool m_enlargeAroundWindowCentre;
366
367 DECLARE_CLASS(wxPlotWindow)
368 DECLARE_EVENT_TABLE()
369 };
370
371 // ----------------------------------------------------------------------------
372 // plot event macros
373 // ----------------------------------------------------------------------------
374
375 typedef void (wxEvtHandler::*wxPlotEventFunction)(wxPlotEvent&);
376
377 #if WXWIN_COMPATIBILITY_EVENT_TYPES
378
379 #define EVT_PLOT(id, fn) { wxEVT_PLOT_DOUBLECLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
380 #define EVT_PLOT_SEL_CHANGING(id, fn) { wxEVT_PLOT_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
381 #define EVT_PLOT_SEL_CHANGED(id, fn) { wxEVT_PLOT_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
382 #define EVT_PLOT_CLICKED(id, fn) { wxEVT_PLOT_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
383 #define EVT_PLOT_DOUBLECLICKED(id, fn) { wxEVT_PLOT_DOUBLECLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
384 #define EVT_PLOT_ZOOM_IN(id, fn) { wxEVT_PLOT_ZOOM_IN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
385 #define EVT_PLOT_ZOOM_OUT(id, fn) { wxEVT_PLOT_ZOOM_OUT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
386 #define EVT_PLOT_VALUE_SEL_CREATING(id, fn) { wxEVT_PLOT_VALUE_SEL_CREATING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
387 #define EVT_PLOT_VALUE_SEL_CREATED(id, fn) { wxEVT_PLOT_VALUE_SEL_CREATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
388 #define EVT_PLOT_VALUE_SEL_CHANGING(id, fn) { wxEVT_PLOT_VALUE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
389 #define EVT_PLOT_VALUE_SEL_CHANGED(id, fn) { wxEVT_PLOT_VALUE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
390 #define EVT_PLOT_AREA_SEL_CREATING(id, fn) { wxEVT_PLOT_AREA_SEL_CREATING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
391 #define EVT_PLOT_AREA_SEL_CREATED(id, fn) { wxEVT_PLOT_AREA_SEL_CREATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
392 #define EVT_PLOT_AREA_SEL_CHANGING(id, fn) { wxEVT_PLOT_AREA_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
393 #define EVT_PLOT_AREA_SEL_CHANGED(id, fn) { wxEVT_PLOT_AREA_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
394 #define EVT_PLOT_BEGIN_X_LABEL_EDIT(id, fn) { wxEVT_PLOT_BEGIN_X_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
395 #define EVT_PLOT_END_X_LABEL_EDIT(id, fn) { wxEVT_PLOT_END_X_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
396 #define EVT_PLOT_BEGIN_Y_LABEL_EDIT(id, fn) { wxEVT_PLOT_BEGIN_Y_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
397 #define EVT_PLOT_END_Y_LABEL_EDIT(id, fn) { wxEVT_PLOT_END_Y_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
398 #define EVT_PLOT_BEGIN_TITLE_EDIT(id, fn) { wxEVT_PLOT_BEGIN_TITLE_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
399 #define EVT_PLOT_END_TITLE_EDIT(id, fn) { wxEVT_PLOT_END_TITLE_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL },
400
401 #else
402
403 #define EVT_PLOT(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_DOUBLECLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
404 #define EVT_PLOT_SEL_CHANGING(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
405 #define EVT_PLOT_SEL_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
406 #define EVT_PLOT_CLICKED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_CLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
407 #define EVT_PLOT_DOUBLECLICKED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_DOUBLECLICKED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
408 #define EVT_PLOT_ZOOM_IN(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_ZOOM_IN, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
409 #define EVT_PLOT_ZOOM_OUT(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_ZOOM_OUT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
410 #define EVT_PLOT_VALUE_SEL_CREATING(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_VALUE_SEL_CREATING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
411 #define EVT_PLOT_VALUE_SEL_CREATED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_VALUE_SEL_CREATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
412 #define EVT_PLOT_VALUE_SEL_CHANGING(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_VALUE_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
413 #define EVT_PLOT_VALUE_SEL_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_VALUE_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
414 #define EVT_PLOT_AREA_SEL_CREATING(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_AREA_SEL_CREATING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
415 #define EVT_PLOT_AREA_SEL_CREATED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_AREA_SEL_CREATED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
416 #define EVT_PLOT_AREA_SEL_CHANGING(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_AREA_SEL_CHANGING, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
417 #define EVT_PLOT_AREA_SEL_CHANGED(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_AREA_SEL_CHANGED, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
418 #define EVT_PLOT_BEGIN_X_LABEL_EDIT(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_BEGIN_X_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
419 #define EVT_PLOT_END_X_LABEL_EDIT(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_END_X_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
420 #define EVT_PLOT_BEGIN_Y_LABEL_EDIT(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_BEGIN_Y_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
421 #define EVT_PLOT_END_Y_LABEL_EDIT(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_END_Y_LABEL_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
422 #define EVT_PLOT_BEGIN_TITLE_EDIT(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_BEGIN_TITLE_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
423 #define EVT_PLOT_END_TITLE_EDIT(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_PLOT_END_TITLE_EDIT, id, -1, (wxObjectEventFunction) (wxEventFunction) (wxCommandEventFunction) (wxNotifyEventFunction) (wxPlotEventFunction) & fn, (wxObject *) NULL ),
424
425 #endif
426
427 #endif
428 // _WX_PLOT_H_