// @(#)root/hist:$Id$
// Author: Olivier Couet 20/05/08

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/
#ifndef ROOT_TVirtualGraphPainter
#define ROOT_TVirtualGraphPainter

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TVirtualGraphPainter                                                 //
//                                                                      //
// Abstract base class for Graph painters                               //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TObject
#include "TObject.h"
#endif

class TGraph;
class TF1;

class TVirtualGraphPainter : public TObject {

private:
   static TVirtualGraphPainter   *fgPainter; //Pointer to class painter

public:
   TVirtualGraphPainter() { }
   virtual ~TVirtualGraphPainter() { }

   virtual Int_t DistancetoPrimitiveHelper(TGraph *theGraph, Int_t px, Int_t py) = 0;
   virtual void  DrawPanelHelper(TGraph *theGraph) = 0;
   virtual void  ExecuteEventHelper(TGraph *theGraph, Int_t event, Int_t px, Int_t py) = 0;
   virtual char *GetObjectInfoHelper(TGraph *theGraph, Int_t px, Int_t py) const = 0;
   virtual void  PaintHelper(TGraph *theGraph, Option_t *option) = 0;
   virtual void  PaintGraph(TGraph *theGraph, Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt) = 0;
   virtual void  PaintGrapHist(TGraph *theGraph, Int_t npoints, const Double_t *x, const Double_t *y, Option_t *chopt) = 0;
   virtual void  PaintStats(TGraph *theGraph, TF1 *fit) = 0;

   static TVirtualGraphPainter *GetPainter();
   static void                  SetPainter(TVirtualGraphPainter *painter);

   ClassDef(TVirtualGraphPainter,0)  //Abstract interface for histogram painters
};

#endif
 TVirtualGraphPainter.h:1
 TVirtualGraphPainter.h:2
 TVirtualGraphPainter.h:3
 TVirtualGraphPainter.h:4
 TVirtualGraphPainter.h:5
 TVirtualGraphPainter.h:6
 TVirtualGraphPainter.h:7
 TVirtualGraphPainter.h:8
 TVirtualGraphPainter.h:9
 TVirtualGraphPainter.h:10
 TVirtualGraphPainter.h:11
 TVirtualGraphPainter.h:12
 TVirtualGraphPainter.h:13
 TVirtualGraphPainter.h:14
 TVirtualGraphPainter.h:15
 TVirtualGraphPainter.h:16
 TVirtualGraphPainter.h:17
 TVirtualGraphPainter.h:18
 TVirtualGraphPainter.h:19
 TVirtualGraphPainter.h:20
 TVirtualGraphPainter.h:21
 TVirtualGraphPainter.h:22
 TVirtualGraphPainter.h:23
 TVirtualGraphPainter.h:24
 TVirtualGraphPainter.h:25
 TVirtualGraphPainter.h:26
 TVirtualGraphPainter.h:27
 TVirtualGraphPainter.h:28
 TVirtualGraphPainter.h:29
 TVirtualGraphPainter.h:30
 TVirtualGraphPainter.h:31
 TVirtualGraphPainter.h:32
 TVirtualGraphPainter.h:33
 TVirtualGraphPainter.h:34
 TVirtualGraphPainter.h:35
 TVirtualGraphPainter.h:36
 TVirtualGraphPainter.h:37
 TVirtualGraphPainter.h:38
 TVirtualGraphPainter.h:39
 TVirtualGraphPainter.h:40
 TVirtualGraphPainter.h:41
 TVirtualGraphPainter.h:42
 TVirtualGraphPainter.h:43
 TVirtualGraphPainter.h:44
 TVirtualGraphPainter.h:45
 TVirtualGraphPainter.h:46
 TVirtualGraphPainter.h:47
 TVirtualGraphPainter.h:48
 TVirtualGraphPainter.h:49
 TVirtualGraphPainter.h:50
 TVirtualGraphPainter.h:51
 TVirtualGraphPainter.h:52
 TVirtualGraphPainter.h:53