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