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. *)
- (* *)
- (* Modified M2Amiga Modula-2 version by Jⁿrgen Weinelt. *)
- (* Same Copyright notice as above. *)
- (* *)
- (*-------------------------------------------------------------------------*)
-
- MODULE M2TMTest;
-
- IMPORT A:Arts;
- IMPORT TMD:ToolManagerD;
- IMPORT TML:ToolManagerL;
- IMPORT IO:InOut;
- IMPORT UD:UtilityD;
- IMPORT ED:ExecD;
- IMPORT R;
- IMPORT S:SYSTEM;
-
-
-
- VAR
- hook: UD.Hook;
- tmhandle: TMD.TMHandlePtr;
- count: LONGINT;
- foo: CHAR;
- tagbuffer: ARRAY[0..19] OF LONGINT;
-
-
- (*$ SaveA4:=TRUE *)
- PROCEDURE TestHook( hook{R.A0}:UD.HookPtr; object{R.A2}:S.ADDRESS; message{R.A1}:S.ADDRESS): LONGINT;
- BEGIN
- S.SETREG(R.A4,object); (* get A4 *)
- INC(count);
- RETURN 0;
- END TestHook;
-
- BEGIN
- tmhandle := TML.AllocTMHandle();
- IF tmhandle=NIL THEN
- IO.WriteString("\nERROR: AllocTMHandle failed\n\n");
- A.Exit(20);
- END;
-
- hook.entry := S.ADR(TestHook);
- hook.data := S.REG(R.A4); (* save A4 *)
-
- IF NOT TML.CreateTMObjectTagList(tmhandle,S.ADR("TMTestExec"),TMD.otExec,
- S.TAG(tagbuffer,
- TMD.opExecType,TMD.etHook,
- TMD.opCommand,S.ADR(hook),
- UD.tagEnd)) THEN
- IO.WriteString("\nERROR: CreateTMObjectTagList(TMTestExec) failed\n\n");
- A.Exit(10);
- END;
-
- IF NOT TML.CreateTMObjectTagList(tmhandle,S.ADR("TMTestMenu"),TMD.otMenu,
- S.TAG(tagbuffer,
- TMD.opExec,S.ADR("TMTestExec"),
- UD.tagEnd)) THEN
- IO.WriteString("\nERROR: CreateTMObjectTagList(TMTestMenu) failed\n\n");
- A.Exit(10);
- END;
-
- IF NOT TML.CreateTMObjectTagList(tmhandle,S.ADR("TMTestImage"),TMD.otImage,
- S.TAG(tagbuffer,
- TMD.opFile,S.ADR("dh0:t/testbrush"),
- UD.tagEnd)) THEN
- IO.WriteString("\nERROR: CreateTMObjectTagList(TMTestImage) failed\n\n");
- A.Exit(10);
- END;
-
- IF NOT TML.CreateTMObjectTagList(tmhandle,S.ADR("TMTestIcon"),TMD.otIcon,
- S.TAG(tagbuffer,
- TMD.opExec,S.ADR("TMTestExec"),
- TMD.opImage,S.ADR("TMTestImage"),
- UD.tagEnd)) THEN
- IO.WriteString("\nERROR: CreateTMObjectTagList(TMTestIcon) failed\n\n");
- A.Exit(10);
- END;
-
- count:=0;
-
- IO.WriteString("\nPress return/enter... "); IO.Read(foo);
-
- IO.WriteString("The hook has been called "); IO.WriteInt(count,0); IO.WriteString(" times.\n\n");
-
- CLOSE
- IF tmhandle#NIL THEN
- TML.FreeTMHandle(tmhandle);
- END;
- END M2TMTest.
-