00001
00002
00003
00004
00005
00006
00007
00009
00010 #ifndef PLOT_H_
00011 #define PLOT_H_
00012
00013 #include <wx/wxfreechartdefs.h>
00014 #include <wx/observable.h>
00015
00016 #include <wx/areadraw.h>
00017
00018 class WXDLLIMPEXP_FREECHART Plot;
00019
00023 class WXDLLIMPEXP_FREECHART PlotObserver
00024 {
00025 public:
00026 PlotObserver();
00027
00028 virtual ~PlotObserver();
00029
00034 virtual void PlotNeedRedraw(Plot *_plot) = 0;
00035 };
00036
00041 class WXDLLIMPEXP_FREECHART Plot : public Observable<PlotObserver>
00042 {
00043 public:
00044 Plot();
00045 virtual ~Plot();
00046
00052 virtual void Draw(wxDC &dc, wxRect rc);
00053
00060 virtual void DrawNoDataMessage(wxDC &dc, wxRect rc);
00061
00066 void SetBackground(AreaDraw *background)
00067 {
00068 wxREPLACE(m_background, background);
00069 FirePlotNeedRedraw();
00070 }
00071
00076 void SetTextNoData(const wxString &textNoData)
00077 {
00078 m_textNoData = textNoData;
00079 FirePlotNeedRedraw();
00080 }
00081
00082 protected:
00088 virtual bool HasData() = 0;
00089
00096 virtual void DrawData(wxDC &dc, wxRect rc) = 0;
00097
00098 FIRE_WITH_THIS(PlotNeedRedraw);
00099
00100 private:
00101 wxFont m_textNoDataFont;
00102 wxString m_textNoData;
00103
00104 AreaDraw *m_background;
00105 };
00106
00107 #endif