home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d7xx / d752 / toolmanager.lha / ToolManager / Programmers / Programmers.lha / examples / TMTest.mod < prev   
Text File  |  1992-09-26  |  2KB  |  70 lines

  1. (*-------------------------------------------------------------------------*)
  2. (*                                                                         *)
  3. (*  TMTest - Example for using toolmanager.library and hooks               *)
  4. (*                                                    Date: 17-Jul-92      *)
  5. (*                                                                         *)
  6. (*   © 1992 by Martin Horneffer                                            *)
  7. (*                                                                         *)
  8. (*  This  Module  may  freely  be copied and distributed, as long as it is *)
  9. (*  left unchanged and kept together with "toolmanager.library", © 1992 by *)
  10. (*  Stefan Becker.                                                         *)
  11. (*                                                                         *)
  12. (*-------------------------------------------------------------------------*)
  13.  
  14. MODULE TMTest;
  15.  
  16. IMPORT tm:ToolManager, io, u:Utility, e:Exec, sys:SYSTEM;
  17.  
  18. VAR
  19.   hook        : u.HookPtr;
  20.   tmhandle    : LONGINT;
  21.   count        : LONGINT;
  22.   foo        : CHAR;
  23.  
  24. PROCEDURE TestHook*( hook{8}:u.HookPtr; object{10}:e.APTR; message{9}:e.APTR): LONGINT;
  25.   (* $SaveRegs+ *)
  26.   BEGIN
  27.     sys.SETREG( 13, object); (* get A5 *)
  28.     INC(count);
  29.     RETURN 0;
  30.   END TestHook;
  31.  
  32. BEGIN
  33.   tmhandle := tm.AllocTMHandle();
  34.   IF tmhandle = NIL THEN  HALT(20)  END;
  35.  
  36.   NEW(hook);
  37.   hook.entry := TestHook;
  38.   hook.data  := sys.REG(13); (* save A5 *)
  39.  
  40.   IF NOT tm.CreateTMObjectTags( tmhandle, "TMTestExec", tm.typeExec,
  41.            tm.execType,        tm.hook,
  42.            tm.command,         hook,
  43.            u.end)  THEN  HALT(10)  END;
  44.  
  45.   IF NOT tm.CreateTMObjectTags( tmhandle, "TMTestMenu", tm.typeMenu,
  46.            tm.exec,        sys.ADR("TMTestExec"),
  47.            u.end) THEN  HALT(10)  END;
  48.  
  49.   IF NOT tm.CreateTMObjectTags( tmhandle, "TMTestImage", tm.typeImage,
  50.            tm.file,        sys.ADR("dh0:Grafik/brush/UtilityDock.brush"),
  51.            u.end) THEN  HALT(10)  END;
  52.  
  53.   IF NOT tm.CreateTMObjectTags( tmhandle, "TMTestIcon", tm.typeIcon,
  54.            tm.exec,        sys.ADR("TMTestExec"),
  55.            tm.image,        sys.ADR("TMTestImage"),
  56.            u.end) THEN  HALT(10)  END;
  57.  
  58.   count := 0;
  59.  
  60.   io.WriteString("Press any key...\n");
  61.   io.Read( foo );
  62.  
  63.   io.WriteString("My hook has been called");
  64.   io.WriteInt( count, 3);
  65.   io.WriteString(" times.\n\n");
  66.  
  67. CLOSE
  68.   IF tmhandle # NIL THEN  tm.FreeTMHandle( tmhandle )  END;
  69. END TMTest.
  70.