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
/
M2TMTest.mod
< prev
next >
Wrap
Text File
|
1992-09-26
|
4KB
|
101 lines
(*-------------------------------------------------------------------------*)
(* *)
(* 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.