home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / BK-SC1_4.DMS / in.adf / MUIClass.Lha / Include / Classes / TWiMUI / Application.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-06-16  |  6.3 KB  |  150 lines

  1. //
  2. //  $VER: Application.h 1.0 (16 Jun 1996)
  3. //
  4. //    c 1996 Thomas Wilhelmi
  5. //
  6. //
  7. // Address : Taunusstrasse 14
  8. //           61138 Niederdorfelden
  9. //           Germany
  10. //
  11. //  E-Mail : willi@twi.rhein-main.de
  12. //
  13. //   Phone : +49 (0)6101 531060
  14. //   Fax   : +49 (0)6101 531061
  15. //
  16. //
  17. //  $HISTORY:
  18. //
  19. //  16 Jun 1996 :   1.0 : first public Release
  20. //
  21.  
  22. #ifndef CPP_TWIMUI_APPLICATION_H
  23. #define CPP_TWIMUI_APPLICATION_H
  24.  
  25. #ifndef CPP_TWIMUI_NOTIFY_H
  26. #include <classes/twimui/notify.h>
  27. #endif
  28.  
  29. #ifndef CPP_TWIMUI_WINDOW_H
  30. #include <classes/twimui/window.h>
  31. #endif
  32.  
  33. #ifndef LIBRARIES_COMMODITIES_H
  34. #include <libraries/commodities.h>
  35. #endif
  36.  
  37. #ifndef UTILITY_HOOKS_H
  38. #include <utility/hooks.h>
  39. #endif
  40.  
  41. class MUIApplicationBrokerHook
  42.     {
  43.     private:
  44.         struct Hook brokerhook;
  45.         static void BrokerHookEntry(register __a0 struct Hook *, register __a2 Object *, register __a1 CxMsg *);
  46.         virtual void BrokerHookFunc(struct Hook *, Object *, CxMsg *);
  47.     protected:
  48.         MUIApplicationBrokerHook();
  49.         MUIApplicationBrokerHook(const MUIApplicationBrokerHook &);
  50.         ~MUIApplicationBrokerHook();
  51.         MUIApplicationBrokerHook &operator= (const MUIApplicationBrokerHook &);
  52.     public:
  53.         struct Hook *broker() { return(&brokerhook); };
  54.     };
  55.  
  56. class MUIApplicationRexxHook
  57.     {
  58.     private:
  59.         struct Hook rexxhook;
  60.         static ULONG RexxHookEntry(register __a0 struct Hook *, register __a2 Object *, register __a1 struct RexxMsg *);
  61.         virtual ULONG RexxHookFunc(struct Hook *, Object *, struct RexxMsg *);
  62.     protected:
  63.         MUIApplicationRexxHook();
  64.         MUIApplicationRexxHook(const MUIApplicationRexxHook &p);
  65.         ~MUIApplicationRexxHook();
  66.         MUIApplicationRexxHook &operator= (const MUIApplicationRexxHook &);
  67.     public:
  68.         struct Hook *rexx() { return(&rexxhook); };
  69.     };
  70.  
  71. class MUIApplication
  72.     :   public MUINotify,
  73.         public MUIApplicationBrokerHook,
  74.         public MUIApplicationRexxHook
  75.     {
  76.     private:
  77.         virtual ULONG Dispatch(struct IClass *, Object *, Msg);
  78.     public:
  79.         MUIApplication(const struct TagItem *t)
  80.             :   MUINotify(MUIC_Application),
  81.                 MUIApplicationBrokerHook(),
  82.                 MUIApplicationRexxHook()
  83.             {
  84.             init(t);
  85.             };
  86.         MUIApplication(const Tag, ...);
  87.         MUIApplication()
  88.             :   MUINotify(MUIC_Application),
  89.                 MUIApplicationBrokerHook(),
  90.                 MUIApplicationRexxHook()
  91.             { };
  92.         MUIApplication(MUIApplication &p)
  93.             :   MUINotify(p),
  94.                 MUIApplicationBrokerHook(p),
  95.                 MUIApplicationRexxHook(p)
  96.             { };
  97.         virtual ~MUIApplication();
  98.         MUIApplication &operator= (MUIApplication &);
  99.         void Loop();
  100.         void Active(const BOOL p) { set(MUIA_Application_Active,(ULONG)p); };
  101.         BOOL Active() const { return((BOOL)get(MUIA_Application_Active, FALSE)); };
  102.         STRPTR Author() const { return((STRPTR)get(MUIA_Application_Author)); };
  103.         STRPTR Base() const { return((STRPTR)get(MUIA_Application_Base)); };
  104.         struct NewBroker *Broker() const { return((struct NewBroker *)get(MUIA_Application_Broker)); };
  105.         void BrokerHook(const struct Hook *p) { set(MUIA_Application_BrokerHook,(ULONG)p); };
  106.         struct Hook *BrokerHook() const { return((struct Hook *)get(MUIA_Application_BrokerHook)); };
  107.         struct MsgPort *BrokerPort() const { return((struct MsgPort *)get(MUIA_Application_BrokerPort)); };
  108.         LONG BrokerPri() const { return((LONG)get(MUIA_Application_BrokerPri,0L)); };
  109.         void Commands(const struct MUI_Commands *p) { set(MUIA_Application_Commands,(ULONG)p); };
  110.         struct MUI_Commands *Commands() const { return((struct MUI_Commands *)get(MUIA_Application_Commands)); };
  111.         STRPTR Copyright() const { return((STRPTR)get(MUIA_Application_Copyright)); };
  112.         STRPTR Description() const { return((STRPTR)get(MUIA_Application_Description)); };
  113.         void DiskObject(const struct DiskObject *p) { set(MUIA_Application_DiskObject,(ULONG)p); };
  114.         struct DiskObject *DiskObject() const { return((struct DiskObject *)get(MUIA_Application_DiskObject)); };
  115.         BOOL DoubleStart() const { return((BOOL)get(MUIA_Application_DoubleStart,FALSE)); };
  116.         void DropObject(const Object *p) { set(MUIA_Application_DropObject,(ULONG)p); };
  117.         BOOL ForceQuit() const { return((BOOL)get(MUIA_Application_ForceQuit,FALSE)); };
  118.         void HelpFile(const STRPTR p) { set(MUIA_Application_HelpFile,(ULONG)p); };
  119.         STRPTR HelpFile() const { return((STRPTR)get(MUIA_Application_HelpFile)); };
  120.         void Iconified(const BOOL p) { set(MUIA_Application_Iconified,(ULONG)p); };
  121.         BOOL Iconified() const { return((BOOL)get(MUIA_Application_Iconified,FALSE)); };
  122.         ULONG MenuAction() const { return(get(MUIA_Application_MenuAction,0L)); };
  123.         ULONG MenuHelp() const { return(get(MUIA_Application_MenuHelp,0L)); };
  124.         void RexxHook(const struct Hook *p) { set(MUIA_Application_RexxHook,(ULONG)p); };
  125.         struct Hook *RexxHook() const { return((struct Hook *)get(MUIA_Application_RexxHook)); };
  126.         struct RxMsg *RexxMsg() const { return((struct RxMsg *)get(MUIA_Application_RexxMsg)); };
  127.         void RexxString(const STRPTR p) { set(MUIA_Application_RexxString,(ULONG)p); };
  128.         void Sleep(const BOOL p) { set(MUIA_Application_Sleep,(ULONG)p); };
  129.         STRPTR Title() const { return((STRPTR)get(MUIA_Application_Title)); };
  130.         STRPTR Version() const { return((STRPTR)get(MUIA_Application_Version)); };
  131.         void AddInputHandler(struct MUI_InputHandlerNode *p) { dom(MUIM_Application_AddInputHandler,(ULONG)p); };
  132.         void CheckRefresh() { dom(MUIM_Application_CheckRefresh); };
  133.         void InputBuffered() { dom(MUIM_Application_InputBuffered); };
  134.         void Load(STRPTR p) { dom(MUIM_Application_Load,(ULONG)p); };
  135.         void LoadENV() { dom(MUIM_Application_Load,(ULONG)MUIV_Application_Load_ENV); };
  136.         void LoadENVARC() { dom(MUIM_Application_Load,(ULONG)MUIV_Application_Load_ENVARC); };
  137.         ULONG NewInput(LONGBITS *p) { return(dom(MUIM_Application_NewInput,(ULONG)p)); };
  138.         void OpenConfigWindow(ULONG p) { dom(MUIM_Application_OpenConfigWindow,p); };
  139.         void RemInputHandler(struct MUI_InputHandlerNode *p) { dom(MUIM_Application_RemInputHandler,(ULONG)p); };
  140.         void ReturnID(ULONG p) { dom(MUIM_Application_ReturnID,p); };
  141.         void Save(STRPTR p) { dom(MUIM_Application_Save,(ULONG)p); };
  142.         void SaveENV() { dom(MUIM_Application_Save,(ULONG)MUIV_Application_Save_ENV); };
  143.         void SaveENVARC() { dom(MUIM_Application_Save,(ULONG)MUIV_Application_Save_ENVARC); };
  144.         void ShowHelp(Object *p1, STRPTR p2, STRPTR p3, LONG p4) { dom(MUIM_Application_ShowHelp,(ULONG)p1,(ULONG)p2,(ULONG)p3,(ULONG)p4); };
  145.         void Add(MUIWindow &p) { dom(OM_ADDMEMBER,(ULONG)((Object *)p)); };
  146.         void Rem(MUIWindow &p) { dom(OM_REMMEMBER,(ULONG)((Object *)p)); };
  147.     };
  148.  
  149. #endif
  150.