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