Logo ROOT   6.30.04
Reference Guide
 All Namespaces Files Pages
TRootEmbeddedCanvas.h
Go to the documentation of this file.
1 // @(#)root/gui:$Id$
2 // Author: Fons Rademakers 15/07/98
3 
4 /*************************************************************************
5  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers. *
6  * All rights reserved. *
7  * *
8  * For the licensing terms see $ROOTSYS/LICENSE. *
9  * For the list of contributors see $ROOTSYS/README/CREDITS. *
10  *************************************************************************/
11 
12 
13 #ifndef ROOT_TRootEmbeddedCanvas
14 #define ROOT_TRootEmbeddedCanvas
15 
16 //////////////////////////////////////////////////////////////////////////
17 // //
18 // TRootEmbeddedCanvas //
19 // //
20 // This class creates a TGCanvas in which a TCanvas is created. Use //
21 // GetCanvas() to get a pointer to the TCanvas. //
22 // //
23 //////////////////////////////////////////////////////////////////////////
24 
25 #include "TGCanvas.h"
26 
27 
28 class TCanvas;
29 class TRootEmbeddedContainer;
30 class TDNDData;
31 
32 class TRootEmbeddedCanvas : public TGCanvas {
33 
34 friend class TRootEmbeddedContainer;
35 
36 protected:
37  Int_t fCWinId; // window id used by embedded TCanvas
38  TRootEmbeddedContainer *fCanvasContainer; // container in canvas widget
39  TCanvas *fCanvas; // pointer to TCanvas
40  Bool_t fAutoFit; // canvas container keeps same size as canvas
41  Int_t fButton; // currently pressed button
42  Atom_t *fDNDTypeList; // handles DND types
43 
44  virtual Bool_t HandleContainerButton(Event_t *ev);
45  virtual Bool_t HandleContainerDoubleClick(Event_t *ev);
46  virtual Bool_t HandleContainerConfigure(Event_t *ev);
47  virtual Bool_t HandleContainerKey(Event_t *ev);
48  virtual Bool_t HandleContainerMotion(Event_t *ev);
49  virtual Bool_t HandleContainerExpose(Event_t *ev);
50  virtual Bool_t HandleContainerCrossing(Event_t *ev);
51 
52 private:
53  TRootEmbeddedCanvas(const TRootEmbeddedCanvas&); // not implemented
54  TRootEmbeddedCanvas& operator=(const TRootEmbeddedCanvas&); // not implemented
55 
56 public:
57  TRootEmbeddedCanvas(const char *name = 0, const TGWindow *p = 0, UInt_t w = 10,
58  UInt_t h = 10, UInt_t options = kSunkenFrame | kDoubleBorder,
59  Pixel_t back = GetDefaultFrameBackground());
60  virtual ~TRootEmbeddedCanvas();
61 
62  void AdoptCanvas(TCanvas *c);
63  TCanvas *GetCanvas() const { return fCanvas; }
64  Int_t GetCanvasWindowId() const { return fCWinId; }
65  Bool_t GetAutoFit() const { return fAutoFit; }
66  void SetAutoFit(Bool_t fit = kTRUE) { fAutoFit = fit; }
67  virtual void SavePrimitive(std::ostream &out, Option_t *option = "");
68 
69  virtual Bool_t HandleDNDDrop(TDNDData *data);
70  virtual Atom_t HandleDNDPosition(Int_t /*x*/, Int_t /*y*/, Atom_t action,
71  Int_t /*xroot*/, Int_t /*yroot*/);
72  virtual Atom_t HandleDNDEnter(Atom_t * typelist);
73  virtual Bool_t HandleDNDLeave();
74 
75  ClassDef(TRootEmbeddedCanvas,0) //A ROOT TCanvas that can be embedded in a TGFrame
76 };
77 
78 #endif