// @(#)root/base:$Id: TVirtualPadEditor.h,v 1.0 2003/11/25
// Author: Rene Brun   25/11/03

/*************************************************************************
 * 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_TVirtualPadEditor
#define ROOT_TVirtualPadEditor


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TVirtualPadEditor                                                    //
//                                                                      //
// Abstract base class used by ROOT graphics editor                     //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TString
#include "TString.h"
#endif

class TCanvas;

class TVirtualPadEditor {

protected:
   static TVirtualPadEditor *fgPadEditor;    // singleton editor dialog
   static TString            fgEditorName;   // name of the default pad editor "Ged"

public:
   TVirtualPadEditor();
   virtual ~TVirtualPadEditor();
   virtual Bool_t   IsGlobal() const = 0;

   // methods related to the old editor interface
   virtual void     DrawLine(Double_t, Double_t , Double_t , Double_t ) { }
   virtual void     DrawLineNDC(Double_t , Double_t , Double_t , Double_t ) { }
   virtual void     DrawText(Double_t , Double_t , const char *) { }
   virtual void     DrawTextNDC(Double_t , Double_t , const char *) { }
   virtual void     FillAttributes(Int_t , Int_t ) { }
   virtual void     LineAttributes(Int_t , Int_t , Int_t ) { }
   virtual void     MarkerAttributes(Int_t , Int_t , Float_t ) { }
   virtual void     TextAttributes(Int_t ,Float_t ,Int_t ,Int_t ,Float_t ) { }

   virtual void     Build() { }
   virtual void     Show() { }
   virtual void     Hide() { }
   virtual void     DeleteEditors() { }
   virtual void     SetGlobal(Bool_t) { }
   virtual TCanvas* GetCanvas() const = 0;

   // methods related to the new editor interface

   //static methods for both interfaces
   static const char        *GetEditorName();
   static TVirtualPadEditor *GetPadEditor(Bool_t load = kTRUE);
   static TVirtualPadEditor *LoadEditor();
   static void      HideEditor();
   static void      ShowEditor();
   static void      SetPadEditorName(const char *name);
   static void      Terminate();
   static void      UpdateFillAttributes(Int_t col, Int_t sty);
   static void      UpdateLineAttributes(Int_t col, Int_t sty, Int_t width);
   static void      UpdateMarkerAttributes(Int_t col, Int_t sty, Float_t msiz);
   static void      UpdateTextAttributes(Int_t align,Float_t angle,Int_t col,Int_t font,Float_t tsize);

   ClassDef(TVirtualPadEditor,0)  //Abstract interface for graphics pad editor
};

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