home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / wxos2233.zip / wxOS2-2_3_3.zip / wxWindows-2.3.3 / contrib / include / wx / plot / plot.h < prev    next >
C/C++ Source or Header  |  2002-09-08  |  21KB  |  429 lines

  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: plot.h,v 1.4 2002/09/07 12:10:21 GD Exp $
  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. //-----------------------------------------------------------------------------
  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_
  429.