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