00001
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #ifndef TQQOBJECT_H
00019 #define TQQOBJECT_H
00020
00021
00022 #include <TNamed.h>
00023 #include <TBrowser.h>
00024 #include <TQConnection.h>
00025 #include <TQObject.h>
00026
00033 class TQQObject;
00034 class TQQGControl;
00035
00036 class TQQDelegation : public TNamed {
00037
00038 public:
00039 TList* senders;
00040 TList* receivers;
00041
00042 TQQDelegation() { senders=NULL;receivers=NULL; };
00043 ~TQQDelegation() {
00044 if (senders) delete senders;
00045 if (receivers) delete receivers;
00046 }
00047
00048 ClassDef(TQQDelegation,1)
00049
00050 };
00051
00052 class TQQDelegated_Receiver : public TNamed {
00053 public:
00054 char *receiver_class;
00055 TQQObject *receiver;
00056 char *slot;
00057 char *ToString();
00058 TQQDelegated_Receiver(){};
00059 ~TQQDelegated_Receiver(){};
00060
00061 ClassDef(TQQDelegated_Receiver,1)
00062
00063 };
00064
00065 class TQQDelegated_Sender : public TNamed {
00066 public:
00067 char *signal;
00068 TQQObject *sender;
00069 char *ToString();
00070
00071 TQQDelegated_Sender(){};
00072 ~TQQDelegated_Sender(){};
00073
00074 ClassDef(TQQDelegated_Sender,1)
00075
00076 };
00077
00078 class TQQObject : public TNamed , public TQObjSender {
00079
00080
00081 TList *fListOfSlots;
00082
00083 TList *fListOfDelegations;
00084
00085
00086
00087 public:
00088 TQQObject();
00089 virtual ~TQQObject();
00090 void PrintSignals();
00091 void PrintSlots();
00092 void PrintDelegations();
00093
00094 char* ConnectionToString(char *signal, TQConnection*);
00095 TQConnection* StringToConnection(char *signal, char*);
00096
00097 TQQDelegation* FindDelegation(const char *name);
00098 TList* FindSignal(const char *name);
00099 TList* FindSlot(const char *name);
00100
00101 TList *GetListOfSlots() { return fListOfSlots; };
00102 TList *GetListOfSignals() { return fListOfSignals; };
00103 TList *GetListOfDelegations() { return fListOfDelegations; };
00104
00105 char* AddSignal(char*);
00106 char* AddSignals(Int_t num, ...);
00107
00108 char* AddSlot(char*);
00109 char* AddSlots(Int_t num, ...);
00110
00111 char* AddDelegation(char *);
00112 char* AddDelegations(Int_t num, ...);
00113
00114 char* RenameDelegation(char* name,char* newname);
00115
00116 virtual void RegisterSignalsAndSlots() {};
00117 virtual Bool_t IsFolder() const { return kTRUE;};
00118
00119
00120
00121 Bool_t Connect(const char *signal,
00122 TNamed *receiver,
00123 const char *slot) {
00124
00125 return Connect(signal,receiver->ClassName(),
00126 receiver, slot);
00127
00128 }
00129
00130 Bool_t Connect(const char *signal,
00131 const char *receiver_class,
00132 void *receiver,
00133 const char *slot);
00134
00135 static Bool_t Connect(const char *sender_class,
00136 const char *signal,
00137 const char *receiver_class,
00138 void *receiver,
00139 const char *slot);
00140
00141
00142 void Browse(TBrowser *b = NULL);
00143
00144
00145
00146 virtual void Update() {
00147 Emit("Update()");
00148 }
00149
00150
00151 virtual TQQGControl* NewGControl();
00152 virtual void Edit();
00153
00154 ClassDef(TQQObject,1)
00155
00156 };
00157
00158
00159
00160
00161 #endif