home *** CD-ROM | disk | FTP | other *** search
- (*-------------------------------------------------------------------------*)
- (* *)
- (* TMTest - Example for using toolmanager.library and hooks *)
- (* Date: 17-Jul-92 *)
- (* *)
- (* ⌐ 1992 by Martin Horneffer *)
- (* *)
- (* This Module may freely be copied and distributed, as long as it is *)
- (* left unchanged and kept together with "toolmanager.library", ⌐ 1992 by *)
- (* Stefan Becker. *)
- (* *)
- (*-------------------------------------------------------------------------*)
-
- MODULE TMTest;
-
- IMPORT tm:ToolManager, io, u:Utility, e:Exec, sys:SYSTEM;
-
- VAR
- hook : u.HookPtr;
- tmhandle : LONGINT;
- count : LONGINT;
- foo : CHAR;
-
- PROCEDURE TestHook*( hook{8}:u.HookPtr; object{10}:e.APTR; message{9}:e.APTR): LONGINT;
- (* $SaveRegs+ *)
- BEGIN
- sys.SETREG( 13, object); (* get A5 *)
- INC(count);
- RETURN 0;
- END TestHook;
-
- BEGIN
- tmhandle := tm.AllocTMHandle();
- IF tmhandle = NIL THEN HALT(20) END;
-
- NEW(hook);
- hook.entry := TestHook;
- hook.data := sys.REG(13); (* save A5 *)
-
- IF NOT tm.CreateTMObjectTags( tmhandle, "TMTestExec", tm.typeExec,
- tm.execType, tm.hook,
- tm.command, hook,
- u.end) THEN HALT(10) END;
-
- IF NOT tm.CreateTMObjectTags( tmhandle, "TMTestMenu", tm.typeMenu,
- tm.exec, sys.ADR("TMTestExec"),
- u.end) THEN HALT(10) END;
-
- IF NOT tm.CreateTMObjectTags( tmhandle, "TMTestImage", tm.typeImage,
- tm.file, sys.ADR("dh0:Grafik/brush/UtilityDock.brush"),
- u.end) THEN HALT(10) END;
-
- IF NOT tm.CreateTMObjectTags( tmhandle, "TMTestIcon", tm.typeIcon,
- tm.exec, sys.ADR("TMTestExec"),
- tm.image, sys.ADR("TMTestImage"),
- u.end) THEN HALT(10) END;
-
- count := 0;
-
- io.WriteString("Press any key...\n");
- io.Read( foo );
-
- io.WriteString("My hook has been called");
- io.WriteInt( count, 3);
- io.WriteString(" times.\n\n");
-
- CLOSE
- IF tmhandle # NIL THEN tm.FreeTMHandle( tmhandle ) END;
- END TMTest.
-