TRootEmbeddedCanvas.h

Go to the documentation of this file.
00001 // @(#)root/gui:$Id: TRootEmbeddedCanvas.h 28464 2009-05-06 12:37:21Z brun $
00002 // Author: Fons Rademakers   15/07/98
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
00006  * All rights reserved.                                                  *
00007  *                                                                       *
00008  * For the licensing terms see $ROOTSYS/LICENSE.                         *
00009  * For the list of contributors see $ROOTSYS/README/CREDITS.             *
00010  *************************************************************************/
00011 
00012 
00013 #ifndef ROOT_TRootEmbeddedCanvas
00014 #define ROOT_TRootEmbeddedCanvas
00015 
00016 //////////////////////////////////////////////////////////////////////////
00017 //                                                                      //
00018 // TRootEmbeddedCanvas                                                  //
00019 //                                                                      //
00020 // This class creates a TGCanvas in which a TCanvas is created. Use     //
00021 // GetCanvas() to get a pointer to the TCanvas.                         //
00022 //                                                                      //
00023 //////////////////////////////////////////////////////////////////////////
00024 
00025 #ifndef ROOT_TGCanvas
00026 #include "TGCanvas.h"
00027 #endif
00028 
00029 
00030 class TCanvas;
00031 class TRootEmbeddedContainer;
00032 class TDNDData;
00033 
00034 class TRootEmbeddedCanvas : public TGCanvas {
00035 
00036 friend class TRootEmbeddedContainer;
00037 
00038 protected:
00039    Int_t                   fCWinId;           // window id used by embedded TCanvas
00040    TRootEmbeddedContainer *fCanvasContainer;  // container in canvas widget
00041    TCanvas                *fCanvas;           // pointer to TCanvas
00042    Bool_t                  fAutoFit;          // canvas container keeps same size as canvas
00043    Int_t                   fButton;           // currently pressed button
00044    Atom_t                 *fDNDTypeList;      // handles DND types
00045    
00046    virtual Bool_t HandleContainerButton(Event_t *ev);
00047    virtual Bool_t HandleContainerDoubleClick(Event_t *ev);
00048    virtual Bool_t HandleContainerConfigure(Event_t *ev);
00049    virtual Bool_t HandleContainerKey(Event_t *ev);
00050    virtual Bool_t HandleContainerMotion(Event_t *ev);
00051    virtual Bool_t HandleContainerExpose(Event_t *ev);
00052    virtual Bool_t HandleContainerCrossing(Event_t *ev);
00053 
00054 private:
00055    TRootEmbeddedCanvas(const TRootEmbeddedCanvas&);              // not implemented
00056    TRootEmbeddedCanvas& operator=(const TRootEmbeddedCanvas&);   // not implemented
00057 
00058 public:
00059    TRootEmbeddedCanvas(const char *name = 0, const TGWindow *p = 0, UInt_t w = 10,
00060             UInt_t h = 10, UInt_t options = kSunkenFrame | kDoubleBorder,
00061             Pixel_t back = GetDefaultFrameBackground());
00062    virtual ~TRootEmbeddedCanvas();
00063 
00064    void       AdoptCanvas(TCanvas *c);
00065    TCanvas   *GetCanvas() const { return fCanvas; }
00066    Int_t      GetCanvasWindowId() const { return fCWinId; }
00067    Bool_t     GetAutoFit() const { return fAutoFit; }
00068    void       SetAutoFit(Bool_t fit = kTRUE) { fAutoFit = fit; }
00069    virtual void SavePrimitive(ostream &out, Option_t *option = "");
00070 
00071    virtual Bool_t HandleDNDDrop(TDNDData *data);
00072    virtual Atom_t HandleDNDPosition(Int_t /*x*/, Int_t /*y*/, Atom_t action,
00073                                     Int_t /*xroot*/, Int_t /*yroot*/);
00074    virtual Atom_t HandleDNDEnter(Atom_t * typelist);
00075    virtual Bool_t HandleDNDLeave();
00076 
00077    ClassDef(TRootEmbeddedCanvas,0)  //A ROOT TCanvas that can be embedded in a TGFrame
00078 };
00079 
00080 #endif

Generated on Tue Jul 5 14:20:12 2011 for ROOT_528-00b_version by  doxygen 1.5.1