00001
00002
00003
00004
00005
00006
00007
00009
00010 #ifndef OHLCDATASET_H_
00011 #define OHLCDATASET_H_
00012
00013 #include <wx/xy/xydataset.h>
00014 #include <wx/ohlc/ohlcrenderer.h>
00015
00016 struct OHLCItem
00017 {
00018 double open;
00019 double high;
00020 double low;
00021 double close;
00022
00023 int volume;
00024
00025 time_t date;
00026 };
00027
00031 class WXDLLIMPEXP_FREECHART OHLCDataset : public Dataset, public DateTimeDataset
00032 {
00033 DECLARE_CLASS(OHLCDataset)
00034 public:
00035 OHLCDataset();
00036 virtual ~OHLCDataset();
00037
00038 OHLCRenderer *GetRenderer()
00039 {
00040 return (OHLCRenderer *) m_renderer;
00041 }
00042
00047 void SetSerieName(const wxString &serieName)
00048 {
00049 m_serieName = serieName;
00050 DatasetChanged();
00051 }
00052
00057 virtual OHLCItem *GetItem(size_t index) = 0;
00058
00063 virtual size_t GetCount() = 0;
00064
00065
00066
00067
00068 virtual double GetMinValue(bool verticalAxis);
00069
00070 virtual double GetMaxValue(bool verticalAxis);
00071
00072 virtual size_t GetSerieCount();
00073
00074 virtual wxString GetSerieName(size_t serie);
00075
00076 virtual size_t GetCount(size_t serie);
00077
00078 virtual DateTimeDataset *AsDateTimeDataset();
00079
00080
00081
00082
00083 virtual time_t GetDate(size_t index);
00084
00085 protected:
00086 virtual bool AcceptRenderer(Renderer *r);
00087
00088 wxString m_serieName;
00089 };
00090
00091 #endif