but I was unable to test it (Hi Adam ;-) git-svn-id: svn://svn.code.sf.net/p/fonttools/code/trunk@154 4cde692c-a291-49d1-8350-778aa11640f8
102 lines
3.2 KiB
Python
102 lines
3.2 KiB
Python
# ttx_shellext_win32
|
|
# v1.04 matches ttLib 1.0a6
|
|
|
|
# This script installs a Windows 9x/NT shell extension for TTX
|
|
# After installing it, click with the right mouse button on a TrueType file
|
|
# and choose "[TTX] Convert current TrueType to XML" from the context menu
|
|
# to start the ttDump.py program with the selected TrueType file
|
|
# or "[TTX] Convert all TrueType to XML" to start the ttDump.py program
|
|
# with all TrueType files in the current directory.
|
|
# The other way around works analogically.
|
|
|
|
# v1.0 written 26.08.1999 by Adam Twardoch <twardoch@font.org>
|
|
# v1.01 revised 26.01.2000 by Adam Twardoch <twardoch@font.org>
|
|
# v1.03 revised 16.02.2000 to match ttLib 1.0a6
|
|
# v1.04 revised 29.04.2000 to match FontTools.pth
|
|
# v1.05 revised 10.08.2001 cleaned up regtext for clarity (jvr)
|
|
|
|
import sys, os, string, tempfile
|
|
|
|
if not sys.platform == 'win32':
|
|
print 'This program is for Win32 (Windows 9x/NT) systems only.'
|
|
sys.exit(2)
|
|
|
|
# get the folder where Python resides
|
|
pythondir = sys.exec_prefix
|
|
|
|
# get the folder where the TTX scripts reside
|
|
pth_file = open(os.path.join(sys.exec_prefix, "FontTools.pth"))
|
|
ttxdir = os.path.dirname(pth_file.read())
|
|
pth_file.close()
|
|
|
|
# escape backslashes (regedit.exe requires that the reg files are formatted that way)
|
|
pythondir = string.replace(pythondir, '\\', '\\\\')
|
|
ttxdir = string.replace(ttxdir, '\\', '\\\\')
|
|
|
|
# Prepare the text to write to the temporary reg file
|
|
regtext = r"""REGEDIT4
|
|
|
|
[HKEY_CLASSES_ROOT\.ttf]
|
|
@="ttffile"
|
|
|
|
[HKEY_CLASSES_ROOT\ttffile\shell]
|
|
@=""
|
|
|
|
[HKEY_CLASSES_ROOT\ttffile\shell\[TTX] Convert current TrueType to XML]
|
|
@="[TTX] Convert current TrueType to XML"
|
|
|
|
[HKEY_CLASSES_ROOT\ttffile\shell\[TTX] Convert current TrueType to XML\command]
|
|
@="\"%(pythondir)s\\python.exe\" \"%(ttxdir)s\\ttDump.py\" \"%%1\""
|
|
|
|
[HKEY_CLASSES_ROOT\ttffile\shell\[TTX] Convert all TrueType to XML]
|
|
@="[TTX] Convert all TrueType to XML"
|
|
|
|
[HKEY_CLASSES_ROOT\ttffile\shell\[TTX] Convert all TrueType to XML\command]
|
|
@="command.com /c for %%%%I in (*.ttf) do \"%(pythondir)s\\python.exe\" \"%(ttxdir)s\\ttDump.py\" \"%%%%I\""
|
|
|
|
[HKEY_CLASSES_ROOT\.ttx]
|
|
@="ttxfile"
|
|
|
|
[HKEY_CLASSES_ROOT\ttxfile]
|
|
@="TTX Document"
|
|
|
|
[HKEY_CLASSES_ROOT\ttxfile\shell]
|
|
@=""
|
|
|
|
[HKEY_CLASSES_ROOT\ttxfile\shell\[TTX] Convert current XML to TrueType]
|
|
@="[TTX] Convert current XML to TrueType"
|
|
|
|
[HKEY_CLASSES_ROOT\ttxfile\shell\[TTX] Convert current XML to TrueType\command]
|
|
@="\"%(pythondir)s\\python.exe\" \"%(ttxdir)s\\ttCompile.py\" \"%%1\""
|
|
|
|
[HKEY_CLASSES_ROOT\ttxfile\shell\[TTX] Convert all XML to TrueType]
|
|
@="[TTX] Convert all XML to TrueType"
|
|
|
|
[HKEY_CLASSES_ROOT\ttxfile\shell\[TTX] Convert all XML to TrueType\command]
|
|
@="command.com /c for %%%%I in (*.ttx) do \"%(pythondir)s\\python.exe\" \"%(ttxdir)s\\ttCompile.py\" \"%%%%I\""
|
|
|
|
""" % globals()
|
|
|
|
|
|
# Create the temporary reg file which will be joined into the Windows registry
|
|
reg_file_name = os.path.join(os.path.dirname(tempfile.mktemp()), "~ttxtemp.reg")
|
|
reg_file = open(reg_file_name, "w")
|
|
reg_file.write(regtext)
|
|
reg_file.close()
|
|
|
|
# Join the temporary reg file into the Windows registry
|
|
execline = '%windir%\\regedit.exe ' + reg_file_name
|
|
|
|
file = os.popen(execline)
|
|
output = ""
|
|
while 1:
|
|
chunk = file.read(1000)
|
|
if not chunk:
|
|
break
|
|
output = output + chunk
|
|
|
|
print output
|
|
|
|
os.remove(reg_file_name)
|
|
|