mojo.glyphPreview

from mojo.glyphPreview import GlyphPreview

A vanilla group subclass that previews a glyph.

  • GlyphPreview(posSize, contourColor=None, componentColor=None, selectionColor=None)

    posSize: tuple of 4 (left, top, right, bottom), those numbers can be negative
    contourColor: a NSColor object used to draw the contours, optionally
    componentColor: a NSColor object used to draw the components, optionally
    selectionColor: a NSColor object used to draw the selection
     
    setGlyph(glyph)
    set a glyph in the preview
    setSelection(points)
    sets a list of points to display

Example

from vanilla import Window
from mojo.glyphPreview import GlyphPreview
from mojo.events import addObserver, removeObserver
from mojo.roboFont import OpenWindow

class Preview:

    def __init__(self):
        ## create a window
        self.w = Window((400, 400), "Preview", minSize=(100, 100))

        ## add a GlyphPreview to the window
        self.w.preview = GlyphPreview((0, 0, -0, -0))

        ## set the currentGlyph
        self.setGlyph(CurrentGlyph())

        ## add an observer when the glyph changed in the glyph view
        addObserver(self, "_currentGlyphChanged", "currentGlyphChanged")
    
        ## bind a windows close callback to this object
        self.w.bind("close", self.windowClose)
        ## open the window
        self.w.open()

    def _currentGlyphChanged(self, info):
        ## notification callback when the glyph changed in the glyph view
        ## just set the new glyph in the glyph preview
        self.setGlyph(CurrentGlyph())

    def setGlyph(self, glyph):
        ## setting the glyph in the glyph Preview
        self.w.preview.setGlyph(glyph)

    def windowClose(self, sender):
        ## remove the observer if the window closes
        removeObserver(self, "_currentGlyphChanged")


## open the window with OpenWindow, so it can not be open twice
OpenWindow(Preview)