Main Page | Class Hierarchy | Alphabetical List | Data Structures | File List | Data Fields | Globals

TQQObject.h

Go to the documentation of this file.
00001 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
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;  // List of all Slot names 
00082 
00083   TList *fListOfDelegations;   // List of Delegations (somewhat between Signals and Slots)
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   // Simplier Connect on TNamed-Object (they now their classnames...)
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   // Signal to Update external components (usally controls)
00145   //
00146   virtual void   Update() {
00147     Emit("Update()");
00148   } //*SIGNAL*
00149   
00150   
00151   virtual TQQGControl* NewGControl(); 
00152   virtual void Edit();    //*MENU*
00153 
00154   ClassDef(TQQObject,1)
00155 
00156 };
00157 
00158 
00159 
00160 
00161 #endif

Generated on Fri Apr 23 16:23:44 2004 by doxygen 1.3.2