home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Micro R&D 1
/
MicroRD-CD-ROM-Vol1-1994.iso
/
os20
/
cdity
/
switchntsc_v3_2.lha
/
switchntsc
/
txt
/
CXLib.mod
next >
Wrap
Text File
|
1992-04-14
|
3KB
|
126 lines
(*----------------------------------------------------------------------------
:Program. CXLib.mod
:Contents. Imitates som functions from the CX_Lib.
:Author. Mario Kemper
:Address. GeistStr. 53, D-4780 Lippstadt
:Phone. 02941/58635
:E-Mail. magick@uni-paderborn.de
:Copyright. Public Domain
:Language. Oberon
:Translator. Amiga Oberon Compiler V2.14d
:History. V2.4 -unknown- [Mario] First release Version.
:History. V2.6 01-Jan-92 [Mario] Now reads arguments from CLI.
:History. V2.7 06-Jan-92 [Mario] Cli-Args don't work correctly,removed.
:History. V3.0 19-Apr-92 [Mario] Removed a little Bug in ArgString.
----------------------------------------------------------------------------*)
MODULE CXLib;
IMPORT e : Exec,
ic : Icon,
wb : Workbench,
s : SYSTEM,
ol : OberonLib,
arg : Arguments,
con : Conversions,
com : Commodities;
TYPE ToolTypeArray* = e.ADDRESS;
String* = e.STRING;
StrPtr* = e.STRPTR;
VAR dobj : wb.DiskObjectPtr;
PROCEDURE ArgArrayInit*():ToolTypeArray;
(* Returns the tooltype array *)
VAR name : String;
i : INTEGER;
BEGIN
i:=0;
IF ol.wbStarted THEN
arg.GetArg(0,name);
dobj := ic.GetDiskObject(name);
IF dobj # NIL THEN
RETURN(dobj.toolTypes)
ELSE
RETURN(NIL)
END
ELSE
RETURN(NIL);
END
END ArgArrayInit;
(* $CopyArrays- *)
PROCEDURE ArgString*(tt:ToolTypeArray;string:String;defaultString : StrPtr):StrPtr;
(* Returns the value of tooltype string or default if not found *)
VAR help : StrPtr;
BEGIN
help:=ic.FindToolType(tt,string);
IF help#NIL THEN
RETURN(help);
ELSE
RETURN(defaultString);
END
END ArgString;
PROCEDURE ArgInt*(tt:ToolTypeArray;string : String; defVal : LONGINT):LONGINT;
(* Same as above but returns LONGINT *)
VAR help : StrPtr;
result : LONGINT;
BEGIN
help:=ic.FindToolType(tt,string);
IF help#NIL THEN
IF con.StringToInt(help^,result) THEN
RETURN(result);
ELSE
RETURN(defVal);
END;
ELSE
RETURN(defVal);
END;
END ArgInt;
PROCEDURE HotKey* (descr : StrPtr;port : e.MsgPortPtr;ID : LONGINT):com.CxObjPtr;
(* Installs a filter for receiving HotKey messages in the commodities network *)
VAR filter,
sender,
translate : com.CxObjPtr;
fail : BOOLEAN;
BEGIN
fail:=FALSE;
filter := com.CxFilter(descr);
IF filter # NIL THEN
sender:= com.CxSender(port,ID);
IF sender # NIL THEN
com.AttachCxObj(filter,sender);
translate := com.CxTranslate(NIL);
IF translate # NIL THEN
com.AttachCxObj(sender,translate);
ELSE fail := TRUE;
com.DeleteCxObjAll(filter);
END;
ELSE
fail := TRUE;
com.DeleteCxObjAll(filter);
END;
ELSE
fail := TRUE;
END;
IF NOT fail THEN
RETURN(filter)
ELSE
RETURN (NIL);
END;
END HotKey;
BEGIN
CLOSE
IF dobj # NIL THEN ic.FreeDiskObject(dobj) END;
END CXLib.