00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef ROOT_TRootEmbeddedCanvas
00014 #define ROOT_TRootEmbeddedCanvas
00015
00016
00017
00018
00019
00020
00021
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;
00040 TRootEmbeddedContainer *fCanvasContainer;
00041 TCanvas *fCanvas;
00042 Bool_t fAutoFit;
00043 Int_t fButton;
00044 Atom_t *fDNDTypeList;
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&);
00056 TRootEmbeddedCanvas& operator=(const TRootEmbeddedCanvas&);
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 , Int_t , Atom_t action,
00073 Int_t , Int_t );
00074 virtual Atom_t HandleDNDEnter(Atom_t * typelist);
00075 virtual Bool_t HandleDNDLeave();
00076
00077 ClassDef(TRootEmbeddedCanvas,0)
00078 };
00079
00080 #endif