Version: 0.6.0
chartpanel.h
1 // Name: chartpanel.h
3 // Purpose: wxChartPanel declaration
4 // Author: Moskvichev Andrey V.
5 // Created: 2008/11/07
6 // Copyright: (c) 2008-2010 Moskvichev Andrey V.
7 // Licence: wxWidgets licence
9 
10 #ifndef CHARTPANEL_H_
11 #define CHARTPANEL_H_
12 
13 #include <wx/wxfreechartdefs.h>
14 #include <wx/chart.h>
15 
16 class wxChartPanel;
17 
23 class WXDLLIMPEXP_FREECHART ChartPanelObserver
24 {
25 public:
26  virtual void ChartEnterWindow();
27 
28  virtual void ChartMouseDown(wxPoint &pt, int key);
29  virtual void ChartMouseUp(wxPoint &pt, int key);
30 
31  virtual void ChartMouseMove(wxPoint &pt);
32  virtual void ChartMouseDrag(wxPoint &pt);
33 
34  virtual void ChartMouseWheel(int rotation);
35 };
36 
40 class WXDLLIMPEXP_FREECHART ChartPanelMode : public ChartPanelObserver
41 {
42 public:
43  virtual void Init(wxChartPanel *chartPanel) = 0;
44 };
45 
46 
51 class WXDLLIMPEXP_FREECHART wxChartPanel : public wxScrolledWindow, public ChartObserver,
52  public Observable<ChartPanelObserver>
53 {
54 public:
55  wxChartPanel(wxWindow *parent, wxWindowID = wxID_ANY, Chart *chart = NULL,
56  const wxPoint &pos = wxDefaultPosition, const wxSize &size = wxDefaultSize);
57  virtual ~wxChartPanel();
58 
63  void SetChart(Chart *chart);
64 
69  Chart *GetChart();
70 
75  void SetMode(ChartPanelMode *mode);
76 
84  void SetAntialias(bool antialias);
85 
90  bool GetAntialias();
91 
97  wxBitmap CopyBackbuffer();
98 
99  //
100  // ChartObserver
101  //
102  virtual void ChartChanged(Chart *chart);
103 
104  virtual void ChartScrollsChanged(Chart *chart);
105 
106 private:
107  void ResizeBackBitmap(wxSize size);
108  void RedrawBackBitmap();
109  void RecalcScrollbars();
110 
111  //
112  // Event handlers
113  //
114  void OnPaint(wxPaintEvent &ev);
115  void OnSize(wxSizeEvent &ev);
116  void OnScrollWin(wxScrollWinEvent &ev);
117  void OnMouseEvents(wxMouseEvent &ev);
118 
119  void ScrollAxis(Axis *axis, int d);
120 
121  Chart *m_chart;
122 
123  wxBitmap m_backBitmap;
124 
125  bool m_antialias;
126 
127  ChartPanelMode *m_mode;
128 
129  DECLARE_EVENT_TABLE()
130 };
131 
132 
133 #endif /*CHARTPANEL_H_*/
Definition: chartpanel.h:51
Definition: chartpanel.h:40
virtual void ChartChanged(Chart *chart)=0
Definition: axis.h:62
virtual void ChartScrollsChanged(Chart *chart)=0
Definition: chart.h:31
Definition: chartpanel.h:23
Definition: observable.h:14
Definition: chart.h:55