addGuide
..
to become floats.\n
in space center.glyph.markColor
being a color name from the preferences.defaultBackgroundLayerColor
also on public.background layer names.None
.globalSyncGlyphlayersSettings
to the preferences. glyphViewSnaptoFontInfoMetrics
preference to set a magnetic distance to snap to font metrics. glyphViewAnimatedZoom
: hold ⇧ for speed zoom. documentationURL
to the extension spec. -nS
when turnOnSubroutinization is False
.PathPopUp
as ezui item.destroyRepresentation
and destroyAllRepresentations
to RoboFont fontParts objects. None
before trying to get layer and font attributes.renameGlyph
and restore the glyph order correctly.True
while renaming glyphs. ScriptRunner
to mojo.tools. readSmartSets
in mojo.smartSet. addAdditionalVisualBounds
support for additional visual bounds, in a glyph editor. leftMarginIntersection
with “t”.glyphEditor.activateGlyphEditorAtIndex(index)
. OpenInspectorWindow
and add CloseInspectorWindow
in mojo.UI.rgbaToString
to mojo.tools.scriptingWindowWillOpen
, scriptingWindowDidOpen
and scriptingWindowWillClose
to subscriber. None
after closing the window.extractNSEvent()
.loadBundle()
to the extension bundle.Jump to python3.9! Be aware, some extensions might not work, check for updates.
anchorTextColor
for the name of the anchor if no color is set in anchor.color.None
.italicAngle
, it cannot be None
.setStartPoint
.None
get it from the xy combo.Changed
notifications during undo/redo.Show Guidelines
display option is enabled.Display Image
in glyph editor Diplay Options menu is enabled when image is dropped or pasted in the glyph view.transformPane
checkbox when a transformation is edited in the glyph editor.MultiLine
view when font info attributes are set to zero.glyphOrder
after layer.renameGlyph
to update the CollectionView
.None
mark color.glyphViewOncurvePointsSize
to glyphViewOnCurvePointsSize
(cap C).defaultLayerName
for new documents.glyphViewAllowDoubleClickToSwitchLayers
.CodeEditor
in any window.cmd+.
cancel short cut as it crashes the app.CurrentScriptingWindow()
AllScriptingWindows()
scriptingWindow.insertText(text)
scriptingWindow.setSelection((location, length))
hmtx
table after a curve conversion.otRound
everywhere while compiling binaries.mojo.compile.stemhist
stemhist
.inspectorTransformPaneAllowExternalTransformation
.ezui
objects, welcome mojo.ezuiViews
! You’ll find:
GlyphSequence
GlyphPreview
CodeEditor
GlyphLineView
ezui
.readSmartSets
in mojo.smartSet
glyph.copyToPasteboard
and font/layer.copyGlyphsToPasteboard
.eventTool.shouldSendNotifications
to hold notifications for other observers. Timer
, timerDecorator
, timerFunction
, profile
, profileDecorator
debug tools to mojo.tools
.setGlyphRecords
and getGlyphRecords
in a mojo.UI.MultiLineView
.mojo.UI.OpenInspectorWindow
.shouldAddSeparatorItem
while building a menu with MenuBuilder
.htmlView.getWKWebView()
to get the webkit webview.tiff2png
to mojo.tools
.mojo.pipTools
.mojo.UI.ProgressBar
mojo
packages.copyToPasteboard
doc string.fontInfoDidChangeValue
subscriber info object.glyphEditorDidChangeDisplaySettings
.dialogKit
and feaTools2
.numpy
as embedded package. Users will need to install it autonomously with pip installer.charset_normalizer
package.fontFeatures
as dependency.appearanceColorKey
to mojo.UI
. GNFUL
list.mojo.NumberEditText
by converting the int/float to a string without thousands separator (locale dependant).Force file type extension on filename when switching format in “Generate Font” sheet.
glyphViewIgnoreFirstMouseDown
key to Preferences Editor for Single Window Mode to ignore the first click in the glyph view.removeGlyph
event (either user interface or API) only when it shows the removed glyph.mojo.UI.GlyphWindowToPDF
to support CALayers through merz
.mojo.UI.OpenFont
.OpenFonts
into mojo.roboFont
.glyphEditorWillShowPreview
and glyphEditorWillHidePreview
in mojo.subscriber
.mojo.UI.OpenScriptWindow
to open new documents.mojo.UI.setGlyphViewDisplaySettings
.RFont.fontWindow()
returning the font window.layer.getDisplayOption()
for all
getGlyphViewScale
in Single Window Mode.view.window()
.font.lib["com.typemytype.robofont.generateOmitMacNames"]
. The lib expects a bool
markColorUndoMaxGlyphCount
.spaceCenterMaxGlyphCountForSendingEvents
for events and spaceCenterMaxGlyphCountForLiveUpdating
for editing.disableSubscriberEvents
with statement to disable all subscribers.openInterface
should create a new document when the font is set to None
.mojo.subscriber.listRegisteredSubscribers
.glyph.readingErrors()
.performTextFinderAction
instead of performFindPanelAction
. Text search with cmd+f
, cmd+g
and cmd+e
improvedalt cmd e
in single window modeglyphViewMetricsHeightInfoAttribute
key in the preferences editor. You can now control the height of the white board in a glyph editorindexesShouldFollowContour
preference. If True
, point indices of new contours in a glyph will not start from 0. Useful for hinting, it could be helpful for interpolation toocmd
down when no glyph is selectedspaceCenterSelectionStyle
glyph.autoContourOrder()
font.holdChanges
with statementmojo.setDefault
will validate the incoming value for a key if there is a validatordefconFont.kerning.find()
instead of flat kerning.glyphViewDisableDrawNotifications
, as default this is False
.CodeEditor
.addGlyphEditorSubview
.glyphViewDisableDrawNotifications
in the preferences editor..asFontParts()
and .asDefcon()
to all font objects for convienient switching.QTKit
anymore.registerSubscriberEvent
.selection.hasSelection()
forced to be a boolRGlyph.rasterize()
.UFOReader
.OpenFont
.spaceCenter.getOffset()
and spaceCenter.setOffset((x, y))
.fontmake
.clear
argument in FontParts’ newGlyph
to True
by default.UFOReader.ufoFormatVersionTuple
to compare UFO version.asyncio
.font.testInstall
, similar to font.generate
.CoreServices.LSGetApplicationForURL
is deprecated.glyph.autoUnicodes()
by adding support for uniXXXX
and uXXXXX
names.multilinescrollview
.multiline.setShouldDrawGlyph(True/False)
.font.openInterface
.formatVersion
could be None
.spaceCenterWaterFallSizes
.glyphViewContinueDrawingAtPointStrokeColor
and glyphViewContinueCloseContourAtPointStrokeColor
.spaceCenterMaxGlyphsForLiveUpdate
in Preferences > Space Center.glyphViewMininumVisibleZoom
to the Preferences Editor.defaultFontInfoAttributes
: a dict of font info values for new fonts.glyphCellLayerIndicatorColor
, glyphCellSkipExportIndicatorColor
, glyphCellNoteIndicatorColor
.glyphViewDefaultTextBoxBackgroundColor
.glyphViewCanZoomWhileDragging
to False
.defconAppKit
color subclassing: glyphCollectionGridColor
, glyphCollectionBackgroundColor
, glyphCollectionInsertionLocationColor
, glyphCollectionInsertionLocationShadowColor
.pycExclude
argument to ExtensionBundle
to allow some files as .py
when generating .pyc
extensions.Icon?
and .DS_Store
files when hashing extensions.x
mouse metrics when dragging in right-to-left text.spaceCenterMaxGlyphsForLiveUpdate
./n
linebreaks.x
and y
values to the same value.fontWindowWillOpen
and fontWindowDidOpen
.savedState
to mojo.drawingTools
.center
argument to transform
, rotate
, skew
and scale
in mojo.drawingTools
.setSelection
and getSelection
in MultiLineView
.imagePNGData
available in mojo.tools
.SpaceCenterWindow.setFont
.mojo
.mojo.smartSet
.selectedContours
: contours with a single point selection are also selected.font.generate
.font.generate(layerName)
.obj.dirty
state for FontParts wrapper decorator – fixes for example dirty states of glyphs in font.round()
.glyph.selectedBPoints
.cocoaDrawingTools
.setDefault(key, value, validate=True)
.lib.baseObjects
.EditingTool
subclasses.templateKeys
and templateGlyphs
must be tuples.addedUndoItem
notification.scriptsMenuChanged
notification.woffTools
from embedded modules. If you need it, use the pip installer.drawGlyph
to handle very shallow glyph objects.fontMath
and mutatorMath
.guideline.selected
..ufo
files are supported by any other application.shouldNormalizeOnSave
is on.try/except
statement.isPaneVisible
, showPane
and togglePane
to AccordionView
.dealloc
and removing view from superview.try
/ except
statement to catch errors..glif
XML (don’t crash but show a nice warning).glyphViewCanZoomWhileDragging
preference setting.PyDEBackgroundColor
preference setting.ExtensionBundle
and ExtensionBuilder
..md
) as source format for extension docs.style.css
when building markdown extension docs.lib.x.y
to support different versions of Python in compiled .pyc
extensions.WKWebView
as the default HTMLView.mojo.UI.PostBannerNotification
.RGlyph.holdChanges()
to hold and release all notifications.showProgress
keyword to font.testIntall
.centerInView
for StatusInteractivePopUpWindow
.point.clearLabels()
to remove them.allowsMovingMargins
for a subclass of the EditingTool
.dragTransformMatrix
available in a subclass of the EditingTool
.ufo2fdk
’s glyph name normalizer.fontParts
and mojo
dialogs.GlyphSequenceEditText
and splitText
to mojo.UI
.>>>
from docstrings.font.templateSelectedGlyphNames
.fileStructure
argument.applicationDidFinishLaunching_
to applicationWillFinishLaunching_
.vanilla
branch with support for auto layout.markdown
module.glyphWindow.setGlyph(glyph)
.hasOverlaps
function.Canvas
to support mouseEntered
and mouseExited
events.fontmake
.pytest
in the Scripting Window.renameGlyph
test.getQueryResult
for SmartSet objects to retrieve the result of a query..py
files as utf-8 to parse the menu title name.__future__
and fontTools.Miscellaneouspy23
.PY2
and PY3
variables.basestring
to str
(py3).unichr
to chr
(py3).print
statement is coming from.ufoLib
anymore, as this could lead to errors in extensions.getDisplayOption
and setDisplayOption
.layer.setDisplayOptions()
, must be a dict now.AllFonts
and CurrentFont
.otRound
to round coordinates.font.glyphOrder
changes automatically when a glyph is renamed by notification.font.glyphOrder
must return a tuple.stemHist
callback.GlyphPreview
can preview anything that looks like a glyph object and works with a pen.KeyError
when the glyph name is not found.font.bounds
.allObservers
to mojo.events
.internalFontClasses
to mojo.roboFont
.characterToGlyphName
with a fallback.defcon.Font
in a RFont
.UIdocument
to shallowDocument
in FontParts object.AccordionView
display bug in macOs 10.14.Canvas
now sends the correct pasteboard types.font.info
settings..ttf
export.font.glyphOrder
has precedence over sort descriptors.None
.l
).glyph.width
, flag glyph as changed if it’s a template and if the width is the same.NSAttributedString
and NSBezierPath
objects.glyphViewDrawLayerBackgroundColor
to disable layer background color.normalizeWriteModTimes
default option to normalize UFOs on save.checkExternalChanges
as a default setting."
→ \"
and \
→ \\
.fontTools.ufoLib
.designspaceDocument
(now included in fontTools).getGlyphViewHotKey
and setGlyphViewHotKey
methods.spaceCenter.getLineHeight()
and spaceCenter.setLineHeight(value)
..fea
files with non-ascii characters in comments.uharfbuzz
as an embedded package.objc
to verbose, so tracebacks are comming back.glif
XML (lxml
uses single quotes instead of double quotes).font.save(path)
is None
.CoreServices
instead of LaunchServices
.RFont.newGlyph()
so it tries to keep the same object if the glyph already exists.glyph.selectedPoints
and deprecate glyph.selection
.allFonts
as keyword in SelectFont
.contour.removeSegment()
on open paths with a trailing off curve.flatKerning
to fontParts.setStartSegment
.fontParts.RFont.save
when the path is different.applicationScreenChanged
to base tool.try/except
statement.will
must be did
…long
callback.glyphWindow.setGlyphViewScale
by force setting the scale value.Ctrl+Alt+Cmd+O
to reveal the log file in Finder.glyph.width
, and uses it when the destination glyph is empty.glyph.lib
if there is no image.contour.removePoint
.extractEvent
by removing tuple values.mojo.tools.roboFontUnitTest
to unit test inside RF.RFont.hasChanged()
.CurrentGlyphChanged
notification./?
and /!
spaceCenterMaxGlyphsForLiveUpdate
loadFontGlyphLimit
defaultGuidelineShowMeasurment
defaultGuidelineMagnetic
ufoLibReadValidate
ufoLibWriteValidate
.enc
files.roboFab
with fontParts
./<glyphName>@<layerName>
to select a glyph from a given layer. For example: /A@background
.fontWillGenerate
and fontDidGenerate
to a more internal level, so it sends a notification when generating with a script.print()
statement.([{}])
in the code editor.sys_path_override
to external_packages
– a folder to overwrite embedded packages.mojo.*
.RFont.hasInterface()
.A new license is required for RoboFont 3.
If you purchased a RoboFont 1.8 license after the 08/03/2017, you will get a full discount. Get in touch with your order number for more details.
Application Support/RoboFont/robofont.log
.spaceCenterSelectionChanged
notification.mojo.canvas
.spaceCenterDrawBackgroundLineView
and spaceCenterDrawLineView
autoSavePath
on Preferences export.sys_path_override
to the RoboFont application support folder, to overwrite embedded packages and modules. Be careful!None
, so don’t copy it.italicAngle
must be set.glyphCollectionDraw
, sent when redrawing the ice cube glyph view. Be careful and don’t draw heavy stuff. Cache before!Anchor.name
cannot by None
or empty, baseGlyph
is required for a component).autoSavePath
default key and revert the expanded user back to ~/…
.spaceCenter.getPointSize()
./?
) is not needed./!
to display the current glyph selection.CurrentSpaceCenter().disableDrag(True)
.spaceCenterAdditionContextualMenuItems
for additional contextual menu items.mutatorMath
and the *.desingSpace
icon.font.cmp(other)
.spaceCenterInputChanged
notification.from mojo.canvas import CanvasGroup
(same as Canvas but with no scrollview).recalcBounds
when there is no extreme point.KernCenter
, GroupCenter
and SpaceMatrix
to mojo.UI
.font.showUI()
.font.kerning.remove(pair)
and del font.kerning[pair]
.extensionsDir
.removeDefault
in lib.tools.defaults
.SmartSet
object.glyphOrderAndAliasDB
: store it in the font.lib with the key com.typesupply.ufo2fdk.glyphOrderAndAliasDB
.hdmx
table: store it in the font.lib with key com.robofont.robohint.hdmx
.VDMX
table: store it in the font.lib with the key com.robofont.robohint.VDMX
.font.copy()
by also copying layers.AllFonts("familyName", "styleName", "italicAngle", "isItalic", myCustomFunction, useDefault=True, reverse=False)
.fontOverviewAdditionContectualMenuItems
didTestInstallFont
.mojo.compile.ttfautohint
issues.baseGlyph
names for robofab interpolation.enableExternalFileCheck
(True/False).AllWindows()
and CurrentWindow()
to mojo.UI
.CurrentGlyph()
from a Space Center selection.mojo.canvas
.glyphWindow.addAdditionalView(vanillaView)
.glyphWindow.getVisibleRect()
to a glyph window. This is the actual visible rect without the scrollers and rulers.roundedRect
to mojo.drawingTools
.glyphWindow.getVisibleRect()
to a glyph window. This is the actual visible rectangle without the scrollers and rulers.Data()
object in json.glyph.setParent(font)
.sys.path
.SliderEditStepper
with support for floats.MenuBuilder
to mojo
.selectSmartSets(selection)
to set a selection in a Smart List (selection is a list of indexes).updateAllSmartSets()
to update a Smart Set list in the UI.self.
in a code editor.com.typesupply.feaPyFoFum.compileFeatures
to enable it while generating.move(x, y)
.RFont.templateGlyphOrder
.drawTextAtPoint
and drawTextInRect
to assist you to draw text in the glyph view.kerning.eliminate(…)
.font.templateGlyphs
is an attribute, not a method.glyphCollectionDraw
notification.autoUnicode()
uses uni<4-hex> and u<5-hex> glyph names to set the unicode value.glyphCellDraw
and glyphCellDrawBackground
. Use it wisely..ufo
file to update the file modification date.enableExternalFileCheck
(True
/False
).glyph.lib
when saving.moveTo
points in the same contour).USE_METRICS
(only while generating TTF).ufo2fdk
.CreateCursor(pathOrNsImage, hotspot)
.maxComponentElements
.This update only supports macOS 10.9 or higher.
Older versions of macOS are supported by RoboFont 1.6.
x
, y
values in guides.inspectorWindowWillShowDescriptions
, glyphWindowWillShowToolbarItems
and fontWindowWillShowToolbarItems
event notifications.glyph.isCompatible(otherGlyph)
.bundle.html
attribute to ExtensionBundle, to indicate if the bundle has html help files. It must be a bool.font.showUI()
(only for fonts which have no UI yet).glyph.center()
to work better with layers.OpenScriptWindow(path.py)
to mojo.UI
.obj.getRepresentation
to robofab glyph and font wrapper.font.save()
when no path is given and font has no path.AllFonts
.#
when commenting lines of code.mojo.CurrentFontWindow().setGlyphNamesAsSet(glyphNames)
font.setLayerDisplay
has an option for all
.mojo.UI.getTestInstalledFonts()
and mojo.UI.testDeinstallFont(font)
font.copy()
.font.info.update(otherInfoObject)
.currentFontOnly
option for getting windows with mojo: CurrentGlyphWindow(currentFontOnly=True)
works for all windows in mojo.mutatorMath
and mutatorMath.designSpace
icon :)__future__.division
while executing a script.vfb2ufo
installed in /usr/local/bin
.uXXXXX
.Alt
+ click on a straight line to generate BCPs with the rule of thirds.esc
menu.setBeam(pos)
and beam()
methods.selected
attribute to Robofab bPoints
.glyph.removeSelection
to RoboFab.ExtensionBundle
to save an extension or make one from scratch.mojo.UI
.AllSpaceCenterWindows
and CurrentSpaceCenterWindow
.rotate
, skew
and offset
attributes.robofab.contour.breakContour(point)
.mojo.glyphPreview
.mojo.UI.multiLineView
returns a proper Robofab glyph.SpaceCenterToPDF
and GlyphWindowToPDF
.robofont://path
and robofont-script://path.py
..ttc
TrueTypeCollection files.Agrave=A+grave@top
.include(myFile.fea)
..pfa
compiler..ttf
or .otf
from different sources.stemHist
to mojo.compile
.isCompatible
with nice error report.OpenFont(…, showUI=False)
can be opened in a Glyph Window or Space Center.font.templateSelection
in robofab.hasOverlap()
to robofab (both in glyph and contour object).font.copy(showUI=False/True)
to make a copy with or without UI.QTKit
.setGlyphViewScale
and centerGlyphInView
for a glyph window object.|
union, %
difference, &
intersection and ^
xor.aSpaceCenter.setTracking(10)
.spaceCenterDraw
, spaceCenterKeyDown
, spaceCenterKeyUp
.GlyphWindowToPDF
and SpaceCenterToPDF
to mojo.UI
.esc
in Space Center input will cancel setting metrics.Cmd + F
shows Find Glyph panel in Font Overview.None
.0
.keydown
notification in Preview mode.removeAnchor
.mouse down
when in Single Window mode.addComponent
copy metrics will be disabled when the glyph contains some contours.esc
during transform to reset the transformation.moveTo
points.None
when set in the Inspector.defaultForeGroundLayerColor
and defaultBackGroundLayerColor
to the Preferences.Test Install
hot key.None
..fea
files natively..fea
features file, which is inserted into code as a link: include(dropFilePath);
..ttf
files.robofont -h
.CurrentFont().glyphOrder
creates and removes template glyphs.viewWillChangeGlyph
and viewDidChangeGlyph
.mojo.UI
involving getting and setting Character Sets.mojo.tools
.glyph.pointInside()
is a lot faster..py
files encoded as utf-8.mojo.UI
.addSmartSet
, removeSmartSet
, setDefaultCharacterSet
, getDefaultCharacterSet
,removeCharacterSet
, getCharacterSet
, setCharacterSet
, setMaxAmountOfVisibleTools
,getMaxAmountOfVisibleTools
..py
and feature files.CurrentFontWindow()
in mojo.help
to the scripting namespace.binaryFontWillOpen
.mojo.compile
.getScriptingMenuNamingShortKey
and setScriptingMenuNamingShortKey
to mojo.UI
.testInstallFormat
for format used in test install (should be otf
or ttf
).clearDefaults
in lib.tools.defaults
.importPreferences
exportPreferences
.getToolsOrder
, setToolsOrder
to order the tools in the toolbar.public.glyphOrder
when there is no document in the RoboFab font object.robofabwrapperglyph
only :)robofabwrapper
.setDefault("newGlyphWidth", 123)
.numpy
objects.syncope
and csv
..woff
files.RSegment.smooth
.robofabwrapperglyph
.breakContour(point)
to robofabwrapperglyph
.public.glyphOrder
from font.lib..dmg
file.OpenFont("path/to/my/font", showUI=False)
.segmentType
and convert if necessary..fea
files as native documents. This will open a new feature window with no font attached – so it possible to send the feature to all open fonts, or to a selection of all open fonts..otf
.ttf
.fea
.pfa
.woff
.pfb
.py
files (will only be applied if RF is the default application to open these files)..ttf
in .woff
files..glif
xml.aicbtools
(copy paste from Illustrator and FL) now supports open paths.mouseUp
notification when zooming..
(period).mojo.UI.UpdateCurrentGlyphView
.from mojo.extensions import ExtensionBundle, getExtensionDefault, setExtensionDefault, getExtensionDefaultColor, setExtensionDefaultColor
glyphWindowWillOpen
, glyphWindowWillClose
, fontWillSave
, fontWillAutoSave
mojo.roboFont.version
:)from mojo.extensions import ExtensionBundle
UFObecomeActive
notifications.extensionValidator
.AccordionView
to mojo.UI
.registerExtensionDefaults
to mojo.extensions
.mojo.drawingTools
involving text with fill and stroke colors set.SetCurrentLayerByName
to mojo.UI
.removeGuides
.font.copy()
to the Robofab wrapper.rotate
in degrees instead of radians.obj.selected = True/False
(better).appendComponent
will check if it is referencing to itself.segment.selected
.glyph.mark
can accept None
to remove a mark color.glyph.mark
can handle a single as input.=e+10-z*10
or -=10+a
.mojo.canvas
object.‘
(single quote).HelpWindow
to mojo.UI
..py
files are now also document based.mojo.UI
can open a glyph in a window and create a new Space Center.drawPreview
event.familyName
and styleName
.removeGuide
..ttf
binaries.ttfautohint
installed, autohint
is an option. ttfautohint
cannot be embedded in RoboFont because of license incompatibilities..ttf
generation.allowPseudoUnicode
in the super Smart Sort.f.glyphOrder
returns the glyph order.SetCurrentGlyphByName
to mojo.UI
– set a glyph by name in the current glyph view..enc
file again :)Initial public version.