// @(#)root/hist:$Id$
// Author: Rene Brun   30/08/99

/*************************************************************************
 * 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_TVirtualHistPainter
#define ROOT_TVirtualHistPainter


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TVirtualHistPainter                                                  //
//                                                                      //
// Abstract base class for Histogram painters                           //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

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

class TClass;
class TH1;
class TF1;
class TList;

class TVirtualHistPainter : public TObject {

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

public:
   TVirtualHistPainter() { }
   virtual ~TVirtualHistPainter() { }
   virtual Int_t      DistancetoPrimitive(Int_t px, Int_t py) = 0;
   virtual void       DrawPanel() = 0;
   virtual void       ExecuteEvent(Int_t event, Int_t px, Int_t py) = 0;
   virtual TList     *GetContourList(Double_t contour) const = 0;
   virtual char      *GetObjectInfo(Int_t px, Int_t py) const = 0;
   virtual TList     *GetStack() const = 0;
   virtual Bool_t     IsInside(Int_t x, Int_t y) = 0;
   virtual Bool_t     IsInside(Double_t x, Double_t y) = 0;
   virtual void       Paint(Option_t *option="") = 0;
   virtual void       PaintStat(Int_t dostat, TF1 *fit) = 0;
   virtual void       ProcessMessage(const char *mess, const TObject *obj) = 0;
   virtual void       SetHistogram(TH1 *h) = 0;
   virtual void       SetStack(TList *stack) = 0;
   virtual Int_t      MakeCuts(char *cutsopt) = 0;
   virtual void       SetShowProjection(const char *option, Int_t nbins) = 0;

   static TVirtualHistPainter *HistPainter(TH1 *obj);
   static void                 SetPainter(const char *painter);

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

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