constants.

This commit is contained in:
Kelvin Sherlock 2020-08-01 20:39:39 -04:00
parent b9bc4a32e5
commit c4c5874edc
2 changed files with 163 additions and 16 deletions

38
cli.py
View File

@ -15,16 +15,19 @@ from base import rObject
def rez_scope(): def rez_scope():
# import all the resource types and constants into
# a dictionary to be the exec() local scope
import base import base
import window import window
import control import control
import menu import menu
import sound import sound
import rect import rect
import constants
# could do: mod = importlib.import_module("base"), etc.
scope = {} scope = {}
for mod in (base, window, control, menu, sound, rect): for mod in (base, window, control, menu, sound, rect, constants):
if hasattr(mod, '__all__'): keys = mod.__all__ if hasattr(mod, '__all__'): keys = mod.__all__
else: keys = [x for x in dir(mod) if x[0] != '_'] else: keys = [x for x in dir(mod) if x[0] != '_']
@ -35,8 +38,7 @@ def rez_scope():
def execute(filename): def execute(filename, scope):
scope = rez_scope()
try: try:
with open(filename, 'r', encoding="utf-8") as f: with open(filename, 'r', encoding="utf-8") as f:
src = f.read() src = f.read()
@ -49,19 +51,23 @@ def execute(filename):
return False return False
if __name__ == '__main__': if __name__ == '__main__':
p = argparse.ArgumentParser(prog='prez') p = argparse.ArgumentParser(prog='prez')
p.add_argument('files', metavar='file', type=str, nargs='+') p.add_argument('files', metavar='file', type=str, nargs='+')
p.add_argument('--rez', action='store_true', p.add_argument('--rez', action='store_true', help="Generate REZ code")
help="Generate REZ code") p.add_argument('-D', type=str, nargs='+', help='define a variable')
opts = p.parse_args() p.add_argument('--df', action="store_true", help="Write to a regular file")
p.add_argument('-o', metavar='file', type=str, help="Specify output file")
for f in opts.files: opts = p.parse_args()
ok = execute(f)
scope = rez_scope()
for f in opts.files:
ok = execute(f, scope)
print("/* Generated on {} */".format(time.ctime())) print("/* Generated on {} */".format(time.ctime()))
print('#include "types.rez"\n') print('#include "types.rez"\n')
rObject.dump_rez() rObject.dump_rez()
rObject.dump_exports() rObject.dump_exports()
sys.exit(0) sys.exit(0)

141
constants.py Normal file
View File

@ -0,0 +1,141 @@
# resource attributes
attrPage = 0x0004
attrNoSpec = 0x0008
attrNoCross = 0x0010
# resChanged = 0x0020
resPreLoad = 0x0040
resProtected = 0x0080
attrPurge1 = 0x0100
attrPurge2 = 0x0200
attrPurge3 = 0x0300
resAbsLoad = 0x0400
resConverter = 0x0800
attrFixed = 0x4000
attrLocked = 0x8000
attrPurge = 0x0300
# window constants
fHilited = 0x0001
fZoomed = 0x0002
fAllocated = 0x0004
fCtlTie = 0x0008
fInfo = 0x0010
fVis = 0x0020
fQContent = 0x0040
fMove = 0x0080
fZoom = 0x0100
fFlex = 0x0200
fGrow = 0x0400
fBScroll = 0x0800
fRScroll = 0x1000
fAlert = 0x2000
fClose = 0x4000
fTitle = 0x8000
# menu item flags (duplicate menu flags.)
rMIPlain = 0x0000
rMIBold = 0x0001
rMIItalic = 0x0002
rMIUnderline = 0x0004
rMIXOr = 0x0020
rMIDivider = 0x0040
rMIDisabled = 0x0080
rMIItemStruct = 0x0400
rMIOutline = 0x0800
rMIShadow = 0x1000
# menu flags
rmAllowCache = 0x0008
rmCustom = 0x0010
rmNo_Xor = 0x0020
rmDisabled = 0x0080
# common flags
ctlInvis = 0x0080
ctlVisible = 0x0000
ctlInactive = 0xFF00
# more flags
ctlTarget = 0x8000
ctlCanBeTarget = 0x4000
ctlWantsEvents = 0x2000
CtlWantEvents = 0x2000 # spelling variant
ctlProcNotPtr = 0x1000
ctlTellAboutSize = 0x0800
ctlIsMultiPart = 0x0400
# stat text control flags
fSquishText = 0x0010 # 6.0.1
fTextCanDim = 0x0008 # 6.0
fBlastText = 0x0004 # 6.0
fSubstituteText = 0x0002
fSubTextIsPascal = 0x0001
fSubTextIsC = 0x0000
# simple button flags
NormalButton = 0x0000
DefaultButton = 0x0001
SquareButton = 0x0002
SquareShadowButton = 0x0003
# Text Edit Control text flags
fNotControl = 0x80000000
fSingleFormat = 0x40000000
fSingleStyle = 0x20000000
fNoWordWrap = 0x10000000
fNoScroll = 0x08000000
fReadOnly = 0x04000000
fSmartCutPaste = 0x02000000
fTabSwitch = 0x01000000
fDrawBounds = 0x00800000
fColorHilight = 0x00400000
fGrowRuler = 0x00200000
fDisableSelection = 0x00100000
fDrawInactiveSelection = 0x00080000
# LE Text Box 2 style. bytes since non-ascii chars involved.
TBStylePlain = b"\x01S\x00\x00" # $01 $53 $00 $00
TBStyleBold = b"\x01S\x01\x00" # $01 $53 $00 $00
TBStyleItalic = b"\x01S\x02\x00" # $01 $53 $00 $00
TBStyleUnderline = b"\x01S\x04\x00" # $01 $53 $00 $00
TBStyleOutline = b"\x01S\x08\x00" # $01 $53 $00 $00
TBStyleShadow = b"\x01S\x10\x00" # $01 $53 $00 $00
TBStyleHEX = b"\x01S"
TBForeColor = b"\x01C"
TBBackColor = b"\x01B"
TBColor0 = b"\x00\x00"
TBColor1 = b"\x11\x11"
TBColor2 = b"\x22\x22"
TBColor3 = b"\x33\x33"
TBColor4 = b"\x44\x44"
TBColor5 = b"\x55\x55"
TBColor6 = b"\x66\x66"
TBColor7 = b"\x77\x77"
TBColor8 = b"\x88\x88"
TBColor9 = b"\x99\x99"
TBColorA = b"\xAA\xAA"
TBColorB = b"\xBB\xBB"
TBColorC = b"\xCC\xCC"
TBColorD = b"\xDD\xDD"
TBColorE = b"\xEE\xEE"
TBColorF = b"\xFF\xFF"
TBLeftJust = b"\x01J\x00\x00"
TBCenterJust = b"\x01J\x01\x00"
TBRightJust = b"\x01J\xFF\xFF"
TBFillJust = b"\x01J\x02\x00"
TBLeftMargin = b"\x01L"
TBRightMargin = b"\x01M"
TBSpExtra = b"\x01X"
TBEndOfLine = b"\r"
TBFont = b"\x01F"
TBShaston = b"\xFE\xFF"
TBNewYork = b"\x02\x00"
TBGeneva = b"\x03\x00"
TBVenice = b"\x05\x00"
TBTimes = b"\x14\x00"
TBHelvetica = b"\x15\x00"
TBCourier = b"\x16\x00"