/////////////////////////////////////////////////////////////////////////////////////////
//
// Please refer to "COPYRIGHT.md" for the relevant copyright statement of this software.
//
/////////////////////////////////////////////////////////////////////////////////////////
//
#ifndef GCPLPLOTREACTOR_H
#define GCPLPLOTREACTOR_H

#include "GdGChar.h"
#include "GcPl.h"
#include "GcPlObject.h"

class GcPlPlotInfo;
class GcPlPlotPageInfo;
class GcPlPlotProgress;

class GcPlPlotReactor : public GcRxObject
{
public:
  enum PlotType
  {
    kPlot,
    kPreview,
    kBackgroundPackaging,
    kBackgroundPlot
  };

  virtual void beginPlot(GcPlPlotProgress*, PlotType)
  {
  }
  virtual void beginDocument(GcPlPlotInfo&, const GCHAR*, Gsoft::Int32, bool, const GCHAR*)
  {
  }

  virtual void beginPage(GcPlPlotPageInfo&, GcPlPlotInfo&, bool)
  {
  }
  virtual void endPage(GcPlPlotProgress::SheetCancelStatus)
  {
  }

  virtual void endDocument(GcPlPlotProgress::PlotCancelStatus)
  {
  }
  virtual void endPlot(GcPlPlotProgress::PlotCancelStatus)
  {
  }

  virtual void plotCancelled()
  {
  }
  virtual void pageCancelled()
  {
  }

  GCPL_PORT ~GcPlPlotReactor();

protected:
  GCPL_PORT GcPlPlotReactor();
};

#endif