mirror of
https://github.com/vishapoberon/compiler.git
synced 2026-04-05 23:22:25 +00:00
XYplane and X wrappers added
This commit is contained in:
parent
4bacf7f752
commit
47c51986a1
17 changed files with 4666 additions and 410 deletions
6
makefile
6
makefile
|
|
@ -9,7 +9,7 @@ RELEASE = 1.0
|
|||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
|
||||
VOC = voc
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
|
|
@ -159,6 +159,10 @@ stage6:
|
|||
$(VOCSTATIC) -sP oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sP oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sP oocC.Mod
|
||||
$(VOCSTATIC) -sP oocX11.Mod
|
||||
$(VOCSTATIC) -sP oocXutil.Mod
|
||||
$(VOCSTATIC) -sP oocXYplane.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sP ulmSys.Mod
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ RELEASE = 1.0
|
|||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
|
||||
VOC = voc
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
|
|
@ -119,8 +119,8 @@ stage6:
|
|||
#more v4 libs
|
||||
$(VOCSTATIC) -sP Printer.Mod
|
||||
$(VOCSTATIC) -sP Strings.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sP oocAscii.Mod
|
||||
|
|
@ -157,7 +157,12 @@ stage6:
|
|||
$(VOCSTATIC) -sP oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sP oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sP oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sP oocC.Mod
|
||||
$(VOCSTATIC) -sP oocX11.Mod
|
||||
$(VOCSTATIC) -sP oocXutil.Mod
|
||||
$(VOCSTATIC) -sP oocXYplane.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sP ulmSys.Mod
|
||||
|
|
@ -214,7 +219,7 @@ stage6:
|
|||
$(VOCSTATIC) -sP ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sP ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sP ulmTCrypt.Mod
|
||||
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sP powStrings.Mod
|
||||
|
||||
|
|
@ -257,11 +262,6 @@ clean:
|
|||
rm *.a
|
||||
rm *.sym
|
||||
|
||||
coco:
|
||||
$(JET) Sets.Mod Oberon.Mod CRS.Mod CRT.Mod CRA.Mod CRX.Mod CRP.Mod Coco.Mod -m
|
||||
$(CC) Sets.c Oberon.c CRS.c CRT.c CRA.c CRX.c CRP.c
|
||||
$(CL) -static -o Coco Coco.c Sets.o Oberon.o CRS.o CRT.o CRA.o CRX.o CRP.o CmdlnTexts.o SYSTEM.o Files.o -L. -lOberon -L/usr/lib -ldl
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ RELEASE = 1.0
|
|||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
|
||||
VOC = voc
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
|
|
@ -119,8 +119,8 @@ stage6:
|
|||
#more v4 libs
|
||||
$(VOCSTATIC) -sP Printer.Mod
|
||||
$(VOCSTATIC) -sP Strings.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sP oocAscii.Mod
|
||||
|
|
@ -157,7 +157,12 @@ stage6:
|
|||
$(VOCSTATIC) -sP oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sP oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sP oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sP oocC.Mod
|
||||
$(VOCSTATIC) -sP oocX11.Mod
|
||||
$(VOCSTATIC) -sP oocXutil.Mod
|
||||
$(VOCSTATIC) -sP oocXYplane.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sP ulmSys.Mod
|
||||
|
|
@ -214,7 +219,7 @@ stage6:
|
|||
$(VOCSTATIC) -sP ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sP ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sP ulmTCrypt.Mod
|
||||
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sP powStrings.Mod
|
||||
|
||||
|
|
@ -257,11 +262,6 @@ clean:
|
|||
rm *.a
|
||||
rm *.sym
|
||||
|
||||
coco:
|
||||
$(JET) Sets.Mod Oberon.Mod CRS.Mod CRT.Mod CRA.Mod CRX.Mod CRP.Mod Coco.Mod -m
|
||||
$(CC) Sets.c Oberon.c CRS.c CRT.c CRA.c CRX.c CRP.c
|
||||
$(CL) -static -o Coco Coco.c Sets.o Oberon.o CRS.o CRT.o CRA.o CRX.o CRP.o CmdlnTexts.o SYSTEM.o Files.o -L. -lOberon -L/usr/lib -ldl
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ RELEASE = 1.0
|
|||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
|
||||
VOC = voc
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
|
|
@ -119,8 +119,8 @@ stage6:
|
|||
#more v4 libs
|
||||
$(VOCSTATIC) -sP Printer.Mod
|
||||
$(VOCSTATIC) -sP Strings.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sP oocAscii.Mod
|
||||
|
|
@ -157,7 +157,12 @@ stage6:
|
|||
$(VOCSTATIC) -sP oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sP oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sP oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sP oocC.Mod
|
||||
$(VOCSTATIC) -sP oocX11.Mod
|
||||
$(VOCSTATIC) -sP oocXutil.Mod
|
||||
$(VOCSTATIC) -sP oocXYplane.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sP ulmSys.Mod
|
||||
|
|
@ -214,7 +219,7 @@ stage6:
|
|||
$(VOCSTATIC) -sP ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sP ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sP ulmTCrypt.Mod
|
||||
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sP powStrings.Mod
|
||||
|
||||
|
|
@ -257,11 +262,6 @@ clean:
|
|||
rm *.a
|
||||
rm *.sym
|
||||
|
||||
coco:
|
||||
$(JET) Sets.Mod Oberon.Mod CRS.Mod CRT.Mod CRA.Mod CRX.Mod CRP.Mod Coco.Mod -m
|
||||
$(CC) Sets.c Oberon.c CRS.c CRT.c CRA.c CRX.c CRP.c
|
||||
$(CL) -static -o Coco Coco.c Sets.o Oberon.o CRS.o CRT.o CRA.o CRX.o CRP.o CmdlnTexts.o SYSTEM.o Files.o -L. -lOberon -L/usr/lib -ldl
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ RELEASE = 1.0
|
|||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
|
||||
VOC = voc
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
|
|
@ -119,8 +119,8 @@ stage6:
|
|||
#more v4 libs
|
||||
$(VOCSTATIC) -sP Printer.Mod
|
||||
$(VOCSTATIC) -sP Strings.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sP oocAscii.Mod
|
||||
|
|
@ -157,7 +157,12 @@ stage6:
|
|||
$(VOCSTATIC) -sP oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sP oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sP oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sP oocC.Mod
|
||||
$(VOCSTATIC) -sP oocX11.Mod
|
||||
$(VOCSTATIC) -sP oocXutil.Mod
|
||||
$(VOCSTATIC) -sP oocXYplane.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sP ulmSys.Mod
|
||||
|
|
@ -214,7 +219,7 @@ stage6:
|
|||
$(VOCSTATIC) -sP ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sP ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sP ulmTCrypt.Mod
|
||||
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sP powStrings.Mod
|
||||
|
||||
|
|
@ -257,11 +262,6 @@ clean:
|
|||
rm *.a
|
||||
rm *.sym
|
||||
|
||||
coco:
|
||||
$(JET) Sets.Mod Oberon.Mod CRS.Mod CRT.Mod CRA.Mod CRX.Mod CRP.Mod Coco.Mod -m
|
||||
$(CC) Sets.c Oberon.c CRS.c CRT.c CRA.c CRX.c CRP.c
|
||||
$(CL) -static -o Coco Coco.c Sets.o Oberon.o CRS.o CRT.o CRA.o CRX.o CRP.o CmdlnTexts.o SYSTEM.o Files.o -L. -lOberon -L/usr/lib -ldl
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ RELEASE = 1.0
|
|||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
|
||||
VOC = voc
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
|
|
@ -119,8 +119,8 @@ stage6:
|
|||
#more v4 libs
|
||||
$(VOCSTATIC) -sP Printer.Mod
|
||||
$(VOCSTATIC) -sP Strings.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sP oocAscii.Mod
|
||||
|
|
@ -157,7 +157,12 @@ stage6:
|
|||
$(VOCSTATIC) -sP oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sP oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sP oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sP oocC.Mod
|
||||
$(VOCSTATIC) -sP oocX11.Mod
|
||||
$(VOCSTATIC) -sP oocXutil.Mod
|
||||
$(VOCSTATIC) -sP oocXYplane.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sP ulmSys.Mod
|
||||
|
|
@ -214,7 +219,7 @@ stage6:
|
|||
$(VOCSTATIC) -sP ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sP ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sP ulmTCrypt.Mod
|
||||
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sP powStrings.Mod
|
||||
|
||||
|
|
@ -257,11 +262,6 @@ clean:
|
|||
rm *.a
|
||||
rm *.sym
|
||||
|
||||
coco:
|
||||
$(JET) Sets.Mod Oberon.Mod CRS.Mod CRT.Mod CRA.Mod CRX.Mod CRP.Mod Coco.Mod -m
|
||||
$(CC) Sets.c Oberon.c CRS.c CRT.c CRA.c CRX.c CRP.c
|
||||
$(CL) -static -o Coco Coco.c Sets.o Oberon.o CRS.o CRT.o CRA.o CRX.o CRP.o CmdlnTexts.o SYSTEM.o Files.o -L. -lOberon -L/usr/lib -ldl
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ RELEASE = 1.0
|
|||
|
||||
INCLUDEPATH = -Isrc/lib/system/$(CCOMP)/$(TARCH)
|
||||
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
SETPATH = CFLAGS=$(INCLUDEPATH) PATH=.:/bin:/usr/bin MODULES=.:src/lib:src/lib/v4:src/lib/v4/$(TARCH):src/lib/system:src/lib/system/$(CCOMP):src/lib/system/$(CCOMP)/$(TARCH):src/lib/ulm:src/lib/ulm/$(CCOMP):src/lib/ulm/$(TARCH):src/lib/ooc2:src/lib/ooc2/$(CCOMP):src/lib/ooc:src/lib/ooc/$(CCOMP)/$(TARCH):src/lib/pow:src/lib/misc:src/lib/s3:src/voc:src/voc/$(CCOMP):src/voc/$(CCOMP)/$(TARCH):src/tools/ocat:src/tools/browser:src/tools/vocparam:src/tools/vmake:src/tools/coco:src/test
|
||||
|
||||
VOC = voc
|
||||
VOCSTATIC0 = $(SETPATH) ./vocstatic.$(TOS).$(CCOMP).$(TARCH)
|
||||
|
|
@ -119,8 +119,8 @@ stage6:
|
|||
#more v4 libs
|
||||
$(VOCSTATIC) -sP Printer.Mod
|
||||
$(VOCSTATIC) -sP Strings.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
$(VOCSTATIC) -sP Sets.Mod
|
||||
$(VOCSTATIC) -sP Sets0.Mod
|
||||
|
||||
#ooc libs
|
||||
$(VOCSTATIC) -sP oocAscii.Mod
|
||||
|
|
@ -157,7 +157,12 @@ stage6:
|
|||
$(VOCSTATIC) -sP oocMsg.Mod oocChannel.Mod
|
||||
$(VOCSTATIC) -sP oocStrings2.Mod oocRts.Mod oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocTextRider.Mod oocBinaryRider.Mod oocJulianDay.Mod
|
||||
$(VOCSTATIC) -sP oocFilenames.Mod
|
||||
$(VOCSTATIC) -sP oocwrapperlibc.Mod
|
||||
$(VOCSTATIC) -sP oocC.Mod
|
||||
$(VOCSTATIC) -sP oocX11.Mod
|
||||
$(VOCSTATIC) -sP oocXutil.Mod
|
||||
$(VOCSTATIC) -sP oocXYplane.Mod
|
||||
|
||||
#Ulm's Oberon system libs
|
||||
$(VOCSTATIC) -sP ulmSys.Mod
|
||||
|
|
@ -214,7 +219,7 @@ stage6:
|
|||
$(VOCSTATIC) -sP ulmConclusions.Mod
|
||||
$(VOCSTATIC) -sP ulmRandomGenerators.Mod
|
||||
$(VOCSTATIC) -sP ulmTCrypt.Mod
|
||||
|
||||
|
||||
#pow32 libs
|
||||
$(VOCSTATIC) -sP powStrings.Mod
|
||||
|
||||
|
|
@ -257,11 +262,6 @@ clean:
|
|||
rm *.a
|
||||
rm *.sym
|
||||
|
||||
coco:
|
||||
$(JET) Sets.Mod Oberon.Mod CRS.Mod CRT.Mod CRA.Mod CRX.Mod CRP.Mod Coco.Mod -m
|
||||
$(CC) Sets.c Oberon.c CRS.c CRT.c CRA.c CRX.c CRP.c
|
||||
$(CL) -static -o Coco Coco.c Sets.o Oberon.o CRS.o CRT.o CRA.o CRX.o CRP.o CmdlnTexts.o SYSTEM.o Files.o -L. -lOberon -L/usr/lib -ldl
|
||||
|
||||
install:
|
||||
test -d $(PREFIX)/bin | mkdir -p $(PREFIX)/bin
|
||||
cp voc $(PREFIX)/bin/
|
||||
|
|
|
|||
|
|
@ -1,71 +0,0 @@
|
|||
(* $Id: C.Mod,v 1.9 1999/10/03 11:46:01 ooc-devel Exp $ *)
|
||||
MODULE C;
|
||||
(* Basic data types for interfacing to C code.
|
||||
Copyright (C) 1997-1998 Michael van Acken
|
||||
|
||||
This module is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License
|
||||
as published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This module is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OOC. If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*)
|
||||
|
||||
IMPORT
|
||||
SYSTEM;
|
||||
|
||||
(*
|
||||
These types are intended to be equivalent to their C counterparts.
|
||||
They may vary depending on your system, but as long as you stick to a 32 Bit
|
||||
Unix they should be fairly safe.
|
||||
*)
|
||||
|
||||
TYPE
|
||||
char* = CHAR;
|
||||
signedchar* = SHORTINT; (* signed char *)
|
||||
shortint* = INTEGER; (* short int *)
|
||||
int* = LONGINT;
|
||||
set* = SET; (* unsigned int, used as set *)
|
||||
longint* = LONGINT; (* long int *)
|
||||
(*longset* = SYSTEM.SET64; *) (* unsigned long, used as set *)
|
||||
address* = LONGINT;
|
||||
float* = REAL;
|
||||
double* = LONGREAL;
|
||||
|
||||
enum1* = int;
|
||||
enum2* = int;
|
||||
enum4* = int;
|
||||
|
||||
(* if your C compiler uses short enumerations, you'll have to replace the
|
||||
declarations above with
|
||||
enum1* = SHORTINT;
|
||||
enum2* = INTEGER;
|
||||
enum4* = LONGINT;
|
||||
*)
|
||||
|
||||
FILE* = address; (* this is acually a replacement for `FILE*', i.e., for a pointer type *)
|
||||
sizet* = longint;
|
||||
uidt* = int;
|
||||
gidt* = int;
|
||||
|
||||
|
||||
TYPE (* some commonly used C array types *)
|
||||
charPtr1d* = POINTER TO ARRAY OF char;
|
||||
charPtr2d* = POINTER TO ARRAY OF charPtr1d;
|
||||
intPtr1d* = POINTER TO ARRAY OF int;
|
||||
|
||||
TYPE (* C string type, assignment compatible with character arrays and
|
||||
string constants *)
|
||||
string* = POINTER TO ARRAY OF char;
|
||||
|
||||
TYPE
|
||||
Proc* = PROCEDURE;
|
||||
|
||||
END C.
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
(* $Id: C.Mod,v 1.9 1999/10/03 11:46:01 ooc-devel Exp $ *)
|
||||
MODULE C;
|
||||
(* Basic data types for interfacing to C code.
|
||||
Copyright (C) 1997-1998 Michael van Acken
|
||||
|
||||
This module is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License
|
||||
as published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This module is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OOC. If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*)
|
||||
|
||||
IMPORT
|
||||
SYSTEM;
|
||||
|
||||
(*
|
||||
These types are intended to be equivalent to their C counterparts.
|
||||
They may vary depending on your system, but as long as you stick to a 32 Bit
|
||||
Unix they should be fairly safe.
|
||||
*)
|
||||
|
||||
TYPE
|
||||
char* = CHAR;
|
||||
signedchar* = SHORTINT; (* signed char *)
|
||||
shortint* = INTEGER; (* short int *)
|
||||
int* = LONGINT;
|
||||
set* = SET; (* unsigned int, used as set *)
|
||||
longint* = LONGINT; (* long int *)
|
||||
(*longset* = SYSTEM.SET64; *) (* unsigned long, used as set *)
|
||||
address* = LONGINT;
|
||||
float* = REAL;
|
||||
double* = LONGREAL;
|
||||
|
||||
enum1* = int;
|
||||
enum2* = int;
|
||||
enum4* = int;
|
||||
|
||||
(* if your C compiler uses short enumerations, you'll have to replace the
|
||||
declarations above with
|
||||
enum1* = SHORTINT;
|
||||
enum2* = INTEGER;
|
||||
enum4* = LONGINT;
|
||||
*)
|
||||
|
||||
FILE* = address; (* this is acually a replacement for `FILE*', i.e., for a pointer type *)
|
||||
sizet* = longint;
|
||||
uidt* = int;
|
||||
gidt* = int;
|
||||
|
||||
|
||||
TYPE (* some commonly used C array types *)
|
||||
charPtr1d* = POINTER TO ARRAY OF char;
|
||||
charPtr2d* = POINTER TO ARRAY OF charPtr1d;
|
||||
intPtr1d* = POINTER TO ARRAY OF int;
|
||||
|
||||
TYPE (* C string type, assignment compatible with character arrays and
|
||||
string constants *)
|
||||
string* = POINTER TO ARRAY OF char;
|
||||
|
||||
TYPE
|
||||
Proc* = PROCEDURE;
|
||||
|
||||
END C.
|
||||
3790
src/lib/ooc/oocX11.Mod
Normal file
3790
src/lib/ooc/oocX11.Mod
Normal file
File diff suppressed because it is too large
Load diff
225
src/lib/ooc/oocXYplane.Mod
Normal file
225
src/lib/ooc/oocXYplane.Mod
Normal file
|
|
@ -0,0 +1,225 @@
|
|||
MODULE oocXYplane;
|
||||
(*
|
||||
Module XYplane provides some basic facilities for graphics programming. Its
|
||||
interface is kept as simple as possible and is therefore more suited for
|
||||
programming exercises than for serious graphics applications.
|
||||
|
||||
XYplane provides a Cartesian plane of pixels that can be drawn and erased. The
|
||||
plane is mapped to some location on the screen. The variables X and Y indicate
|
||||
its lower left corner, W its width and H its height. All variables are
|
||||
read-only.
|
||||
*)
|
||||
|
||||
IMPORT
|
||||
Out := Console, C := oocC, X11 := oocX11, Xu := oocXutil, SYSTEM;
|
||||
|
||||
|
||||
CONST
|
||||
erase* = 0;
|
||||
draw* = 1;
|
||||
(*sizeSet = MAX (SET)+1;*)
|
||||
sizeSet = 32; (* in ooc SET is always 32 bit *)
|
||||
|
||||
TYPE string = ARRAY 32 OF CHAR;
|
||||
|
||||
VAR
|
||||
X-, Y-, W-, H-: INTEGER;
|
||||
|
||||
display: X11.DisplayPtr;
|
||||
window: X11.Window;
|
||||
fg, bg: X11.GC;
|
||||
|
||||
initialized: BOOLEAN; (* first call to Open sets this to TRUE *)
|
||||
image: X11.XImagePtr;
|
||||
map: POINTER TO ARRAY OF ARRAY OF SET;
|
||||
|
||||
|
||||
PROCEDURE Error (msg: ARRAY OF CHAR);
|
||||
BEGIN
|
||||
Out.String ("Error: ");
|
||||
Out.String (msg);
|
||||
Out.Ln;
|
||||
HALT (1)
|
||||
END Error;
|
||||
|
||||
PROCEDURE Clear*;
|
||||
(* Erases all pixels in the drawing plane. *)
|
||||
VAR
|
||||
x, y: INTEGER;
|
||||
BEGIN
|
||||
X11.XFillRectangle (display, window, bg, 0, 0, W+1, H+1);
|
||||
FOR y := 0 TO SHORT (LEN (map^, 0))-1 DO
|
||||
FOR x := 0 TO SHORT (LEN (map^, 1))-1 DO
|
||||
map[y, x] := {}
|
||||
END
|
||||
END;
|
||||
X11.XFlush (display)
|
||||
END Clear;
|
||||
|
||||
PROCEDURE Dot* (x, y, mode: INTEGER);
|
||||
(* Dot(x, y, m) draws or erases the pixel at the coordinates (x, y) relative to
|
||||
the lower left corner of the plane. If m=draw the pixel is drawn, if m=erase
|
||||
the pixel is erased. *)
|
||||
VAR
|
||||
dummy: C.int;
|
||||
BEGIN
|
||||
IF (x >= X) & (x < X+W) & (y >= Y) & (y < Y+H) THEN
|
||||
dummy := image. f. putpixel(image, x, H-1-y, mode);
|
||||
CASE mode OF
|
||||
| draw:
|
||||
X11.XDrawPoint (display, window, fg, x, H-1-y)
|
||||
| erase:
|
||||
X11.XDrawPoint (display, window, bg, x, H-1-y)
|
||||
END;
|
||||
X11.XFlush (display);
|
||||
END
|
||||
END Dot;
|
||||
|
||||
PROCEDURE IsDot* (x, y: INTEGER): BOOLEAN;
|
||||
(* IsDot(x, y) returns TRUE if the pixel at the coordinates (x, y) relative to
|
||||
the lower left corner of the plane is drawn, otherwise it returns FALSE. *)
|
||||
BEGIN
|
||||
IF (x < X) OR (x >= X+W) OR (y < Y) OR (y >= Y+H) THEN
|
||||
RETURN FALSE
|
||||
ELSE
|
||||
RETURN (image. f. getpixel (image, x, H-1-y) # erase)
|
||||
END
|
||||
END IsDot;
|
||||
|
||||
PROCEDURE Key* (): CHAR;
|
||||
(* Reads the keyboard. If a key was pressed prior to invocation, its
|
||||
character value is returned, otherwise the result is 0X. *)
|
||||
CONST
|
||||
sizeBuffer = 16;
|
||||
VAR
|
||||
event: X11.XEvent;
|
||||
buffer: ARRAY sizeBuffer OF C.char;
|
||||
keySym: X11.KeySym;
|
||||
numChars: C.int;
|
||||
nl : C.longint;
|
||||
|
||||
PROCEDURE Redraw (x0, y0, w0, h0: INTEGER);
|
||||
BEGIN
|
||||
(* clip width and height to size of initial window *)
|
||||
IF (x0+w0 > W) THEN
|
||||
w0 := W-x0
|
||||
END;
|
||||
IF (y0+h0 > H) THEN
|
||||
h0 := H-y0
|
||||
END;
|
||||
IF (w0 > 0) & (h0 > 0) THEN
|
||||
X11.XPutImage (display, window, fg, image, x0, y0, x0, y0, w0, h0)
|
||||
END
|
||||
END Redraw;
|
||||
|
||||
BEGIN
|
||||
WHILE initialized &
|
||||
(X11.XEventsQueued (display, X11.QueuedAfterReading) > 0) DO
|
||||
X11.XNextEvent (display, event);
|
||||
nl := 0;
|
||||
IF (event. type = X11.KeyPress) THEN
|
||||
numChars := Xu.XLookupString (
|
||||
(*event. xkey, buffer, sizeBuffer, keySym, NIL);*)
|
||||
event, buffer, sizeBuffer, keySym, nl);
|
||||
IF (numChars > 0) THEN
|
||||
RETURN SYSTEM.VAL (CHAR, buffer[0])
|
||||
END
|
||||
ELSIF (event. type = X11.Expose) THEN
|
||||
Redraw (SHORT (event. xexpose. x), SHORT (event. xexpose. y),
|
||||
SHORT (event. xexpose. width), SHORT (event. xexpose. height))
|
||||
END
|
||||
END;
|
||||
RETURN 0X
|
||||
END Key;
|
||||
|
||||
PROCEDURE Open*;
|
||||
(* Initializes the drawing plane. *)
|
||||
VAR
|
||||
screen: C.int;
|
||||
parent: X11.Window;
|
||||
bgColor, fgColor: C.longint;
|
||||
gcValue: X11.XGCValues;
|
||||
event: X11.XEvent;
|
||||
x, y: INTEGER;
|
||||
tmpstr : string;
|
||||
(*tmpint : INTEGER;*)
|
||||
scrn : C.int;
|
||||
vis : X11.VisualPtr;
|
||||
BEGIN
|
||||
|
||||
IF ~initialized THEN
|
||||
initialized := TRUE;
|
||||
|
||||
tmpstr[0] := 0X;
|
||||
(*display := X11.XOpenDisplay (NIL);*)
|
||||
display := X11.XOpenDisplay (tmpstr);
|
||||
(*display := X11.OpenDisplay (NIL);*)
|
||||
IF (display = NIL) THEN
|
||||
Error ("Couldn't open display")
|
||||
ELSE
|
||||
screen := X11.XDefaultScreen (display);
|
||||
X := 0; Y := 0;
|
||||
W := SHORT (X11.XDisplayWidth (display, screen));
|
||||
H := SHORT (X11.XDisplayHeight (display, screen));
|
||||
(* adjust ratio W:H to 3:4 [for no paritcular reason] *)
|
||||
IF (W > 3*H DIV 4) THEN
|
||||
W := 3*H DIV 4
|
||||
END;
|
||||
parent := X11.XRootWindow (display, screen);
|
||||
fgColor := X11.XBlackPixel (display, screen);
|
||||
bgColor := X11.XWhitePixel (display, screen);
|
||||
window := X11.XCreateSimpleWindow (display, parent, 0, 0,
|
||||
W, H, 0, 0, bgColor);
|
||||
X11.XStoreName (display, window, "XYplane");
|
||||
X11.XSelectInput (display, window, X11.KeyPressMask+X11.ExposureMask);
|
||||
X11.XMapWindow (display, window);
|
||||
X11.XFlush (display);
|
||||
(*tmpint := W + ((*sizeSet*)32-1);
|
||||
tmpint := tmpint DIV 32(*sizeSet*);*)
|
||||
NEW (map, H, (W+(sizeSet-1)) DIV sizeSet);
|
||||
(*NEW (map, H, tmpint);*)
|
||||
FOR y := 0 TO SHORT (LEN (map^, 0))-1 DO
|
||||
FOR x := 0 TO SHORT (LEN (map^, 1))-1 DO
|
||||
map[y, x] := {}
|
||||
END
|
||||
END;
|
||||
|
||||
scrn := X11.XDefaultScreen (display);
|
||||
vis := X11.XDefaultVisual (display, scrn);
|
||||
image := X11.XCreateImage (display,
|
||||
(*X11.XDefaultVisual (display, X11.XDefaultScreen (display)),*)
|
||||
vis,
|
||||
(*1, X11.XYBitmap, 0, SYSTEM.ADR (map^), W, H, sizeSet, 0);*)
|
||||
1, X11.ZPixmap, 0, SYSTEM.ADR (map^), W, H, (*sizeSet*)32, 0);
|
||||
|
||||
(* wait until the window manager gives its ok to draw things *)
|
||||
X11.XMaskEvent (display, X11.ExposureMask, event);
|
||||
|
||||
(* create graphic context to draw resp. erase a point *)
|
||||
gcValue. foreground := fgColor;
|
||||
gcValue. background := bgColor;
|
||||
fg := X11.XCreateGC (display, parent,
|
||||
X11.GCForeground+X11.GCBackground, gcValue);
|
||||
gcValue. foreground := bgColor;
|
||||
gcValue. background := fgColor;
|
||||
bg := X11.XCreateGC (display, parent,
|
||||
X11.GCForeground+X11.GCBackground, gcValue)
|
||||
END
|
||||
END
|
||||
END Open;
|
||||
|
||||
PROCEDURE Close*;
|
||||
|
||||
BEGIN
|
||||
(* X11.XDestroyImage(image);
|
||||
X11.XDestroyWindow(display, window);*)
|
||||
X11.XCloseDisplay(display);
|
||||
|
||||
END Close;
|
||||
|
||||
|
||||
BEGIN
|
||||
initialized := FALSE;
|
||||
X := 0; Y := 0; W := 0; H := 0;
|
||||
image := NIL; map := NIL
|
||||
END oocXYplane.
|
||||
548
src/lib/ooc/oocXutil.Mod
Normal file
548
src/lib/ooc/oocXutil.Mod
Normal file
|
|
@ -0,0 +1,548 @@
|
|||
MODULE oocXutil (*[INTERFACE "C"]*);
|
||||
|
||||
IMPORT
|
||||
C := oocC, X := oocX11, SYSTEM;
|
||||
|
||||
|
||||
(*
|
||||
* Bitmask returned by XParseGeometry(). Each bit tells if the corresponding
|
||||
* value (x, y, width, height) was found in the parsed string.
|
||||
*)
|
||||
CONST
|
||||
NoValue* = 00000H;
|
||||
XValue* = 00001H;
|
||||
YValue* = 00002H;
|
||||
WidthValue* = 00004H;
|
||||
HeightValue* = 00008H;
|
||||
AllValues* = 0000FH;
|
||||
XNegative* = 00010H;
|
||||
YNegative* = 00020H;
|
||||
|
||||
(*
|
||||
* new version containing basewidth, baseheight, and wingravity fields;
|
||||
* used with WMNORMALHINTS.
|
||||
*)
|
||||
TYPE
|
||||
XSizeHintsPtr* = POINTER TO XSizeHints;
|
||||
XSizeHints* = RECORD
|
||||
flags*: X.ulongmask; (* marks which fields in this structure are defined *)
|
||||
x*, y*: C.int; (* obsolete for new window mgrs, but clients *)
|
||||
width*, height*: C.int; (* should set so old wm's don't mess up *)
|
||||
minwidth*, minheight*: C.int;
|
||||
maxwidth*, maxheight*: C.int;
|
||||
widthinc*, heightinc*: C.int;
|
||||
minaspect*, maxaspect*: RECORD
|
||||
x*: C.int; (* numerator *)
|
||||
y*: C.int; (* denominator *)
|
||||
END;
|
||||
basewidth*, baseheight*: C.int;(* added by ICCCM version 1 *)
|
||||
wingravity*: C.int; (* added by ICCCM version 1 *)
|
||||
END;
|
||||
|
||||
(*
|
||||
* The next block of definitions are for window manager properties that
|
||||
* clients and applications use for communication.
|
||||
*)
|
||||
CONST
|
||||
(* flags argument in size hints *)
|
||||
USPosition* = {0}; (* user specified x, y *)
|
||||
USSize* = {1}; (* user specified width, height *)
|
||||
PPosition* = {2}; (* program specified position *)
|
||||
PSize* = {3}; (* program specified size *)
|
||||
PMinSize* = {4}; (* program specified minimum size *)
|
||||
PMaxSize* = {5}; (* program specified maximum size *)
|
||||
PResizeInc* = {6}; (* program specified resize increments *)
|
||||
PAspect* = {7}; (* program specified min and max aspect ratios *)
|
||||
PBaseSize* = {8}; (* program specified base for incrementing *)
|
||||
PWinGravity* = {9}; (* program specified window gravity *)
|
||||
(* obsolete *)
|
||||
PAllHints* = PPosition+PSize+PMinSize+PMaxSize+PResizeInc+PAspect;
|
||||
|
||||
TYPE
|
||||
XWMHintsPtr* = POINTER TO XWMHints;
|
||||
XWMHints* = RECORD
|
||||
flags*: X.ulongmask;(* marks which fields in this structure are defined *)
|
||||
input*: X.Bool; (* does this application rely on the window manager to
|
||||
get keyboard input? *)
|
||||
initialstate*: C.int; (* see below *)
|
||||
iconpixmap*: X.Pixmap; (* pixmap to be used as icon *)
|
||||
iconwindow*: X.Window; (* window to be used as icon *)
|
||||
iconx*, icony*: C.int; (* initial position of icon *)
|
||||
iconmask*: X.Pixmap; (* icon mask bitmap *)
|
||||
windowgroup*: X.XID; (* id of related window group *)
|
||||
END;
|
||||
|
||||
CONST
|
||||
(* definition for flags of XWMHints *)
|
||||
InputHint* = {0};
|
||||
StateHint* = {1};
|
||||
IconPixmapHint* = {2};
|
||||
IconWindowHint* = {3};
|
||||
IconPositionHint* = {4};
|
||||
IconMaskHint* = {5};
|
||||
WindowGroupHint* = {6};
|
||||
AllHints* = InputHint+StateHint+IconPixmapHint+IconWindowHint+IconPositionHint+IconMaskHint+WindowGroupHint;
|
||||
XUrgencyHint* = {8};
|
||||
(* definitions for initial window state *)
|
||||
WithdrawnState* = 0; (* for windows that are not mapped *)
|
||||
NormalState* = 1; (* most applications want to start this way *)
|
||||
IconicState* = 3; (* application wants to start as an icon *)
|
||||
|
||||
(*
|
||||
* Obsolete states no longer defined by ICCCM
|
||||
*)
|
||||
CONST
|
||||
DontCareState* = 0; (* don't know or care *)
|
||||
ZoomState* = 2; (* application wants to start zoomed *)
|
||||
InactiveState* = 4; (* application believes it is seldom used; *)
|
||||
(* some wm's may put it on inactive menu *)
|
||||
(*
|
||||
* new structure for manipulating TEXT properties; used with WMNAME,
|
||||
* WMICONNAME, WMCLIENTMACHINE, and WMCOMMAND.
|
||||
*)
|
||||
TYPE
|
||||
XTextPropertyPtr* = POINTER TO XTextProperty;
|
||||
XTextProperty* = RECORD
|
||||
value*: C.charPtr1d; (* same as Property routines *)
|
||||
encoding*: X.Atom; (* prop type *)
|
||||
format*: C.int; (* prop data format: 8, 16, or 32 *)
|
||||
nitems*: C.longint; (* number of data items in value *)
|
||||
END;
|
||||
|
||||
CONST
|
||||
XNoMemory* = 1;
|
||||
XLocaleNotSupported* = 2;
|
||||
XConverterNotFound* = 3;
|
||||
|
||||
CONST (* enum XICCEncodingStyle *)
|
||||
XStringStyle* = 0;
|
||||
XCompoundTextStyle* = 1;
|
||||
XTextStyle* = 2;
|
||||
XStdICCTextStyle* = 3;
|
||||
|
||||
TYPE
|
||||
XICCEncodingStyle* = C.enum1;
|
||||
XIconSizePtr* = POINTER TO XIconSize;
|
||||
XIconSize* = RECORD
|
||||
minwidth*, minheight*: C.int;
|
||||
maxwidth*, maxheight*: C.int;
|
||||
widthinc*, heightinc*: C.int;
|
||||
END;
|
||||
XClassHintPtr* = POINTER TO XClassHint;
|
||||
XClassHint* = RECORD
|
||||
resname*: C.charPtr1d;
|
||||
resclass*: C.charPtr1d;
|
||||
END;
|
||||
|
||||
(*
|
||||
* These macros are used to give some sugar to the image routines so that
|
||||
* naive people are more comfortable with them.
|
||||
*)
|
||||
(* can't define any macros here *)
|
||||
|
||||
(*
|
||||
* Compose sequence status structure, used in calling XLookupString.
|
||||
*)
|
||||
TYPE
|
||||
XComposeStatusPtr* = POINTER TO XComposeStatus;
|
||||
XComposeStatus* = RECORD
|
||||
composeptr*: X.XPointer; (* state table pointer *)
|
||||
charsmatched*: C.int; (* match state *)
|
||||
END;
|
||||
|
||||
(*
|
||||
* Keysym macros, used on Keysyms to test for classes of symbols
|
||||
*)
|
||||
(* can't define any macros here *)
|
||||
|
||||
(*
|
||||
* opaque reference to Region data type
|
||||
*)
|
||||
TYPE
|
||||
XRegion* = RECORD END;
|
||||
Region* = POINTER TO XRegion;
|
||||
|
||||
(* Return values from XRectInRegion() *)
|
||||
CONST
|
||||
RectangleOut* = 0;
|
||||
RectangleIn* = 1;
|
||||
RectanglePart* = 2;
|
||||
|
||||
(*
|
||||
* Information used by the visual utility routines to find desired visual
|
||||
* type from the many visuals a display may support.
|
||||
*)
|
||||
TYPE
|
||||
XVisualInfoPtr* = POINTER TO XVisualInfo;
|
||||
XVisualInfo* = RECORD
|
||||
visual*: X.VisualPtr;
|
||||
visualid*: X.VisualID;
|
||||
screen*: C.int;
|
||||
depth*: C.int;
|
||||
class*: C.int;
|
||||
redmask*: X.ulongmask;
|
||||
greenmask*: X.ulongmask;
|
||||
bluemask*: X.ulongmask;
|
||||
colormapsize*: C.int;
|
||||
bitsperrgb*: C.int;
|
||||
END;
|
||||
|
||||
CONST
|
||||
VisualNoMask* = 00H;
|
||||
VisualIDMask* = 01H;
|
||||
VisualScreenMask* = 02H;
|
||||
VisualDepthMask* = 04H;
|
||||
VisualClassMask* = 08H;
|
||||
VisualRedMaskMask* = 010H;
|
||||
VisualGreenMaskMask* = 020H;
|
||||
VisualBlueMaskMask* = 040H;
|
||||
VisualColormapSizeMask* = 080H;
|
||||
VisualBitsPerRGBMask* = 0100H;
|
||||
VisualAllMask* = 01FFH;
|
||||
|
||||
(*
|
||||
* This defines a window manager property that clients may use to
|
||||
* share standard color maps of type RGBCOLORMAP:
|
||||
*)
|
||||
TYPE
|
||||
XStandardColormapPtr* = POINTER TO XStandardColormap;
|
||||
XStandardColormap* = RECORD
|
||||
colormap*: X.Colormap;
|
||||
redmax*: C.longint;
|
||||
redmult*: C.longint;
|
||||
greenmax*: C.longint;
|
||||
greenmult*: C.longint;
|
||||
bluemax*: C.longint;
|
||||
bluemult*: C.longint;
|
||||
basepixel*: C.longint;
|
||||
visualid*: X.VisualID; (* added by ICCCM version 1 *)
|
||||
killid*: X.XID; (* added by ICCCM version 1 *)
|
||||
END;
|
||||
|
||||
CONST
|
||||
ReleaseByFreeingColormap* = 1;(* for killid field above *)
|
||||
|
||||
(*
|
||||
* return codes for XReadBitmapFile and XWriteBitmapFile
|
||||
*)
|
||||
CONST
|
||||
BitmapSuccess* = 0;
|
||||
BitmapOpenFailed* = 1;
|
||||
BitmapFileInvalid* = 2;
|
||||
BitmapNoMemory* = 3;
|
||||
|
||||
|
||||
(****************************************************************
|
||||
*
|
||||
* Context Management
|
||||
*
|
||||
****************************************************************)
|
||||
(* Associative lookup table return codes *)
|
||||
CONST
|
||||
XCSUCCESS* = 0; (* No error. *)
|
||||
XCNOMEM* = 1; (* Out of memory *)
|
||||
XCNOENT* = 2; (* No entry in table *)
|
||||
|
||||
TYPE
|
||||
XContext* = C.int;
|
||||
|
||||
|
||||
(* The following declarations are alphabetized. *)
|
||||
(*
|
||||
PROCEDURE XAllocClassHint* (): XClassHintPtr;
|
||||
PROCEDURE XAllocIconSize* (): XIconSizePtr;
|
||||
PROCEDURE XAllocSizeHints* (): XSizeHintsPtr;
|
||||
PROCEDURE XAllocStandardColormap* (): XStandardColormapPtr;
|
||||
PROCEDURE XAllocWMHints* (): XWMHintsPtr;
|
||||
PROCEDURE XClipBox* (
|
||||
r: Region;
|
||||
VAR rectreturn: X.XRectangle);
|
||||
PROCEDURE XCreateRegion* (): Region;
|
||||
PROCEDURE XDefaultString* (): C.charPtr1d;
|
||||
PROCEDURE XDeleteContext* (
|
||||
display: X.DisplayPtr;
|
||||
rid: X.XID;
|
||||
context: XContext): C.int;
|
||||
PROCEDURE XDestroyRegion* (
|
||||
r: Region);
|
||||
PROCEDURE XEmptyRegion* (
|
||||
r: Region);
|
||||
PROCEDURE XEqualRegion* (
|
||||
r1: Region;
|
||||
r2: Region);
|
||||
PROCEDURE XFindContext* (
|
||||
display: X.DisplayPtr;
|
||||
rid: X.XID;
|
||||
context: XContext;
|
||||
VAR datareturn: X.XPointer): C.int;
|
||||
PROCEDURE XGetClassHint* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR classhintsreturn: XClassHint): X.Status;
|
||||
PROCEDURE XGetIconSizes* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR sizelistreturn: XIconSize;
|
||||
VAR countreturn: C.int): X.Status;
|
||||
PROCEDURE XGetNormalHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR hintsreturn: XSizeHints): X.Status;
|
||||
PROCEDURE XGetRGBColormaps* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR stdcmapreturn: XStandardColormap;
|
||||
VAR countreturn: C.int;
|
||||
property: X.Atom): X.Status;
|
||||
PROCEDURE XGetSizeHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR hintsreturn: XSizeHints;
|
||||
property: X.Atom): X.Status;
|
||||
PROCEDURE XGetStandardColormap* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR colormapreturn: XStandardColormap;
|
||||
property: X.Atom): X.Status;
|
||||
PROCEDURE XGetTextProperty* (
|
||||
display: X.DisplayPtr;
|
||||
window: X.Window;
|
||||
VAR textpropreturn: XTextProperty;
|
||||
property: X.Atom): X.Status;
|
||||
PROCEDURE XGetVisualInfo* (
|
||||
display: X.DisplayPtr;
|
||||
vinfomask: X.ulongmask;
|
||||
vinfotemplate: XVisualInfoPtr;
|
||||
VAR nitemsreturn: C.int): XVisualInfoPtr;
|
||||
PROCEDURE XGetWMClientMachine* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR textpropreturn: XTextProperty): X.Status;
|
||||
PROCEDURE XGetWMHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window): XWMHintsPtr;
|
||||
PROCEDURE XGetWMIconName* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR textpropreturn: XTextProperty): X.Status;
|
||||
PROCEDURE XGetWMName* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR textpropreturn: XTextProperty): X.Status;
|
||||
PROCEDURE XGetWMNormalHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR hintsreturn: XSizeHints;
|
||||
VAR suppliedreturn: C.longint): X.Status;
|
||||
PROCEDURE XGetWMSizeHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR hintsreturn: XSizeHints;
|
||||
VAR suppliedreturn: C.longint;
|
||||
property: X.Atom): X.Status;
|
||||
PROCEDURE XGetZoomHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
VAR zhintsreturn: XSizeHints): X.Status;
|
||||
PROCEDURE XIntersectRegion* (
|
||||
sra, srb, drreturn: Region); (* ??? *)
|
||||
PROCEDURE XConvertCase* (
|
||||
sym: X.KeySym;
|
||||
VAR lower: X.KeySym;
|
||||
VAR upper: X.KeySym);
|
||||
*)
|
||||
PROCEDURE -XLookupString* (
|
||||
(*VAR eventStruct: X.XKeyEvent;*)
|
||||
VAR eventStruct: X.XEvent;
|
||||
VAR bufferReturn: ARRAY OF C.char;
|
||||
bytesBuffer: C.int;
|
||||
VAR keysymReturn: X.KeySym;
|
||||
(*VAR statusInOut(*[NILCOMPAT]*): XComposeStatus): C.int*)
|
||||
VAR statusInOut(*[NILCOMPAT]*): C.longint): C.int
|
||||
"(int)XLookupString(eventStruct, bufferReturn, bytesBuffer, keysymReturn, statusInOut)";
|
||||
(*
|
||||
PROCEDURE XMatchVisualInfo* (
|
||||
display: X.DisplayPtr;
|
||||
screen: C.int;
|
||||
depth: C.int;
|
||||
class: C.int;
|
||||
VAR vinforeturn: XVisualInfo): X.Status;
|
||||
PROCEDURE XOffsetRegion* (
|
||||
r: Region;
|
||||
dx: C.int;
|
||||
dy: C.int);
|
||||
PROCEDURE XPointInRegion* (
|
||||
r: Region;
|
||||
x: C.int;
|
||||
y: C.int): X.Bool;
|
||||
PROCEDURE XPolygonRegion* (
|
||||
points: ARRAY OF X.XPoint;
|
||||
n: C.int;
|
||||
fillrule: C.int): Region;
|
||||
PROCEDURE XRectInRegion* (
|
||||
r: Region;
|
||||
x: C.int;
|
||||
y: C.int;
|
||||
width: C.int;
|
||||
height: C.int): C.int;
|
||||
PROCEDURE XSaveContext* (
|
||||
display: X.DisplayPtr;
|
||||
rid: X.XID;
|
||||
context: XContext;
|
||||
data: ARRAY OF C.char): C.int;
|
||||
PROCEDURE XSetClassHint* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
classhints: XClassHintPtr);
|
||||
PROCEDURE XSetIconSizes* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
sizelist: XIconSizePtr;
|
||||
count: C.int);
|
||||
PROCEDURE XSetNormalHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
hints: XSizeHintsPtr);
|
||||
PROCEDURE XSetRGBColormaps* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
stdcmaps: XStandardColormapPtr;
|
||||
count: C.int;
|
||||
property: X.Atom);
|
||||
PROCEDURE XSetSizeHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
hints: XSizeHintsPtr;
|
||||
property: X.Atom);
|
||||
PROCEDURE XSetStandardProperties* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
windowname: ARRAY OF C.char;
|
||||
iconname: ARRAY OF C.char;
|
||||
iconpixmap: X.Pixmap;
|
||||
argv: C.charPtr2d;
|
||||
argc: C.int;
|
||||
hints: XSizeHintsPtr);
|
||||
PROCEDURE XSetTextProperty* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
textprop: XTextPropertyPtr;
|
||||
property: X.Atom);
|
||||
PROCEDURE XSetWMClientMachine* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
textprop: XTextPropertyPtr);
|
||||
PROCEDURE XSetWMHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
wmhints: XWMHintsPtr);
|
||||
PROCEDURE XSetWMIconName* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
textprop: XTextPropertyPtr);
|
||||
PROCEDURE XSetWMName* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
textprop: XTextPropertyPtr);
|
||||
PROCEDURE XSetWMNormalHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
hints: XSizeHintsPtr);
|
||||
PROCEDURE XSetWMProperties* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
windowname: XTextPropertyPtr;
|
||||
iconname: XTextPropertyPtr;
|
||||
argv: C.charPtr2d;
|
||||
argc: C.int;
|
||||
normalhints: XSizeHintsPtr;
|
||||
wmhints: XWMHintsPtr;
|
||||
classhints: XClassHintPtr);
|
||||
PROCEDURE XmbSetWMProperties* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
windowname: ARRAY OF C.char;
|
||||
iconname: ARRAY OF C.char;
|
||||
argv: C.charPtr2d;
|
||||
argc: C.int;
|
||||
normalhints: XSizeHintsPtr;
|
||||
wmhints: XWMHintsPtr;
|
||||
classhints: XClassHintPtr);
|
||||
PROCEDURE XSetWMSizeHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
hints: XSizeHintsPtr;
|
||||
property: X.Atom);
|
||||
PROCEDURE XSetRegion* (
|
||||
display: X.DisplayPtr;
|
||||
gc: X.GC;
|
||||
r: Region);
|
||||
PROCEDURE XSetStandardColormap* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
colormap: XStandardColormapPtr;
|
||||
property: X.Atom);
|
||||
PROCEDURE XSetZoomHints* (
|
||||
display: X.DisplayPtr;
|
||||
w: X.Window;
|
||||
zhints: XSizeHintsPtr);
|
||||
PROCEDURE XShrinkRegion* (
|
||||
r: Region;
|
||||
dx: C.int;
|
||||
dy: C.int);
|
||||
PROCEDURE XStringListToTextProperty* (
|
||||
list: C.charPtr2d;
|
||||
count: C.int;
|
||||
VAR textpropreturn: XTextProperty): X.Status;
|
||||
PROCEDURE XSubtractRegion* (
|
||||
sra, srb, drreturn: Region); (* ??? *)
|
||||
PROCEDURE XmbTextListToTextProperty* (
|
||||
display: X.DisplayPtr;
|
||||
list: C.charPtr2d;
|
||||
count: C.int;
|
||||
style: XICCEncodingStyle;
|
||||
VAR textpropreturn: XTextProperty): C.int;
|
||||
PROCEDURE XwcTextListToTextProperty* (
|
||||
display: X.DisplayPtr;
|
||||
list: ARRAY OF X.wchart;
|
||||
count: C.int;
|
||||
style: XICCEncodingStyle;
|
||||
VAR textpropreturn: XTextProperty): C.int;
|
||||
PROCEDURE XwcFreeStringList* (
|
||||
list: X.wcharPtr2d);
|
||||
PROCEDURE XTextPropertyToStringList* (
|
||||
textprop: XTextPropertyPtr;
|
||||
VAR listreturn: C.charPtr2d;
|
||||
VAR countreturn: C.int): X.Status;
|
||||
PROCEDURE XTextPropertyToTextList* (
|
||||
display: X.DisplayPtr;
|
||||
textprop: XTextPropertyPtr;
|
||||
VAR listreturn: C.charPtr2d;
|
||||
VAR countreturn: C.int): X.Status;
|
||||
PROCEDURE XwcTextPropertyToTextList* (
|
||||
display: X.DisplayPtr;
|
||||
textprop: XTextPropertyPtr;
|
||||
VAR listreturn: X.wcharPtr2d;
|
||||
VAR countreturn: C.int): X.Status;
|
||||
PROCEDURE XUnionRectWithRegion* (
|
||||
rectangle: X.XRectanglePtr;
|
||||
srcregion: Region;
|
||||
destregionreturn: Region); (* ??? *)
|
||||
PROCEDURE XUnionRegion* (
|
||||
sra, srb, drreturn: Region); (* ??? *)
|
||||
PROCEDURE XWMGeometry* (
|
||||
display: X.DisplayPtr;
|
||||
screennumber: C.int;
|
||||
usergeometry: ARRAY OF C.char;
|
||||
defaultgeometry: ARRAY OF C.char;
|
||||
borderwidth: C.int;
|
||||
hints: XSizeHintsPtr;
|
||||
VAR xreturn: C.int;
|
||||
VAR yreturn: C.int;
|
||||
VAR widthreturn: C.int;
|
||||
VAR heightreturn: C.int;
|
||||
VAR gravityreturn: C.int): C.int;
|
||||
PROCEDURE XXorRegion* (
|
||||
sra, srb, drreturn: Region); (* ??? *)
|
||||
*)
|
||||
END oocXutil.
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
(* $Id: C.Mod,v 1.9 1999/10/03 11:46:01 ooc-devel Exp $ *)
|
||||
MODULE C;
|
||||
(* Basic data types for interfacing to C code.
|
||||
Copyright (C) 1997-1998 Michael van Acken
|
||||
|
||||
This module is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License
|
||||
as published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This module is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OOC. If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*)
|
||||
|
||||
IMPORT
|
||||
SYSTEM;
|
||||
|
||||
(*
|
||||
These types are intended to be equivalent to their C counterparts.
|
||||
They may vary depending on your system, but as long as you stick to a 32 Bit
|
||||
Unix they should be fairly safe.
|
||||
*)
|
||||
|
||||
TYPE
|
||||
char* = CHAR;
|
||||
signedchar* = SHORTINT; (* signed char *)
|
||||
shortint* = INTEGER; (* short int *)
|
||||
int* = LONGINT;
|
||||
set* = SET; (* unsigned int, used as set *)
|
||||
longint* = LONGINT; (* long int *)
|
||||
(*longset* = SYSTEM.SET64; *) (* unsigned long, used as set *)
|
||||
address* = LONGINT;
|
||||
float* = REAL;
|
||||
double* = LONGREAL;
|
||||
|
||||
enum1* = int;
|
||||
enum2* = int;
|
||||
enum4* = int;
|
||||
|
||||
(* if your C compiler uses short enumerations, you'll have to replace the
|
||||
declarations above with
|
||||
enum1* = SHORTINT;
|
||||
enum2* = INTEGER;
|
||||
enum4* = LONGINT;
|
||||
*)
|
||||
|
||||
FILE* = address; (* this is acually a replacement for `FILE*', i.e., for a pointer type *)
|
||||
sizet* = longint;
|
||||
uidt* = int;
|
||||
gidt* = int;
|
||||
|
||||
|
||||
TYPE (* some commonly used C array types *)
|
||||
charPtr1d* = POINTER TO ARRAY OF char;
|
||||
charPtr2d* = POINTER TO ARRAY OF charPtr1d;
|
||||
intPtr1d* = POINTER TO ARRAY OF int;
|
||||
|
||||
TYPE (* C string type, assignment compatible with character arrays and
|
||||
string constants *)
|
||||
string* = POINTER TO ARRAY OF char;
|
||||
|
||||
TYPE
|
||||
Proc* = PROCEDURE;
|
||||
|
||||
END C.
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
(* $Id: C.Mod,v 1.9 1999/10/03 11:46:01 ooc-devel Exp $ *)
|
||||
MODULE C;
|
||||
(* Basic data types for interfacing to C code.
|
||||
Copyright (C) 1997-1998 Michael van Acken
|
||||
|
||||
This module is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License
|
||||
as published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This module is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OOC. If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*)
|
||||
|
||||
IMPORT
|
||||
SYSTEM;
|
||||
|
||||
(*
|
||||
These types are intended to be equivalent to their C counterparts.
|
||||
They may vary depending on your system, but as long as you stick to a 32 Bit
|
||||
Unix they should be fairly safe.
|
||||
*)
|
||||
|
||||
TYPE
|
||||
char* = CHAR;
|
||||
signedchar* = SHORTINT; (* signed char *)
|
||||
shortint* = INTEGER; (* short int *)
|
||||
int* = LONGINT;
|
||||
set* = SET; (* unsigned int, used as set *)
|
||||
longint* = LONGINT; (* long int *)
|
||||
(*longset* = SYSTEM.SET64; *) (* unsigned long, used as set *)
|
||||
address* = LONGINT;
|
||||
float* = REAL;
|
||||
double* = LONGREAL;
|
||||
|
||||
enum1* = int;
|
||||
enum2* = int;
|
||||
enum4* = int;
|
||||
|
||||
(* if your C compiler uses short enumerations, you'll have to replace the
|
||||
declarations above with
|
||||
enum1* = SHORTINT;
|
||||
enum2* = INTEGER;
|
||||
enum4* = LONGINT;
|
||||
*)
|
||||
|
||||
FILE* = address; (* this is acually a replacement for `FILE*', i.e., for a pointer type *)
|
||||
sizet* = longint;
|
||||
uidt* = int;
|
||||
gidt* = int;
|
||||
|
||||
|
||||
TYPE (* some commonly used C array types *)
|
||||
charPtr1d* = POINTER TO ARRAY OF char;
|
||||
charPtr2d* = POINTER TO ARRAY OF charPtr1d;
|
||||
intPtr1d* = POINTER TO ARRAY OF int;
|
||||
|
||||
TYPE (* C string type, assignment compatible with character arrays and
|
||||
string constants *)
|
||||
string* = POINTER TO ARRAY OF char;
|
||||
|
||||
TYPE
|
||||
Proc* = PROCEDURE;
|
||||
|
||||
END C.
|
||||
|
|
@ -1,71 +0,0 @@
|
|||
(* $Id: C.Mod,v 1.9 1999/10/03 11:46:01 ooc-devel Exp $ *)
|
||||
MODULE C;
|
||||
(* Basic data types for interfacing to C code.
|
||||
Copyright (C) 1997-1998 Michael van Acken
|
||||
|
||||
This module is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public License
|
||||
as published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This module is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with OOC. If not, write to the Free Software Foundation,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*)
|
||||
|
||||
IMPORT
|
||||
SYSTEM;
|
||||
|
||||
(*
|
||||
These types are intended to be equivalent to their C counterparts.
|
||||
They may vary depending on your system, but as long as you stick to a 32 Bit
|
||||
Unix they should be fairly safe.
|
||||
*)
|
||||
|
||||
TYPE
|
||||
char* = CHAR;
|
||||
signedchar* = SHORTINT; (* signed char *)
|
||||
(*shortint* = INTEGER;*) (* 2 bytes on x64_64 *) (* short int *)
|
||||
int* = INTEGER;
|
||||
set* = SET; (* unsigned int, used as set *)
|
||||
longint* = LONGINT; (* long int *)
|
||||
(*longset* = SYSTEM.SET64; *) (* unsigned long, used as set *)
|
||||
address* = LONGINT; (*SYSTEM.ADDRESS;*)
|
||||
float* = REAL;
|
||||
double* = LONGREAL;
|
||||
|
||||
enum1* = int;
|
||||
enum2* = int;
|
||||
enum4* = int;
|
||||
|
||||
(* if your C compiler uses short enumerations, you'll have to replace the
|
||||
declarations above with
|
||||
enum1* = SHORTINT;
|
||||
enum2* = INTEGER;
|
||||
enum4* = LONGINT;
|
||||
*)
|
||||
|
||||
FILE* = address; (* this is acually a replacement for `FILE*', i.e., for a pointer type *)
|
||||
sizet* = longint;
|
||||
uidt* = int;
|
||||
gidt* = int;
|
||||
|
||||
|
||||
TYPE (* some commonly used C array types *)
|
||||
charPtr1d* = POINTER TO ARRAY OF char;
|
||||
charPtr2d* = POINTER TO ARRAY OF charPtr1d;
|
||||
intPtr1d* = POINTER TO ARRAY OF int;
|
||||
|
||||
TYPE (* C string type, assignment compatible with character arrays and
|
||||
string constants *)
|
||||
string* = POINTER (*[CSTRING]*) TO ARRAY OF char;
|
||||
|
||||
TYPE
|
||||
Proc* = PROCEDURE;
|
||||
|
||||
END C.
|
||||
15
src/test/X11/makefile
Normal file
15
src/test/X11/makefile
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
CFLAGS=-lX11
|
||||
export CFLAGS
|
||||
|
||||
VOC = $(SETPATH) /opt/voc/bin/voc
|
||||
|
||||
all:
|
||||
$(VOC) -m test.Mod
|
||||
#$(VOC) -Cm test.Mod
|
||||
#gcc -o test test.o -fPIC -g -I /opt/voc-1.0/src/lib/system/gnuc/x86_64 -I /opt/voc-1.0/lib/voc/obj -lVishapOberon -L. -L/opt/voc-1.0/lib -lX11
|
||||
|
||||
clean:
|
||||
rm *.c
|
||||
rm *.h
|
||||
rm *.o
|
||||
rm *.sym
|
||||
29
src/test/X11/test.Mod
Normal file
29
src/test/X11/test.Mod
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
MODULE test;
|
||||
|
||||
IMPORT p := oocXYplane, Out := Console;
|
||||
VAR ch : CHAR;
|
||||
i : INTEGER;
|
||||
BEGIN
|
||||
|
||||
p.Open;
|
||||
|
||||
(*p.Clear;*)
|
||||
FOR i := 1 TO 555 DO
|
||||
p.Dot(i,300 ,p.draw)
|
||||
END;
|
||||
(*
|
||||
FOR i := 100 TO 500 DO
|
||||
p.Dot(i,300 ,p.erase)
|
||||
END;
|
||||
*)
|
||||
|
||||
IF p.IsDot (5, 300) THEN Out.String("Yes") ELSE Out.String("No") END; Out.Ln;
|
||||
IF p.IsDot (5, 500) THEN Out.String("Yes") ELSE Out.String("No") END; Out.Ln;
|
||||
|
||||
REPEAT
|
||||
ch := p.Key();
|
||||
UNTIL ch # 0X;
|
||||
|
||||
p.Close;
|
||||
|
||||
END test.
|
||||
Loading…
Add table
Add a link
Reference in a new issue