urwid isn't a submodule any more
This commit is contained in:
450
urwid/font.py
Executable file
450
urwid/font.py
Executable file
@@ -0,0 +1,450 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Urwid BigText fonts
|
||||
# Copyright (C) 2004-2006 Ian Ward
|
||||
#
|
||||
# This library 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.1 of the License, or (at your option) any later version.
|
||||
#
|
||||
# This library 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 this library; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#
|
||||
# Urwid web site: http://excess.org/urwid/
|
||||
|
||||
from urwid.escape import SAFE_ASCII_DEC_SPECIAL_RE
|
||||
from urwid.util import apply_target_encoding, str_util
|
||||
from urwid.canvas import TextCanvas
|
||||
|
||||
|
||||
def separate_glyphs(gdata, height):
|
||||
"""return (dictionary of glyphs, utf8 required)"""
|
||||
gl = gdata.split("\n")
|
||||
del gl[0]
|
||||
del gl[-1]
|
||||
for g in gl:
|
||||
assert "\t" not in g
|
||||
assert len(gl) == height+1, repr(gdata)
|
||||
key_line = gl[0]
|
||||
del gl[0]
|
||||
c = None # current character
|
||||
key_index = 0 # index into character key line
|
||||
end_col = 0 # column position at end of glyph
|
||||
start_col = 0 # column position at start of glyph
|
||||
jl = [0]*height # indexes into lines of gdata (gl)
|
||||
dout = {}
|
||||
utf8_required = False
|
||||
while True:
|
||||
if c is None:
|
||||
if key_index >= len(key_line):
|
||||
break
|
||||
c = key_line[key_index]
|
||||
if key_index < len(key_line) and key_line[key_index] == c:
|
||||
end_col += str_util.get_width(ord(c))
|
||||
key_index += 1
|
||||
continue
|
||||
out = []
|
||||
for k in range(height):
|
||||
l = gl[k]
|
||||
j = jl[k]
|
||||
y = 0
|
||||
fill = 0
|
||||
while y < end_col - start_col:
|
||||
if j >= len(l):
|
||||
fill = end_col - start_col - y
|
||||
break
|
||||
y += str_util.get_width(ord(l[j]))
|
||||
j += 1
|
||||
assert y + fill == end_col - start_col, \
|
||||
repr((y, fill, end_col))
|
||||
|
||||
segment = l[jl[k]:j]
|
||||
if not SAFE_ASCII_DEC_SPECIAL_RE.match(segment):
|
||||
utf8_required = True
|
||||
|
||||
out.append(segment + " " * fill)
|
||||
jl[k] = j
|
||||
|
||||
start_col = end_col
|
||||
dout[c] = (y + fill, out)
|
||||
c = None
|
||||
return dout, utf8_required
|
||||
|
||||
_all_fonts = []
|
||||
def get_all_fonts():
|
||||
"""
|
||||
Return a list of (font name, font class) tuples.
|
||||
"""
|
||||
return _all_fonts[:]
|
||||
|
||||
def add_font(name, cls):
|
||||
_all_fonts.append((name, cls))
|
||||
|
||||
|
||||
class Font(object):
|
||||
def __init__(self):
|
||||
assert self.height
|
||||
assert self.data
|
||||
self.char = {}
|
||||
self.canvas = {}
|
||||
self.utf8_required = False
|
||||
for gdata in self.data:
|
||||
self.add_glyphs(gdata)
|
||||
|
||||
|
||||
def add_glyphs(self, gdata):
|
||||
d, utf8_required = separate_glyphs(gdata, self.height)
|
||||
self.char.update(d)
|
||||
self.utf8_required |= utf8_required
|
||||
|
||||
def characters(self):
|
||||
l = self.char.keys()
|
||||
l.sort()
|
||||
return "".join(l)
|
||||
|
||||
def char_width(self, c):
|
||||
if c in self.char:
|
||||
return self.char[c][0]
|
||||
return 0
|
||||
|
||||
def char_data(self, c):
|
||||
return self.char[c][1]
|
||||
|
||||
def render(self, c):
|
||||
if c in self.canvas:
|
||||
return self.canvas[c]
|
||||
width, l = self.char[c]
|
||||
tl = []
|
||||
csl = []
|
||||
for d in l:
|
||||
t, cs = apply_target_encoding(d)
|
||||
tl.append(t)
|
||||
csl.append(cs)
|
||||
canv = TextCanvas(tl, None, csl, maxcol=width,
|
||||
check_width=False)
|
||||
self.canvas[c] = canv
|
||||
return canv
|
||||
|
||||
|
||||
|
||||
#safe_palette = u"┘┐┌└┼─├┤┴┬│"
|
||||
#more_palette = u"═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬○"
|
||||
#block_palette = u"▄#█#▀#▌#▐#▖#▗#▘#▙#▚#▛#▜#▝#▞#▟"
|
||||
|
||||
|
||||
class Thin3x3Font(Font):
|
||||
height = 3
|
||||
data = [u"""
|
||||
000111222333444555666777888999 !
|
||||
┌─┐ ┐ ┌─┐┌─┐ ┐┌─ ┌─ ┌─┐┌─┐┌─┐ │
|
||||
│ │ │ ┌─┘ ─┤└─┼└─┐├─┐ ┼├─┤└─┤ │
|
||||
└─┘ ┴ └─ └─┘ ┴ ─┘└─┘ ┴└─┘ ─┘ .
|
||||
""", ur"""
|
||||
"###$$$%%%'*++,--.///:;==???[[\\\]]^__`
|
||||
" ┼┼┌┼┐O /' /.. _┌─┐┌ \ ┐^ `
|
||||
┼┼└┼┐ / * ┼ ─ / ., _ ┌┘│ \ │
|
||||
└┼┘/ O , ./ . └ \ ┘ ──
|
||||
"""]
|
||||
add_font("Thin 3x3",Thin3x3Font)
|
||||
|
||||
class Thin4x3Font(Font):
|
||||
height = 3
|
||||
data = Thin3x3Font.data + [u"""
|
||||
0000111122223333444455556666777788889999 ####$$$$
|
||||
┌──┐ ┐ ┌──┐┌──┐ ┐┌── ┌── ┌──┐┌──┐┌──┐ ┼─┼┌┼┼┐
|
||||
│ │ │ ┌──┘ ─┤└──┼└──┐├──┐ ┼├──┤└──┤ ┼─┼└┼┼┐
|
||||
└──┘ ┴ └── └──┘ ┴ ──┘└──┘ ┴└──┘ ──┘ └┼┼┘
|
||||
"""]
|
||||
add_font("Thin 4x3",Thin4x3Font)
|
||||
|
||||
class HalfBlock5x4Font(Font):
|
||||
height = 4
|
||||
data = [u"""
|
||||
00000111112222233333444445555566666777778888899999 !!
|
||||
▄▀▀▄ ▄█ ▄▀▀▄ ▄▀▀▄ ▄ █ █▀▀▀ ▄▀▀ ▀▀▀█ ▄▀▀▄ ▄▀▀▄ █
|
||||
█ █ █ ▄▀ ▄▀ █▄▄█ █▄▄ █▄▄ ▐▌ ▀▄▄▀ ▀▄▄█ █
|
||||
█ █ █ ▄▀ ▄ █ █ █ █ █ █ █ █ █ ▀
|
||||
▀▀ ▀▀▀ ▀▀▀▀ ▀▀ ▀ ▀▀▀ ▀▀ ▀ ▀▀ ▀▀ ▀
|
||||
""", u'''
|
||||
"""######$$$$$$%%%%%&&&&&((()))******++++++,,,-----..////:::;;
|
||||
█▐▌ █ █ ▄▀█▀▄ ▐▌▐▌ ▄▀▄ █ █ ▄ ▄ ▄ ▐▌
|
||||
▀█▀█▀ ▀▄█▄ █ ▀▄▀ ▐▌ ▐▌ ▄▄█▄▄ ▄▄█▄▄ ▄▄▄▄ █ ▀ ▀
|
||||
▀█▀█▀ ▄ █ █ ▐▌▄ █ ▀▄▌▐▌ ▐▌ ▄▀▄ █ ▐▌ ▀ ▄▀
|
||||
▀ ▀ ▀▀▀ ▀ ▀ ▀▀ ▀ ▀ ▄▀ ▀ ▀
|
||||
''', ur"""
|
||||
<<<<<=====>>>>>?????@@@@@@[[[[\\\\]]]]^^^^____```{{{{||}}}}~~~~''´´´
|
||||
▄▀ ▀▄ ▄▀▀▄ ▄▀▀▀▄ █▀▀ ▐▌ ▀▀█ ▄▀▄ ▀▄ ▄▀ █ ▀▄ ▄ █ ▄▀
|
||||
▄▀ ▀▀▀▀ ▀▄ ▄▀ █ █▀█ █ █ █ ▄▀ █ ▀▄ ▐▐▌▌
|
||||
▀▄ ▀▀▀▀ ▄▀ ▀ █ ▀▀▀ █ ▐▌ █ █ █ █ ▀
|
||||
▀ ▀ ▀ ▀▀▀ ▀▀▀ ▀ ▀▀▀ ▀▀▀▀ ▀ ▀ ▀
|
||||
""", u'''
|
||||
AAAAABBBBBCCCCCDDDDDEEEEEFFFFFGGGGGHHHHHIIJJJJJKKKKK
|
||||
▄▀▀▄ █▀▀▄ ▄▀▀▄ █▀▀▄ █▀▀▀ █▀▀▀ ▄▀▀▄ █ █ █ █ █ █
|
||||
█▄▄█ █▄▄▀ █ █ █ █▄▄ █▄▄ █ █▄▄█ █ █ █▄▀
|
||||
█ █ █ █ █ ▄ █ █ █ █ █ ▀█ █ █ █ ▄ █ █ ▀▄
|
||||
▀ ▀ ▀▀▀ ▀▀ ▀▀▀ ▀▀▀▀ ▀ ▀▀ ▀ ▀ ▀ ▀▀ ▀ ▀
|
||||
''', u'''
|
||||
LLLLLMMMMMMNNNNNOOOOOPPPPPQQQQQRRRRRSSSSSTTTTT
|
||||
█ █▄ ▄█ ██ █ ▄▀▀▄ █▀▀▄ ▄▀▀▄ █▀▀▄ ▄▀▀▄ ▀▀█▀▀
|
||||
█ █ ▀ █ █▐▌█ █ █ █▄▄▀ █ █ █▄▄▀ ▀▄▄ █
|
||||
█ █ █ █ ██ █ █ █ █ ▌█ █ █ ▄ █ █
|
||||
▀▀▀▀ ▀ ▀ ▀ ▀ ▀▀ ▀ ▀▀▌ ▀ ▀ ▀▀ ▀
|
||||
''', u'''
|
||||
UUUUUVVVVVVWWWWWWXXXXXXYYYYYYZZZZZ
|
||||
█ █ █ █ █ █ █ █ █ █ ▀▀▀█
|
||||
█ █ ▐▌ ▐▌ █ ▄ █ ▀▄▀ ▀▄▀ ▄▀
|
||||
█ █ █ █ ▐▌█▐▌ ▄▀ ▀▄ █ █
|
||||
▀▀ ▀ ▀ ▀ ▀ ▀ ▀ ▀▀▀▀
|
||||
''', u'''
|
||||
aaaaabbbbbcccccdddddeeeeeffffggggghhhhhiijjjjkkkkk
|
||||
█ █ ▄▀▀ █ ▄ ▄ █
|
||||
▀▀▄ █▀▀▄ ▄▀▀▄ ▄▀▀█ ▄▀▀▄ ▀█▀ ▄▀▀▄ █▀▀▄ ▄ ▄ █ ▄▀
|
||||
▄▀▀█ █ █ █ ▄ █ █ █▀▀ █ ▀▄▄█ █ █ █ █ █▀▄
|
||||
▀▀▀ ▀▀▀ ▀▀ ▀▀▀ ▀▀ ▀ ▄▄▀ ▀ ▀ ▀ ▄▄▀ ▀ ▀
|
||||
''', u'''
|
||||
llmmmmmmnnnnnooooopppppqqqqqrrrrssssstttt
|
||||
█ █
|
||||
█ █▀▄▀▄ █▀▀▄ ▄▀▀▄ █▀▀▄ ▄▀▀█ █▀▀ ▄▀▀▀ ▀█▀
|
||||
█ █ █ █ █ █ █ █ █ █ █ █ █ ▀▀▄ █
|
||||
▀ ▀ ▀ ▀ ▀ ▀▀ █▀▀ ▀▀█ ▀ ▀▀▀ ▀
|
||||
''', u'''
|
||||
uuuuuvvvvvwwwwwwxxxxxxyyyyyzzzzz
|
||||
|
||||
█ █ █ █ █ ▄ █ ▀▄ ▄▀ █ █ ▀▀█▀
|
||||
█ █ ▐▌▐▌ ▐▌█▐▌ ▄▀▄ ▀▄▄█ ▄▀
|
||||
▀▀ ▀▀ ▀ ▀ ▀ ▀ ▄▄▀ ▀▀▀▀
|
||||
''']
|
||||
add_font("Half Block 5x4",HalfBlock5x4Font)
|
||||
|
||||
class HalfBlock6x5Font(Font):
|
||||
height = 5
|
||||
data = [u"""
|
||||
000000111111222222333333444444555555666666777777888888999999 ..::////
|
||||
▄▀▀▀▄ ▄█ ▄▀▀▀▄ ▄▀▀▀▄ ▄ █ █▀▀▀▀ ▄▀▀▀ ▀▀▀▀█ ▄▀▀▀▄ ▄▀▀▀▄ █
|
||||
█ █ █ █ █ █ █ █ █ ▐▌ █ █ █ █ ▀ ▐▌
|
||||
█ █ █ ▄▀ ▀▀▄ ▀▀▀█▀ ▀▀▀▀▄ █▀▀▀▄ █ ▄▀▀▀▄ ▀▀▀█ ▄ █
|
||||
█ █ █ ▄▀ ▄ █ █ █ █ █ ▐▌ █ █ █ ▐▌
|
||||
▀▀▀ ▀▀▀ ▀▀▀▀▀ ▀▀▀ ▀ ▀▀▀▀ ▀▀▀ ▀ ▀▀▀ ▀▀▀ ▀ ▀
|
||||
"""]
|
||||
add_font("Half Block 6x5",HalfBlock6x5Font)
|
||||
|
||||
class HalfBlockHeavy6x5Font(Font):
|
||||
height = 5
|
||||
data = [u"""
|
||||
000000111111222222333333444444555555666666777777888888999999 ..::////
|
||||
▄███▄ ▐█▌ ▄███▄ ▄███▄ █▌ █████ ▄███▄ █████ ▄███▄ ▄███▄ █▌
|
||||
█▌ ▐█ ▀█▌ ▀ ▐█ ▀ ▐█ █▌ █▌ █▌ █▌ █▌ █▌ ▐█ █▌ ▐█ █▌ ▐█
|
||||
█▌ ▐█ █▌ ▄█▀ ██▌ █████ ████▄ ████▄ ▐█ ▐███▌ ▀████ █▌
|
||||
█▌ ▐█ █▌ ▄█▀ ▄ ▐█ █▌ ▐█ █▌ ▐█ █▌ █▌ ▐█ ▐█ █▌▐█
|
||||
▀███▀ ███▌ █████ ▀███▀ █▌ ████▀ ▀███▀ ▐█ ▀███▀ ▀███▀ █▌ █▌
|
||||
"""]
|
||||
add_font("Half Block Heavy 6x5",HalfBlockHeavy6x5Font)
|
||||
|
||||
class Thin6x6Font(Font):
|
||||
height = 6
|
||||
data = [u"""
|
||||
000000111111222222333333444444555555666666777777888888999999''
|
||||
┌───┐ ┐ ┌───┐ ┌───┐ ┐ ┌─── ┌─── ┌───┐ ┌───┐ ┌───┐ │
|
||||
│ │ │ │ │ ┌ │ │ │ │ │ │ │ │
|
||||
│ / │ │ ┌───┘ ─┤ └──┼─ └───┐ ├───┐ ┼ ├───┤ └───┤
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
└───┘ ┴ └─── └───┘ ┴ ───┘ └───┘ ┴ └───┘ ───┘
|
||||
|
||||
""", ur'''
|
||||
!! """######$$$$$$%%%%%%&&&&&&((()))******++++++
|
||||
│ ││ ┌ ┌ ┌─┼─┐ ┌┐ / ┌─┐ / \
|
||||
│ ─┼─┼─ │ │ └┘ / │ │ │ │ \ / │
|
||||
│ │ │ └─┼─┐ / ┌─\┘ │ │ ──X── ──┼──
|
||||
│ ─┼─┼─ │ │ / ┌┐ │ \, │ │ / \ │
|
||||
. ┘ ┘ └─┼─┘ / └┘ └───\ \ /
|
||||
|
||||
''', ur"""
|
||||
,,-----..//////::;;<<<<=====>>>>??????@@@@@@
|
||||
/ ┌───┐ ┌───┐
|
||||
/ . . / ──── \ │ │┌──┤
|
||||
──── / / \ ┌─┘ ││ │
|
||||
/ . , \ ──── / │ │└──┘
|
||||
, . / \ / . └───┘
|
||||
|
||||
""", ur"""
|
||||
[[\\\\\\]]^^^____``{{||}}~~~~~~
|
||||
┌ \ ┐ /\ \ ┌ │ ┐
|
||||
│ \ │ │ │ │ ┌─┐
|
||||
│ \ │ ┤ │ ├ └─┘
|
||||
│ \ │ │ │ │
|
||||
└ \ ┘ ──── └ │ ┘
|
||||
|
||||
""", u"""
|
||||
AAAAAABBBBBBCCCCCCDDDDDDEEEEEEFFFFFFGGGGGGHHHHHHIIJJJJJJ
|
||||
┌───┐ ┬───┐ ┌───┐ ┬───┐ ┬───┐ ┬───┐ ┌───┐ ┬ ┬ ┬ ┬
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
├───┤ ├───┤ │ │ │ ├── ├── │ ──┬ ├───┤ │ │
|
||||
│ │ │ │ │ │ │ │ │ │ │ │ │ │ ┬ │
|
||||
┴ ┴ ┴───┘ └───┘ ┴───┘ ┴───┘ ┴ └───┘ ┴ ┴ ┴ └───┘
|
||||
|
||||
""", u"""
|
||||
KKKKKKLLLLLLMMMMMMNNNNNNOOOOOOPPPPPPQQQQQQRRRRRRSSSSSS
|
||||
┬ ┬ ┬ ┌─┬─┐ ┬─┐ ┬ ┌───┐ ┬───┐ ┌───┐ ┬───┐ ┌───┐
|
||||
│ ┌─┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │
|
||||
├─┴┐ │ │ │ │ │ │ │ │ │ ├───┘ │ │ ├─┬─┘ └───┐
|
||||
│ └┐ │ │ │ │ │ │ │ │ │ │ ┐│ │ └─┐ │
|
||||
┴ ┴ ┴───┘ ┴ ┴ ┴ └─┴ └───┘ ┴ └──┼┘ ┴ ┴ └───┘
|
||||
└
|
||||
""", u"""
|
||||
TTTTTTUUUUUUVVVVVVWWWWWWXXXXXXYYYYYYZZZZZZ
|
||||
┌─┬─┐ ┬ ┬ ┬ ┬ ┬ ┬ ┬ ┬ ┬ ┬ ┌───┐
|
||||
│ │ │ │ │ │ │ └┐ ┌┘ │ │ ┌─┘
|
||||
│ │ │ │ │ │ │ │ ├─┤ └─┬─┘ ┌┘
|
||||
│ │ │ └┐ ┌┘ │ │ │ ┌┘ └┐ │ ┌┘
|
||||
┴ └───┘ └─┘ └─┴─┘ ┴ ┴ ┴ └───┘
|
||||
|
||||
""", u"""
|
||||
aaaaaabbbbbbccccccddddddeeeeeefffgggggghhhhhhiijjj
|
||||
┌─┐
|
||||
│ │ │ │ . .
|
||||
┌───┐ ├───┐ ┌───┐ ┌───┤ ┌───┐ ┼ ┌───┐ ├───┐ ┐ ┐
|
||||
┌───┤ │ │ │ │ │ ├───┘ │ │ │ │ │ │ │
|
||||
└───┴ └───┘ └───┘ └───┘ └───┘ ┴ └───┤ ┴ ┴ ┴ │
|
||||
└───┘ ─┘
|
||||
""", u"""
|
||||
kkkkkkllmmmmmmnnnnnnooooooppppppqqqqqqrrrrrssssss
|
||||
|
||||
│ │
|
||||
│ ┌─ │ ┬─┬─┐ ┬───┐ ┌───┐ ┌───┐ ┌───┐ ┬──┐ ┌───┐
|
||||
├─┴┐ │ │ │ │ │ │ │ │ │ │ │ │ │ └───┐
|
||||
┴ └─ └ ┴ ┴ ┴ ┴ └───┘ ├───┘ └───┤ ┴ └───┘
|
||||
│ │
|
||||
""", u"""
|
||||
ttttuuuuuuvvvvvvwwwwwwxxxxxxyyyyyyzzzzzz
|
||||
|
||||
│
|
||||
─┼─ ┬ ┬ ┬ ┬ ┬ ┬ ─┐ ┌─ ┬ ┬ ────┬
|
||||
│ │ │ └┐ ┌┘ │ │ │ ├─┤ │ │ ┌───┘
|
||||
└─ └───┴ └─┘ └─┴─┘ ─┘ └─ └───┤ ┴────
|
||||
└───┘
|
||||
"""]
|
||||
add_font("Thin 6x6",Thin6x6Font)
|
||||
|
||||
|
||||
class HalfBlock7x7Font(Font):
|
||||
height = 7
|
||||
data = [u"""
|
||||
0000000111111122222223333333444444455555556666666777777788888889999999'''
|
||||
▄███▄ ▐█▌ ▄███▄ ▄███▄ █▌ ▐█████▌ ▄███▄ ▐█████▌ ▄███▄ ▄███▄ ▐█
|
||||
▐█ █▌ ▀█▌ ▐█ █▌▐█ █▌▐█ █▌ ▐█ ▐█ ▐█ ▐█ █▌▐█ █▌▐█
|
||||
▐█ ▐ █▌ █▌ █▌ ▐██ ▐█████▌▐████▄ ▐████▄ █▌ █████ ▀████▌
|
||||
▐█ ▌ █▌ █▌ ▄█▀ █▌ █▌ █▌▐█ █▌ ▐█ ▐█ █▌ █▌
|
||||
▐█ █▌ █▌ ▄█▀ ▐█ █▌ █▌ █▌▐█ █▌ █▌ ▐█ █▌ █▌
|
||||
▀███▀ ███▌ ▐█████▌ ▀███▀ █▌ ▐████▀ ▀███▀ ▐█ ▀███▀ ▀███▀
|
||||
|
||||
""", u'''
|
||||
!!! """""#######$$$$$$$%%%%%%%&&&&&&&(((())))*******++++++
|
||||
▐█ ▐█ █▌ ▐█ █▌ █ ▄ █▌ ▄█▄ █▌▐█ ▄▄ ▄▄
|
||||
▐█ ▐█ █▌▐█████▌ ▄███▄ ▐█▌▐█ ▐█ █▌ ▐█ █▌ ▀█▄█▀ ▐█
|
||||
▐█ ▐█ █▌ ▐█▄█▄▄ ▀ █▌ ███ █▌ ▐█ ▐█████▌ ████▌
|
||||
▐█ ▐█████▌ ▀▀█▀█▌ ▐█ ▄ ███▌▄ █▌ ▐█ ▄█▀█▄ ▐█
|
||||
▐█ █▌ ▀███▀ █▌▐█▌▐█ █▌ ▐█ █▌ ▀▀ ▀▀
|
||||
▐█ █ ▐█ ▀ ▀██▀█▌ █▌▐█
|
||||
|
||||
''', u"""
|
||||
,,,------.../////:::;;;<<<<<<<======>>>>>>>???????@@@@@@@
|
||||
█▌ ▄█▌ ▐█▄ ▄███▄ ▄███▄
|
||||
▐█ ▐█ ▐█ ▄█▀ ▐████▌ ▀█▄ ▐█ █▌▐█ ▄▄█▌
|
||||
▐████▌ █▌ ▐██ ██▌ █▌ ▐█▐█▀█▌
|
||||
▐█ ▐█ ▐█ ▀█▄ ▐████▌ ▄█▀ █▌ ▐█▐█▄█▌
|
||||
█▌ ▀ ▀█▌ ▐█▀ ▐█ ▀▀▀
|
||||
▐█ ▐█ ▐█ █▌ ▀███▀
|
||||
▀
|
||||
""", ur"""
|
||||
[[[[\\\\\]]]]^^^^^^^_____```{{{{{|||}}}}}~~~~~~~´´´
|
||||
▐██▌▐█ ▐██▌ ▐█▌ ▐█ █▌▐█ ▐█ █▌
|
||||
▐█ █▌ █▌ ▐█ █▌ █▌ █▌ ▐█ ▐█ ▄▄ ▐█
|
||||
▐█ ▐█ █▌▐█ █▌ ▄█▌ ▐█ ▐█▄ ▐▀▀█▄▄▌
|
||||
▐█ █▌ █▌ ▀█▌ ▐█ ▐█▀ ▀▀
|
||||
▐█ ▐█ █▌ █▌ ▐█ ▐█
|
||||
▐██▌ █▌▐██▌ █████ █▌▐█ ▐█
|
||||
|
||||
""", u"""
|
||||
AAAAAAABBBBBBBCCCCCCCDDDDDDDEEEEEEEFFFFFFFGGGGGGGHHHHHHHIIIIJJJJJJJ
|
||||
▄███▄ ▐████▄ ▄███▄ ▐████▄ ▐█████▌▐█████▌ ▄███▄ ▐█ █▌ ██▌ █▌
|
||||
▐█ █▌▐█ █▌▐█ ▐█ █▌▐█ ▐█ ▐█ ▐█ █▌ ▐█ █▌
|
||||
▐█████▌▐█████ ▐█ ▐█ █▌▐████ ▐████ ▐█ ▐█████▌ ▐█ █▌
|
||||
▐█ █▌▐█ █▌▐█ ▐█ █▌▐█ ▐█ ▐█ ██▌▐█ █▌ ▐█ █▌
|
||||
▐█ █▌▐█ █▌▐█ ▐█ █▌▐█ ▐█ ▐█ █▌▐█ █▌ ▐█ ▐█ █▌
|
||||
▐█ █▌▐████▀ ▀███▀ ▐████▀ ▐█████▌▐█ ▀███▀ ▐█ █▌ ██▌ ▀███▀
|
||||
|
||||
""", u"""
|
||||
KKKKKKKLLLLLLLMMMMMMMMNNNNNNNOOOOOOOPPPPPPPQQQQQQQRRRRRRRSSSSSSS
|
||||
▐█ █▌▐█ ▄█▌▐█▄ ▐██ █▌ ▄███▄ ▐████▄ ▄███▄ ▐████▄ ▄███▄
|
||||
▐█ █▌ ▐█ ▐█ ▐▌ █▌▐██▌ █▌▐█ █▌▐█ █▌▐█ █▌▐█ █▌▐█
|
||||
▐█▄█▌ ▐█ ▐█ ▐▌ █▌▐█▐█ █▌▐█ █▌▐████▀ ▐█ █▌▐█████ ▀███▄
|
||||
▐█▀█▌ ▐█ ▐█ █▌▐█ █▌█▌▐█ █▌▐█ ▐█ █▌▐█ █▌ █▌
|
||||
▐█ █▌ ▐█ ▐█ █▌▐█ ▐██▌▐█ █▌▐█ ▐█ █▌█▌▐█ █▌ █▌
|
||||
▐█ █▌▐█████▌▐█ █▌▐█ ██▌ ▀███▀ ▐█ ▀███▀ ▐█ █▌ ▀███▀
|
||||
▀▀
|
||||
""", u"""
|
||||
TTTTTTTUUUUUUUVVVVVVVWWWWWWWWXXXXXXXYYYYYYYZZZZZZZ
|
||||
█████▌▐█ █▌▐█ █▌▐█ █▌▐█ █▌ █▌ █▌▐█████▌
|
||||
█▌ ▐█ █▌ █▌ ▐█ ▐█ █▌ ▐█ █▌ ▐█ ▐█ █▌
|
||||
█▌ ▐█ █▌ ▐█ █▌ ▐█ █▌ ▐█▌ ▐██ █▌
|
||||
█▌ ▐█ █▌ ███ ▐█ ▐▌ █▌ ███ █▌ █▌
|
||||
█▌ ▐█ █▌ ▐█▌ ▐█ ▐▌ █▌ █▌ ▐█ █▌ █▌
|
||||
█▌ ▀███▀ █ ▀█▌▐█▀ ▐█ █▌ █▌ ▐█████▌
|
||||
|
||||
""", u"""
|
||||
aaaaaaabbbbbbbcccccccdddddddeeeeeeefffffggggggghhhhhhhiiijjjj
|
||||
▐█ █▌ ▄█▌ ▐█ █▌ █▌
|
||||
▐█ █▌ ▐█ ▐█
|
||||
▄███▄ ▐████▄ ▄███▄ ▄████▌ ▄███▄ ▐███ ▄███▄ ▐████▄ ▐█▌ ▐█▌
|
||||
▄▄▄█▌▐█ █▌▐█ ▐█ █▌▐█▄▄▄█▌ ▐█ ▐█ █▌▐█ █▌ █▌ █▌
|
||||
▐█▀▀▀█▌▐█ █▌▐█ ▐█ █▌▐█▀▀▀ ▐█ ▐█▄▄▄█▌▐█ █▌ █▌ █▌
|
||||
▀████▌▐████▀ ▀███▀ ▀████▌ ▀███▀ ▐█ ▀▀▀█▌▐█ █▌ █▌ █▌
|
||||
▀███▀ ▐██
|
||||
""", u"""
|
||||
kkkkkkkllllmmmmmmmmnnnnnnnooooooopppppppqqqqqqqrrrrrrsssssss
|
||||
▐█ ██
|
||||
▐█ ▐█
|
||||
▐█ ▄█▌ ▐█ ▄█▌▐█▄ ▐████▄ ▄███▄ ▐████▄ ▄████▌ ▄███▌ ▄███▄
|
||||
▐█▄█▀ ▐█ ▐█ ▐▌ █▌▐█ █▌▐█ █▌▐█ █▌▐█ █▌▐█ ▐█▄▄▄
|
||||
▐█▀▀█▄ ▐█ ▐█ ▐▌ █▌▐█ █▌▐█ █▌▐█ █▌▐█ █▌▐█ ▀▀▀█▌
|
||||
▐█ █▌ ▐█▌▐█ █▌▐█ █▌ ▀███▀ ▐████▀ ▀████▌▐█ ▀███▀
|
||||
▐█ █▌
|
||||
""", u"""
|
||||
tttttuuuuuuuvvvvvvvwwwwwwwwxxxxxxxyyyyyyyzzzzzzz
|
||||
█▌
|
||||
█▌
|
||||
███▌▐█ █▌▐█ █▌▐█ █▌▐█ █▌▐█ █▌▐█████▌
|
||||
█▌ ▐█ █▌ █▌ ▐█ ▐█ █▌ ▀█▄█▀ ▐█ █▌ ▄█▀
|
||||
█▌ ▐█ █▌ ███ ▐█ ▐▌ █▌ ▄█▀█▄ ▐█▄▄▄█▌ ▄█▀
|
||||
█▌ ▀███▀ ▐█▌ ▀█▌▐█▀ ▐█ █▌ ▀▀▀█▌▐█████▌
|
||||
▀███▀
|
||||
"""]
|
||||
add_font("Half Block 7x7",HalfBlock7x7Font)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
l = get_all_fonts()
|
||||
all_ascii = "".join([chr(x) for x in range(32, 127)])
|
||||
print "Available Fonts: (U) = UTF-8 required"
|
||||
print "----------------"
|
||||
for n,cls in l:
|
||||
f = cls()
|
||||
u = ""
|
||||
if f.utf8_required:
|
||||
u = "(U)"
|
||||
print ("%-20s %3s " % (n,u)),
|
||||
c = f.characters()
|
||||
if c == all_ascii:
|
||||
print "Full ASCII"
|
||||
elif c.startswith(all_ascii):
|
||||
print "Full ASCII + " + c[len(all_ascii):]
|
||||
else:
|
||||
print "Characters: " + c
|
||||
Reference in New Issue
Block a user