00001 // $Id: TVirtualDragManager.cxx,v 1.3 2004/11/23 00:07:22 rdm Exp $ 00002 // Author: Valeriy Onuchin 02/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 ////////////////////////////////////////////////////////////////////////// 00013 // // 00014 // TVirtualDragManager // 00015 // // 00016 ////////////////////////////////////////////////////////////////////////// 00017 00018 #include "TVirtualDragManager.h" 00019 #include "TROOT.h" 00020 #include "TPluginManager.h" 00021 00022 00023 //______________________________________________________________________________ 00024 // TVirtualDragManager 00025 // 00026 // Virtual drag and drop manager used for the GUI builder. 00027 00028 ClassImp(TVirtualDragManager) 00029 00030 00031 TVirtualDragManager *gDragManager = 0; 00032 00033 //______________________________________________________________________________ 00034 TVirtualDragManager::TVirtualDragManager() 00035 { 00036 // Constructor. 00037 00038 Init(); 00039 } 00040 00041 //______________________________________________________________________________ 00042 TVirtualDragManager *TVirtualDragManager::Instance() 00043 { 00044 // Load plugin and create drag manager object. 00045 00046 if (gDragManager) return gDragManager; 00047 00048 static Bool_t loaded = kFALSE; 00049 static TPluginHandler *h = 0; 00050 00051 // load plugin 00052 if (!loaded) { 00053 h = gROOT->GetPluginManager()->FindHandler("TVirtualDragManager"); 00054 if (h) { 00055 if (h->LoadPlugin() == -1) return 0; 00056 loaded = kTRUE; 00057 } 00058 } 00059 if (loaded) gDragManager = (TVirtualDragManager*)h->ExecPlugin(0); 00060 00061 return gDragManager; 00062 } 00063 00064 //______________________________________________________________________________ 00065 void TVirtualDragManager::Init() 00066 { 00067 // Initialization. 00068 00069 fDragging = kFALSE; 00070 fMoveWaiting = kFALSE; 00071 fDropping = kFALSE; 00072 fPasting = kFALSE; 00073 fTarget = 0; 00074 fSource = 0; 00075 fFrameUnder = 0; 00076 fPasteFrame = 0; 00077 fDragType = kDragNone; 00078 }