diff options
| -rw-r--r-- | equalize_sidebearings.py | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/equalize_sidebearings.py b/equalize_sidebearings.py index 92f518b..7f7f5cc 100644 --- a/equalize_sidebearings.py +++ b/equalize_sidebearings.py @@ -1,4 +1,15 @@ +from AppKit import NSUserDefaults + from mojo.events import addObserver +# from lib.doodleMenus import SpaceCenterMenuForGlyph +# from tools.defaults import getDefault + +def getDefault(key, defaultValue = None, defaultClass = None): + defaultsFromFile = NSUserDefaults.standardUserDefaults() + value = defaultsFromFile.get(key, defaultValue) + if defaultClass is not None: + return defaultClass(value) + return value class EqualizeSidebearings(object): def __init__(self): @@ -6,12 +17,30 @@ class EqualizeSidebearings(object): def center(self, info): if info['event'].characters() == 'a': - g = info['glyph'] - - g.prepareUndo('Equalize Sidebearings') - - g.center() + # g = info['glyph'] + self.equalize_sidebearings(info['glyph']) + # SpaceCenterMenuForGlyph(info['event'], self, g) + # + # g.prepareUndo('Equalize Sidebearings') + # + # g.center() + # + # g.performUndo() - g.performUndo() + def equalize_sidebearings(self, glyph): + useItalicAngleForDisplay = getDefault('glyphViewShouldUseItalicAngleForDisplay') + leftMarginAttribute = 'leftMargin' + rightMarginAttribute = 'rightMargin' + if useItalicAngleForDisplay: + leftMarginAttribute = 'angledLeftMargin' + rightMarginAttribute = 'angledRightMargin' + left = getattr(glyph, leftMarginAttribute) + right = getattr(glyph, rightMarginAttribute) + margin = int(round((left + right) / 2.0)) + glyph.prepareUndo('Equalize sidebearings') + setattr(glyph, leftMarginAttribute, margin) + setattr(glyph, rightMarginAttribute, margin) + glyph.selection.resetSelectionPath() + glyph.performUndo() EqualizeSidebearings()
\ No newline at end of file |
