#ifndef ROOT_TQObject
#define ROOT_TQObject
#ifndef ROOT_TString
#include "TString.h"
#endif
class TList;
class TObject;
class TQConnection;
class TClass;
class TQObject {
friend class TQConnection;
protected:
TList *fListOfSignals;
TList *fListOfConnections;
Bool_t fSignalsBlocked;
static Bool_t fgAllSignalsBlocked;
virtual void *GetSender() { return this; }
virtual const char *GetSenderClassName() const { return ""; }
static Bool_t ConnectToClass(TQObject *sender,
const char *signal,
TClass *receiver_class,
void *receiver,
const char *slot);
static Bool_t ConnectToClass(const char *sender_class,
const char *signal,
TClass *receiver_class,
void *receiver,
const char *slot);
static Int_t CheckConnectArgs(TQObject *sender,
TClass *sender_class, const char *signal,
TClass *receiver_class, const char *slot);
private:
TQObject(const TQObject& tqo);
TQObject& operator=(const TQObject& tqo);
public:
TQObject();
virtual ~TQObject();
TList *GetListOfClassSignals() const;
TList *GetListOfSignals() const { return fListOfSignals; }
TList *GetListOfConnections() const { return fListOfConnections; }
Bool_t AreSignalsBlocked() const { return fSignalsBlocked; }
Bool_t BlockSignals(Bool_t b)
{ Bool_t ret = fSignalsBlocked; fSignalsBlocked = b; return ret; }
void CollectClassSignalLists(TList& list, TClass* cls);
void EmitVA(const char *signal, Int_t nargs, ...);
void EmitVA(const char *signal, Int_t nargs, va_list va);
void Emit(const char *signal);
void Emit(const char *signal, Long_t *paramArr);
void Emit(const char *signal, const char *params);
void Emit(const char *signal, Double_t param);
void Emit(const char *signal, Long_t param);
void Emit(const char *signal, Long64_t param);
void Emit(const char *signal, Bool_t param)
{ Emit(signal, (Long_t)param); }
void Emit(const char *signal, Char_t param)
{ Emit(signal, (Long_t)param); }
void Emit(const char *signal, UChar_t param)
{ Emit(signal, (Long_t)param); }
void Emit(const char *signal, Short_t param)
{ Emit(signal, (Long_t)param); }
void Emit(const char *signal, UShort_t param)
{ Emit(signal, (Long_t)param); }
void Emit(const char *signal, Int_t param)
{ Emit(signal, (Long_t)param); }
void Emit(const char *signal, UInt_t param)
{ Emit(signal, (Long_t)param); }
void Emit(const char *signal, ULong_t param)
{ Emit(signal, (Long_t)param); }
void Emit(const char *signal, ULong64_t param)
{ Emit(signal, (Long64_t) param); }
void Emit(const char *signal, Float_t param)
{ Emit(signal, (Double_t)param); }
Bool_t Connect(const char *signal,
const char *receiver_class,
void *receiver,
const char *slot);
Bool_t Disconnect(const char *signal = 0,
void *receiver = 0,
const char *slot = 0);
virtual void HighPriority(const char *signal_name,
const char *slot_name = 0);
virtual void LowPriority(const char *signal_name,
const char *slot_name = 0);
virtual Bool_t HasConnection(const char *signal_name) const;
virtual Int_t NumberOfSignals() const;
virtual Int_t NumberOfConnections() const;
virtual void Connected(const char * ) { }
virtual void Disconnected(const char * ) { }
virtual void Destroyed()
{ Emit("Destroyed()"); }
virtual void ChangedBy(const char *method)
{ Emit("ChangedBy(char*)", method); }
virtual void Message(const char *msg)
{ Emit("Message(char*)", msg); }
static Bool_t Connect(TQObject *sender,
const char *signal,
const char *receiver_class,
void *receiver,
const char *slot);
static Bool_t Connect(const char *sender_class,
const char *signal,
const char *receiver_class,
void *receiver,
const char *slot);
static Bool_t Disconnect(TQObject *sender,
const char *signal = 0,
void *receiver = 0,
const char *slot = 0);
static Bool_t Disconnect(const char *class_name,
const char *signal,
void *receiver = 0,
const char *slot = 0);
static Bool_t AreAllSignalsBlocked();
static Bool_t BlockAllSignals(Bool_t b);
static void LoadRQ_OBJECT();
ClassDef(TQObject,1)
};
R__EXTERN void *gTQSender;
class TQObjSender : public TQObject {
protected:
void *fSender;
TString fSenderClass;
virtual void *GetSender() { return fSender; }
virtual const char *GetSenderClassName() const { return fSenderClass; }
private:
TQObjSender(const TQObjSender&);
TQObjSender& operator=(const TQObjSender&);
public:
TQObjSender() : TQObject(), fSender(0), fSenderClass() { }
virtual ~TQObjSender() { Disconnect(); }
virtual void SetSender(void *sender) { fSender = sender; }
void SetSenderClassName(const char *sclass = "") { fSenderClass = sclass; }
ClassDef(TQObjSender,0)
};
extern Bool_t ConnectCINT(TQObject *sender, const char *signal,
const char *slot);
#ifdef G__DICTIONARY
#include "TQClass.h"
#endif
#define ClassImpQ(name) \
ClassImp(name)
#endif