ROOT logo
// @(#)root/base:$Id: TCanvasImp.h 29403 2009-07-09 07:17:16Z brun $
// Author: Fons Rademakers   16/11/95

/*************************************************************************
 * 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_TCanvasImp
#define ROOT_TCanvasImp

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TCanvasImp                                                           //
//                                                                      //
// ABC describing GUI independent main window (with menubar, scrollbars //
// and a drawing area).                                                 //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_Rtypes
#include "Rtypes.h"
#endif

class TCanvas;


class TCanvasImp {
friend class TCanvas;

protected:
   TCanvas  *fCanvas;   //TCanvas associated with this implementation

   TCanvasImp(const TCanvasImp& ci) 
     : fCanvas(ci.fCanvas) { }
   TCanvasImp& operator=(const TCanvasImp& ci)
     {if(this!=&ci) fCanvas=ci.fCanvas; return *this;}

   virtual void   Lock() { }
   virtual void   Unlock() { }
   virtual Bool_t IsLocked() { return kFALSE; }

public:
   TCanvasImp(TCanvas *c=0) : fCanvas(c) { }
   TCanvasImp(TCanvas *c, const char *name, UInt_t width, UInt_t height);
   TCanvasImp(TCanvas *c, const char *name, Int_t x, Int_t y, UInt_t width, UInt_t height);
   virtual ~TCanvasImp() { }

   TCanvas       *Canvas() const { return fCanvas; }
   virtual void   Close() { }
   virtual void   ForceUpdate() { }
   virtual UInt_t GetWindowGeometry(Int_t &x, Int_t &y, UInt_t &w, UInt_t &h);
   virtual void   Iconify() { }
   virtual Int_t  InitWindow() { return 0; }
   virtual void   SetStatusText(const char *text = 0, Int_t partidx = 0);
   virtual void   SetWindowPosition(Int_t x, Int_t y);
   virtual void   SetWindowSize(UInt_t w, UInt_t h);
   virtual void   SetWindowTitle(const char *newTitle);
   virtual void   SetCanvasSize(UInt_t w, UInt_t h);
   virtual void   Show() { }
   virtual void   ShowMenuBar(Bool_t show = kTRUE);
   virtual void   ShowStatusBar(Bool_t show = kTRUE);
   virtual void   RaiseWindow();
   virtual void   ReallyDelete();

   virtual void   ShowEditor(Bool_t show = kTRUE);
   virtual void   ShowToolBar(Bool_t show = kTRUE);
   virtual void   ShowToolTips(Bool_t show = kTRUE);

   virtual Bool_t HasEditor() const { return kFALSE; }
   virtual Bool_t HasMenuBar() const { return kFALSE; }
   virtual Bool_t HasStatusBar() const { return kFALSE; }
   virtual Bool_t HasToolBar() const { return kFALSE; }
   virtual Bool_t HasToolTips() const { return kFALSE; }

   ClassDef(TCanvasImp,0)  //ABC describing main window protocol
};

inline TCanvasImp::TCanvasImp(TCanvas *c, const char *, UInt_t, UInt_t) : fCanvas(c) { }
inline TCanvasImp::TCanvasImp(TCanvas *c, const char *, Int_t, Int_t, UInt_t, UInt_t) : fCanvas(c) { }
inline UInt_t TCanvasImp::GetWindowGeometry(Int_t &x, Int_t &y, UInt_t &w, UInt_t &h)
               { x = y = 0; w = h = 0; return 0;}
inline void TCanvasImp::SetStatusText(const char *, Int_t) { }
inline void TCanvasImp::SetWindowPosition(Int_t, Int_t) { }
inline void TCanvasImp::SetWindowSize(UInt_t, UInt_t) { }
inline void TCanvasImp::SetWindowTitle(const char *) { }
inline void TCanvasImp::SetCanvasSize(UInt_t, UInt_t) { }
inline void TCanvasImp::ShowMenuBar(Bool_t) { }
inline void TCanvasImp::ShowStatusBar(Bool_t) { }
inline void TCanvasImp::RaiseWindow() { }
inline void TCanvasImp::ReallyDelete() { }

inline void TCanvasImp::ShowEditor(Bool_t) { }
inline void TCanvasImp::ShowToolBar(Bool_t) { }
inline void TCanvasImp::ShowToolTips(Bool_t) { }

#endif
 TCanvasImp.h:1
 TCanvasImp.h:2
 TCanvasImp.h:3
 TCanvasImp.h:4
 TCanvasImp.h:5
 TCanvasImp.h:6
 TCanvasImp.h:7
 TCanvasImp.h:8
 TCanvasImp.h:9
 TCanvasImp.h:10
 TCanvasImp.h:11
 TCanvasImp.h:12
 TCanvasImp.h:13
 TCanvasImp.h:14
 TCanvasImp.h:15
 TCanvasImp.h:16
 TCanvasImp.h:17
 TCanvasImp.h:18
 TCanvasImp.h:19
 TCanvasImp.h:20
 TCanvasImp.h:21
 TCanvasImp.h:22
 TCanvasImp.h:23
 TCanvasImp.h:24
 TCanvasImp.h:25
 TCanvasImp.h:26
 TCanvasImp.h:27
 TCanvasImp.h:28
 TCanvasImp.h:29
 TCanvasImp.h:30
 TCanvasImp.h:31
 TCanvasImp.h:32
 TCanvasImp.h:33
 TCanvasImp.h:34
 TCanvasImp.h:35
 TCanvasImp.h:36
 TCanvasImp.h:37
 TCanvasImp.h:38
 TCanvasImp.h:39
 TCanvasImp.h:40
 TCanvasImp.h:41
 TCanvasImp.h:42
 TCanvasImp.h:43
 TCanvasImp.h:44
 TCanvasImp.h:45
 TCanvasImp.h:46
 TCanvasImp.h:47
 TCanvasImp.h:48
 TCanvasImp.h:49
 TCanvasImp.h:50
 TCanvasImp.h:51
 TCanvasImp.h:52
 TCanvasImp.h:53
 TCanvasImp.h:54
 TCanvasImp.h:55
 TCanvasImp.h:56
 TCanvasImp.h:57
 TCanvasImp.h:58
 TCanvasImp.h:59
 TCanvasImp.h:60
 TCanvasImp.h:61
 TCanvasImp.h:62
 TCanvasImp.h:63
 TCanvasImp.h:64
 TCanvasImp.h:65
 TCanvasImp.h:66
 TCanvasImp.h:67
 TCanvasImp.h:68
 TCanvasImp.h:69
 TCanvasImp.h:70
 TCanvasImp.h:71
 TCanvasImp.h:72
 TCanvasImp.h:73
 TCanvasImp.h:74
 TCanvasImp.h:75
 TCanvasImp.h:76
 TCanvasImp.h:77
 TCanvasImp.h:78
 TCanvasImp.h:79
 TCanvasImp.h:80
 TCanvasImp.h:81
 TCanvasImp.h:82
 TCanvasImp.h:83
 TCanvasImp.h:84
 TCanvasImp.h:85
 TCanvasImp.h:86
 TCanvasImp.h:87
 TCanvasImp.h:88
 TCanvasImp.h:89
 TCanvasImp.h:90
 TCanvasImp.h:91
 TCanvasImp.h:92
 TCanvasImp.h:93
 TCanvasImp.h:94
 TCanvasImp.h:95
 TCanvasImp.h:96
 TCanvasImp.h:97
 TCanvasImp.h:98
 TCanvasImp.h:99
 TCanvasImp.h:100
 TCanvasImp.h:101