| 1 |
from FL import * |
|---|
| 2 |
from dialogKit import * |
|---|
| 3 |
|
|---|
| 4 |
class GlyphViewDemo(object): |
|---|
| 5 |
|
|---|
| 6 |
def __init__(self): |
|---|
| 7 |
self.font= fl.font |
|---|
| 8 |
self.glyphs = {} |
|---|
| 9 |
for glyph in self.font.glyphs: |
|---|
| 10 |
self.glyphs[glyph.name] = glyph |
|---|
| 11 |
glyphNames = self.glyphs.keys() |
|---|
| 12 |
glyphNames.sort() |
|---|
| 13 |
|
|---|
| 14 |
self.w = ModalDialog((700, 500), 'GlyphView Demo') |
|---|
| 15 |
self.w.glyphList = List((10, 10, 150, -60), glyphNames, callback=self.glyphListCallback) |
|---|
| 16 |
self.w.view = GlyphView((170, 10, 400, -60), None, None) |
|---|
| 17 |
|
|---|
| 18 |
self.w.fillCheckBox = CheckBox((580, 10, -10, 20), 'Fill', value=True, callback=self.viewOptionsCallback) |
|---|
| 19 |
self.w.outlineCheckBox = CheckBox((580, 35, -10, 20), 'Outline', value=False, callback=self.viewOptionsCallback) |
|---|
| 20 |
self.w.pointsCheckBox = CheckBox((580, 60, -10, 20), 'Points', value=True, callback=self.viewOptionsCallback) |
|---|
| 21 |
self.w.descenderCheckBox = CheckBox((580, 85, -10, 20), 'Descender', value=True, callback=self.viewOptionsCallback) |
|---|
| 22 |
self.w.baselineCheckBox = CheckBox((580, 110, -10, 20), 'Baseline', value=True, callback=self.viewOptionsCallback) |
|---|
| 23 |
self.w.xHeightCheckBox = CheckBox((580, 135, -10, 20), 'X Height', value=True, callback=self.viewOptionsCallback) |
|---|
| 24 |
self.w.ascenderCheckBox = CheckBox((580, 160, -10, 20), 'Ascender', value=True, callback=self.viewOptionsCallback) |
|---|
| 25 |
self.w.capHeightCheckBox = CheckBox((580, 185, -10, 20), 'Cap Height', value=True, callback=self.viewOptionsCallback) |
|---|
| 26 |
self.w.upmTopCheckBox = CheckBox((580, 210, -10, 20), 'UPM Top', value=False, callback=self.viewOptionsCallback) |
|---|
| 27 |
self.w.leftCheckBox = CheckBox((580, 235, -10, 20), 'Left', value=True, callback=self.viewOptionsCallback) |
|---|
| 28 |
self.w.rightCheckBox = CheckBox((580, 260, -10, 20), 'Right', value=True, callback=self.viewOptionsCallback) |
|---|
| 29 |
|
|---|
| 30 |
self.w.open() |
|---|
| 31 |
|
|---|
| 32 |
def glyphListCallback(self, sender): |
|---|
| 33 |
selection = sender.getSelection() |
|---|
| 34 |
if not selection: |
|---|
| 35 |
font = glyph = None |
|---|
| 36 |
else: |
|---|
| 37 |
glyphName = sender[selection[0]] |
|---|
| 38 |
glyph = self.glyphs[glyphName] |
|---|
| 39 |
font = self.font |
|---|
| 40 |
self.w.view.set(font, glyph) |
|---|
| 41 |
self.w.view.update() |
|---|
| 42 |
|
|---|
| 43 |
def viewOptionsCallback(self, sender): |
|---|
| 44 |
if self.w.fillCheckBox.get() != self.w.view.getShowFill(): |
|---|
| 45 |
self.w.view.setShowFill(self.w.fillCheckBox.get()) |
|---|
| 46 |
if self.w.outlineCheckBox.get() != self.w.view.getShowOutline(): |
|---|
| 47 |
self.w.view.setShowOutline(self.w.outlineCheckBox.get()) |
|---|
| 48 |
if self.w.pointsCheckBox.get() != self.w.view.getShowOnCurvePoints(): |
|---|
| 49 |
self.w.view.setShowOnCurvePoints(self.w.pointsCheckBox.get()) |
|---|
| 50 |
if self.w.descenderCheckBox.get() != self.w.view.getShowDescender(): |
|---|
| 51 |
self.w.view.setShowDescender(self.w.descenderCheckBox.get()) |
|---|
| 52 |
if self.w.baselineCheckBox.get() != self.w.view.getShowBaseline(): |
|---|
| 53 |
self.w.view.setShowBaseline(self.w.baselineCheckBox.get()) |
|---|
| 54 |
if self.w.xHeightCheckBox.get() != self.w.view.getShowXHeight(): |
|---|
| 55 |
self.w.view.setShowXHeight(self.w.xHeightCheckBox.get()) |
|---|
| 56 |
if self.w.ascenderCheckBox.get() != self.w.view.getShowAscender(): |
|---|
| 57 |
self.w.view.setShowAscender(self.w.ascenderCheckBox.get()) |
|---|
| 58 |
if self.w.capHeightCheckBox.get() != self.w.view.getShowCapHeight(): |
|---|
| 59 |
self.w.view.setShowCapHeight(self.w.capHeightCheckBox.get()) |
|---|
| 60 |
if self.w.upmTopCheckBox.get() != self.w.view.getShowUPMTop(): |
|---|
| 61 |
self.w.view.setShowUPMTop(self.w.upmTopCheckBox.get()) |
|---|
| 62 |
if self.w.leftCheckBox.get() != self.w.view.getShowLeftSidebearing(): |
|---|
| 63 |
self.w.view.setShowLeftSidebearing(self.w.leftCheckBox.get()) |
|---|
| 64 |
if self.w.rightCheckBox.get() != self.w.view.getShowRightSidebearing(): |
|---|
| 65 |
self.w.view.setShowRightSidebearing(self.w.rightCheckBox.get()) |
|---|
| 66 |
self.w.view.update() |
|---|
| 67 |
|
|---|
| 68 |
GlyphViewDemo() |
|---|