home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC7.DMS / in.adf / classes.lha / Classes / BOOPSI / rootclass.h < prev   
Encoding:
C/C++ Source or Header  |  1995-01-31  |  2.2 KB  |  71 lines

  1. #ifndef CPP_BOOPSI_ROOTCLASS_H
  2. #define CPP_BOOPSI_ROOTCLASS_H
  3.  
  4. // BOOPSI Klasseninterface
  5. //
  6. // Wenn man mit diesem Klasseninterface für BOOPSI arbeitet, sollte man
  7. // nicht vergessen, daß BOOPSI selbst objekt-orientiert ist und einen
  8. // Vererbungsmechanismus kennt. Wenn man also die hier aufgeführten
  9. // Klassen nach C++ Art ableitet, bewegt man sich von dem BOOPSI Konzept
  10. // fort. Der BOOPSI Klassenbaum ist zwar auch durch einen entsprechenden
  11. // C++ Klassenbaum nachgebildet, aber das ist nur zur Vereinfachung der
  12. // Benutzung der BOOPSI Objekte gedacht (insbesondere zum automatischen
  13. // NewObject() im Konstruktor und DisposeObject im Destruktor). Eigentlich
  14. // kann man alles mit den allgemeinen Klassen BoopsiRootC und
  15. // BoopsiGadgetC (aus gadgetclass.h) erledigen. Doch es ist natürlich
  16. // angenehmer, wenn man direkt ein BoopsiFrbuttonGadgetC deklarieren kann,
  17. // als ein allgemeineres BoopsiGadgetC Objekt.
  18. //
  19. // Autor: Jochen Becher
  20. //
  21. // Historie:
  22. // Version 1.0 am 26. Februar 94
  23.  
  24. #ifndef INTUITION_CLASSUSR_H
  25. #include <intuition/classusr.h>
  26. #endif
  27.  
  28. #ifndef INTUITION_CLASSES_H
  29. #include <intuition/classes.h>
  30. #endif
  31.  
  32. #ifndef CPP_UTILITY_TAGITEM_H
  33. #include <classes/utility/tagitem.h>
  34. #endif
  35.  
  36. #ifndef CPP_EXEC_SHARE_H
  37. #include <classes/exec/share.h>
  38. #endif
  39.  
  40. #ifndef CPP_EXCEPTIONS_EXCEPTIONS_H
  41. #include <classes/exceptions/exceptions.h>
  42. #endif
  43.  
  44. class BoopsiRootC : protected ShareC {
  45. public:
  46.     BoopsiRootC(struct IClass *,
  47.         STRPTR pubclass, Tag tag1type, ...) throw (BoopsiX, MemoryX);
  48.     BoopsiRootC(struct IClass *,
  49.         STRPTR pubclass, struct TagItem *) throw (BoopsiX, MemoryX);
  50.     BoopsiRootC(const BoopsiRootC &);
  51.     ~BoopsiRootC();
  52.     BoopsiRootC &operator= (const BoopsiRootC &);
  53.     Object *object() const;
  54.     operator Object * () const { return boopsi_object; };
  55.     virtual VOID setAttrs(Tag tag1type, ...);
  56.     virtual VOID setAttrs(struct TagItem *);
  57.     ULONG getAttr(Tag tagtype) const;
  58.     BOOL getAttr(Tag tagtype, ULONG &) const;
  59.     ULONG doMethod(ULONG methodID, ...);
  60.     ULONG doMethod(Msg boopsimessage);
  61.     VOID addMember(BoopsiRootC &child);
  62.     VOID addMember(Object *child);
  63.     VOID remMember(BoopsiRootC &child);
  64.     VOID remMember(Object *child);
  65. protected:
  66.     BoopsiRootC() throw (BoopsiX, MemoryX);
  67.     Object *boopsi_object;
  68. };
  69.  
  70. #endif
  71.