TVirtualDragManager.h

Go to the documentation of this file.
00001 // $Id: TVirtualDragManager.h,v 1.1 2004/09/08 16:03:57 brun Exp $
00002 // Author: Valeriy Onuchin   12/08/04
00003 
00004 /*************************************************************************
00005  * Copyright (C) 1995-2004, 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 #ifndef ROOT_TVirtualDragManager
00013 #define ROOT_TVirtualDragManager
00014 
00015 
00016 //////////////////////////////////////////////////////////////////////////
00017 //                                                                      //
00018 // TVirtualDragManager                                                  //
00019 //                                                                      //
00020 //////////////////////////////////////////////////////////////////////////
00021 
00022 #ifndef ROOT_TGFrame
00023 #include "TGFrame.h"
00024 #endif
00025 
00026 enum EDragType { kDragNone, kDragMove, kDragCopy,
00027                  kDragLink, kDragLasso, kDragResize };
00028 
00029 
00030 class TVirtualDragManager  {
00031 
00032 protected:
00033    Bool_t         fMoveWaiting;  // kTRUE if source is clicked but not moved
00034    Bool_t         fDragging;     // in dragging mode?
00035    Bool_t         fDropping;     // drop is in progress
00036    Bool_t         fPasting;      // paste action is in progress
00037    EDragType      fDragType;     // dragging type
00038    TGFrame       *fSource;       // frame being dragged
00039    TGFrame       *fFrameUnder;   // frame under drag
00040    TGFrame       *fTarget;       // drop target
00041    TGFrame       *fPasteFrame;   //
00042 
00043 protected:
00044    virtual void  Init();
00045 
00046 public:
00047    TVirtualDragManager();
00048    virtual          ~TVirtualDragManager() {}
00049 
00050    EDragType         GetDragType() const { return fDragType; }
00051    Bool_t            IsMoveWaiting() const { return fMoveWaiting; }
00052    Bool_t            IsDragging() const { return fDragging; }
00053    Bool_t            IsDropping() const { return fDropping; }
00054    Bool_t            IsPasting() const { return fPasting; }
00055    TGFrame          *GetTarget() const { return fTarget; }
00056    TGFrame          *GetSource() const { return fSource; }
00057    TGFrame          *GetFrameUnder() const { return fFrameUnder; }
00058    TGFrame          *GetPasteFrame() const { return fPasteFrame; }
00059 
00060    virtual void      SetTarget(TGFrame *f) { fTarget = f; }
00061    virtual void      SetSource(TGFrame *f) { fSource = f; }
00062    virtual void      SetPasteFrame(TGFrame *f) { fPasteFrame = f; }
00063 
00064    virtual Bool_t    StartDrag(TGFrame * = 0, Int_t = 0, Int_t = 0) { return kFALSE; }
00065    virtual Bool_t    EndDrag() { return kFALSE; }
00066    virtual Bool_t    Drop() { return kFALSE; }
00067    virtual Bool_t    Cancel(Bool_t = kTRUE) { return kFALSE; }
00068 
00069    virtual Bool_t    HandleEvent(Event_t *) { return kFALSE; }
00070    virtual Bool_t    HandleTimerEvent(Event_t *, TTimer *) { return kFALSE; }
00071    virtual Bool_t    IgnoreEvent(Event_t *) { return kTRUE; }
00072    virtual void      SetEditable(Bool_t) {}
00073 
00074    virtual Int_t     GetStrartDragX() const { return 0; }
00075    virtual Int_t     GetStrartDragY() const { return 0; }
00076    virtual Int_t     GetEndDragX() const { return 0; }
00077    virtual Int_t     GetEndDragY() const { return 0; }
00078 
00079    static  TVirtualDragManager  *Instance();
00080 
00081    ClassDef(TVirtualDragManager,0)  // drag and drop manager
00082 };
00083 
00084 R__EXTERN TVirtualDragManager *gDragManager; // global drag manager
00085 
00086 #endif

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