56 lines
1.5 KiB
Python
56 lines
1.5 KiB
Python
# -*- coding: utf-8 -*-
|
||
# Copyright: Damien Elmes <oldanki@ichi2.net>
|
||
# License: GNU GPL, version 3 or later; http://www.gnu.org/copyleft/gpl.html
|
||
|
||
"""\
|
||
Fonts - mapping to/from platform-specific fonts
|
||
==============================================================
|
||
"""
|
||
|
||
import sys
|
||
|
||
# set this to 'all', to get all fonts in a list
|
||
policy="platform"
|
||
|
||
mapping = [
|
||
[u"Mincho", u"MS Mincho", "win32"],
|
||
[u"Mincho", u"MS 明朝", "win32"],
|
||
[u"Mincho", u"ヒラギノ明朝 Pro W3", "mac"],
|
||
[u"Mincho", u"Kochi Mincho", "linux"],
|
||
[u"Mincho", u"東風明朝", "linux"],
|
||
]
|
||
|
||
def platform():
|
||
if sys.platform == "win32":
|
||
return "win32"
|
||
elif sys.platform.startswith("darwin"):
|
||
return "mac"
|
||
else:
|
||
return "linux"
|
||
|
||
def toCanonicalFont(family):
|
||
"Turn a platform-specific family into a canonical one."
|
||
for (s, p, type) in mapping:
|
||
if family == p:
|
||
return s
|
||
return family
|
||
|
||
def toPlatformFont(family):
|
||
"Turn a canonical font into a platform-specific one."
|
||
if policy == "all":
|
||
return allFonts(family)
|
||
ltype = platform()
|
||
for (s, p, type) in mapping:
|
||
if family == s and type == ltype:
|
||
return p
|
||
return family
|
||
|
||
def substitutions():
|
||
"Return a tuple mapping canonical fonts to platform ones."
|
||
type = platform()
|
||
return [(s, p) for (s, p, t) in mapping if t == type]
|
||
|
||
def allFonts(family):
|
||
ret = ", ".join([p for (s, p, t) in mapping if s == family])
|
||
return ret or family
|