diff options
Diffstat (limited to 'equalize_sidebearings.py')
| -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 | 
