-
Notifications
You must be signed in to change notification settings - Fork 1
/
Open kerning pair in overview.py
77 lines (46 loc) · 1.19 KB
/
Open kerning pair in overview.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#MenuTitle: Open kerning pair in overview
# -*- coding: utf-8 -*-
import unicodedata
from GlyphsApp import *
f = Glyphs.font
texts = {
'LlLl': 'mmmmmaaaammmmm',
'LuLu': 'HHHHHaaaaHHHHH',
'LuLl': 'mmmmmammmmm',
'sc': '/h.sc/h.sc/h.sc/h.sc/h.sc/a/a/a/a/h.sc/h.sc/h.sc/h.sc/h.sc',
'c2sc': '/h.sc/h.sc/h.sc/h.sc/h.sc',
}
layers = []
if f.currentTab:
t = f.currentTab
if t.textCursor >= 1 and len(t.text) >= 2:
a = t.text[t.textCursor-1]
b = t.text[t.textCursor]
if a != '\n' and b != '\n':
print(a, b)
cat = None
cat = unicodedata.category(a) + unicodedata.category(b)
if cat in texts:
for master in f.masters:
text = texts[cat]
if '/' in text:
text = text.split('/')
lineHasLetters = False
for letter in text:
if letter:
if letter == 'a':
layers.append(f.glyphs[a].layers[master.id])
layers.append(f.glyphs[b].layers[master.id])
else:
layers.append(f.glyphs[letter].layers[master.id])
lineHasLetters = True
if lineHasLetters:
layers.append(GSControlLayer(10))
if layers:
# Tab
if f.tabs:
t = f.tabs[-1]
else:
t = f.newTab()
f.currentTab = t
t.layers = layers