00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef ROOT_RQ_OBJECT
00013 #define ROOT_RQ_OBJECT
00014
00015 #include <TQObject.h>
00016 #include <Varargs.h>
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066 #define RQ_OBJECT1(sender_class)\
00067 private:\
00068 TQObjSender fQObject;\
00069 public:\
00070 TList *GetListOfSignals() const {return fQObject.GetListOfSignals();}\
00071 Bool_t Connect(const char *sig,const char *cl,void *rcvr,const char *slt)\
00072 {fQObject.SetSender(this);fQObject.SetSenderClassName(sender_class);return fQObject.Connect(sig,cl,rcvr,slt);}\
00073 Bool_t Disconnect(const char *sig=0,void *rcvr=0,const char *slt=0){return fQObject.Disconnect(sig,rcvr,slt);}\
00074 void HighPriority(const char *signal_name,const char *slot_name=0){fQObject.HighPriority(signal_name,slot_name);}\
00075 void LowPriority(const char *signal_name,const char *slot_name=0){fQObject.LowPriority(signal_name,slot_name);}\
00076 void EmitVA(const char *signal,Int_t nargs, ...){va_list ap;va_start(ap,nargs);fQObject.EmitVA(signal,nargs,ap);va_end(ap);}\
00077 void Emit(const char *signal){fQObject.Emit(signal);}\
00078 void Emit(const char *signal,const char *params){fQObject.Emit(signal,params);}\
00079 void Emit(const char *signal,Long_t *paramArr){fQObject.Emit(signal,paramArr);}\
00080 void Emit(const char *signal,Double_t param){fQObject.Emit(signal,param);}\
00081 void Emit(const char *signal,Long_t param){fQObject.Emit(signal,param);}
00082
00083 #define RQ_OBJECT2(sender_class)\
00084 void Emit(const char *signal,Long64_t param){fQObject.Emit(signal,param);}\
00085 void Emit(const char *signal,ULong64_t param){fQObject.Emit(signal,param);}\
00086 void Emit(const char *signal,Bool_t param){Emit(signal,(Long_t)param);}\
00087 void Emit(const char *signal,Char_t param){Emit(signal,(Long_t)param);}\
00088 void Emit(const char *signal,UChar_t param){Emit(signal,(Long_t)param);}\
00089 void Emit(const char *signal,Short_t param){Emit(signal,(Long_t)param);}\
00090 void Emit(const char *signal,UShort_t param){Emit(signal,(Long_t)param);}\
00091 void Emit(const char *signal,Int_t param){Emit(signal,(Long_t)param);}\
00092 void Emit(const char *signal,UInt_t param){Emit(signal,(Long_t)param);}\
00093 void Emit(const char *signal,ULong_t param){Emit(signal,(Long_t)param);}\
00094 void Emit(const char *signal,Float_t param){Emit(signal,(Double_t)param);}\
00095 void Destroyed(){Emit("Destroyed()");}\
00096 void ChangedBy(const char *method){Emit("ChangedBy(char*)",method);}\
00097 void Message(const char *msg){Emit("Message(char*)",msg);}\
00098 private:
00099
00100 #define RQ_OBJECT(sender_class)\
00101 RQ_OBJECT1(sender_class)\
00102 RQ_OBJECT2(sender_class)
00103
00104
00105
00106
00107 #define _QUOTE2_(string)\
00108 _QUOTE_(string)
00109
00110 #define RQ_OBJECT_STRING1\
00111 _QUOTE_(#define RQ_OBJECT1(sender_class))\
00112 _QUOTE2_(RQ_OBJECT1(sender_class))
00113
00114 #define RQ_OBJECT_STRING2\
00115 _QUOTE_(#define RQ_OBJECT2(sender_class))\
00116 _QUOTE2_(RQ_OBJECT2(sender_class))
00117
00118 #define RQ_OBJECT_STRING\
00119 _QUOTE_(#define RQ_OBJECT(sender_class)\
00120 RQ_OBJECT1(sender_class)\
00121 RQ_OBJECT2(sender_class))
00122
00123 #endif