1 // @(#)root/base:$Id$ 2 // Author: Valeriy Onuchin & Fons Rademakers 15/10/2000 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 #ifndef ROOT_TQClass 13 #define ROOT_TQClass 14 15 ////////////////////////////////////////////////////////////////////////// 16 // // 17 // This is part of the ROOT implementation of the Qt object // 18 // communication mechanism (see also // 19 // http://www.troll.no/qt/metaobjects.html) // 20 // // 21 // See TQObject for details. // 22 // // 23 // This implementation is provided by // 24 // Valeriy Onuchin (onuchin@sirius.ihep.su). // 25 // // 26 ////////////////////////////////////////////////////////////////////////// 27 28 #ifndef ROOT_TQObject 29 #include "TQObject.h" 30 #endif 31 #ifndef ROOT_TClass 32 #include "TClass.h" 33 #endif 34 35 // This class makes it possible to have a single connection from 36 // all objects of the same class 37 class TQClass : public TQObject, public TClass { 38 39 private: 40 TQClass(const TClass&) : TQObject(), TClass() {}; 41 TQClass& operator=(const TQClass&) { return *this; } 42 43 friend class TQObject; 44 45 public: 46 TQClass(const char *name, Version_t cversion, 47 const type_info &info, TVirtualIsAProxy *isa, 48 ShowMembersFunc_t showmembers, 49 const char *dfil = 0, const char *ifil = 0, 50 Int_t dl = 0, Int_t il = 0) : 51 TQObject(), 52 TClass(name, cversion, info,isa,showmembers, dfil, ifil, dl, il) { } 53 54 virtual ~TQClass() { Disconnect(); } 55 56 ClassDef(TQClass,0) // Class with connections 57 }; 58 59 60 //---- Class Initialization Behavior -------------------------------------- 61 // 62 // This Class and Function are automatically used for classes inheriting from 63 // TQObject. They make it possible to have a single connection from all 64 // objects of the same class. 65 namespace ROOT { 66 class TDefaultInitBehavior; 67 class TQObjectInitBehavior : public TDefaultInitBehavior { 68 public: 69 virtual TClass *CreateClass(const char *cname, Version_t id, 70 const type_info &info, TVirtualIsAProxy *isa, 71 ShowMembersFunc_t show, 72 const char *dfil, const char *ifil, 73 Int_t dl, Int_t il) const 74 { 75 return new TQClass(cname, id, info, isa, show, dfil, ifil,dl, il); 76 } 77 }; 78 79 inline const TQObjectInitBehavior *DefineBehavior(TQObject*, TQObject*) 80 { 81 TQObjectInitBehavior *behave = new TQObjectInitBehavior; 82 return behave; 83 } 84 } 85 86 #endif 87 88