mojo.UI

getGlyphViewDisplaySettings()

Return a dictionary with the current display settings in the Glyph View.

setGlyphViewDisplaySettings(settings)

Set display options for the current Glyph View. Input as dict. These settings will be default for the glyph view. All options are: Fill, Stroke, Metrics, On Curve Points, Off Curve Points, Point Coordinates, Anchors, Curve Length, Blues, Family Blues, Rulers

AllSpaceCenters(currentFontOnly=False)

Return a list of all open Space Centers.

currentFontOnly
Optionally only return the Space Centers for the current font.

CurrentSpaceCenter(currentFontOnly=False)

Return the current Space Center.

currentFontOnly
Optionally only return the Space Center for the current font.

AllSpaceCenterWindows(currentFontOnly=False)

Return a list of all open Space Center windows.

currentFontOnly
Optionally only return the Space Center windows for the current font.

CurrentSpaceCenterWindow(currentFontOnly=False)

Return the current Space Center window.

currentFontOnly
Optionally only return the Space Center window for the current font.

SpaceCenterToPDF(path, spaceCenter=None, currentFontOnly=False)

Save the Space Center as a pdf.

path
The path to save the pdf.
spaceCenter
Optionally provide a Space Center, as default it takes the current Space Center.
currentFontOnly
Optionally only return the Space Center for the current font.

AllGlyphWindows(currentFontOnly=False)

Get all open Glyph Windows.

currentFontOnly
Optionally only return the glyph windows for the current font.

CurrentGlyphWindow(currentFontOnly=False)

Get the current Glyph Window.

currentFontOnly
Optionally only return the glyph window for the current font.

GlyphWindowToPDF(path, glyphWindow=None, currentFontOnly=False)

Save the glyph window editing view as a pdf.

path
The path to save the pdf.
glyphWindow
Optionally provide a Glyph Window, as default it takes the current Glyph Window.
currentFontOnly
Optionally only return the Glyph Window for the current font.

AllFontWindows()

Return all open font windows.

CurrentFontWindow()

Return the current Font Window.

AllWindows(currentFontOnly=False)

Return all open font related windows. The result is a list containing Font Windows, Glyph Windows, Space Centers, Single Font Windows.

currentFontOnly
Optionally only return the windows for the current font.

CurrentWindow(currentFontOnly=False)

Get the current font related window. Can be either a Font Window, Glyph Window, Space Center or a Single Font Window.

currentFontOnly
Optionally only return the window for the current font.

UpdateCurrentGlyphView()

Update the current Glyph View.

OutputWindow()

The output window. use OutputWindow().clear() to empty it.

SetCurrentGlyphByName(glyphName)

Set the current glyph by glyph name in the current Glyph View.

SetCurrentLayerByName(layerName)

Set the current layer by layer name.

OpenGlyphWindow(glyph=None, newWindow=False)

Open a Glyph Window with a given glyph.

glyph
Optionally provide a glyph object to set in the Glyph Window.
newWindow
Optionally force opening a new Glyph Window, even if there is already one open.

OpenSpaceCenter(font, newWindow=False)

Open a Space Center for a given font.

font
Optionally provide a font object to set in the Space Center.
newWindow
Optionally force opening a new Space Center window, even if there is already one open.

OpenFontInfoSheet(font, parentWindow=None)

Open a Font Info Sheet for a given font.

font
Optionally provide a font object to set in the info sheet.
parentWindow
Optionally attach the Font Info Sheet to a specific parent window. As default it is attached to the main window.

OpenScriptWindow(path)

Open a .py path in a Scripting Window.

path
The path to the .py file to open.

addSmartSet(smartSet, index=None)

Add a Smart Set object.

index
Optionally insert the given Smart Set at an index.

removeSmartSet(smartSetName)

Remove a Smart Set by name.

getSmartSets()

Return a list of all current Smart Sets.

updateAllSmartSets(selection=None)

Update the UI for a Smart Set list in all open font windows.

selectSmartSets(selection, currentDocumentOnly=True)

Select a Smart Set by selection a list of indexes.

currentDocumentOnly
Optionally apply it to all open documents.

setDefaultCharacterSet(characterSetName)

Set the default character set by name as defined in the Preferences.

getDefaultCharacterSet()

Return the name of the current default character set.

addCharacterSet(characterSetName, glyphNames, useAsDefault=False)

Add a character set with a characterSetName and a list of glyphNames.

useAsDefault
Optionally set a bool indicating if the new characterSetName is the default character set name.

removeCharacterSet(characterSetName)

Remove a character set by name.

getCharacterSets()

Return all character sets as a dictionary.

setCharacterSets(characterSets)

Set a dictionary of character sets.

setMaxAmountOfVisibleTools(value)

Set the maximum amount of visible tools in the toolbar.

getMaxAmountOfVisibleTools()

Return the maximum amount of visible tools in the toolbar.

createModifier(command=False, shift=False, control=False, alternate=False)

Return a modifier mask (integer) indicating which modifiers keys have been pressed. Keyword arguments (bool): command, shift, control, alternate.

shortKeyExists(shortKey)

Returns a bool True when a keyboard shortcut exist in the application menu.

getMenuShortCuts()

Return all menu shortcuts as a dictionary.

setMenuShortCuts(menuShortCuts)

Set menu short cuts.

Must be a dict with a tuple of strings as key, and the value is a tuple of a modifier integer and a string.

{ ("Scripts", "myToolMenuName"): (123456, "a") }

removeMenuShortCut(*menuShortCut)

Remove a menu shortcut by its menu name.

exportPreferences(path=None)

Export all user preferences to a path. When path is None, a dictionary with all the Preferences is returned.

importPreferences(pathOrObject)

Import user Preferences from a path or dictionary object.

splitText(text, cmap, groups={})

Convert a given string to a set of glyph names based on the a given text for a cmap

Optionally a groups dictionary can be provided.

getTestInstalledFonts()

Return all fonts which are test installed.

testDeinstallFont(font)

Deinstall a provided font.

getDefault(key, defaultValue=None, defaultClass=None)

setDefault(key, value)

removeDefault(key)

setPassword(service, username, password)

getPassword(service, username)

deletePassword(service, username)

dontShowAgainMessage(messageText='', informativeText='', alertStyle=1, parentWindow=None, resultCallback=None, dontShowAgainKey='')

Show a dialog with a ‘Don’t Show Again’ option.

messageText
The message to be displayed in the dialog.
informativeText
The inforamtive text to be displayed in the dialog.
alertStyle
Optionally provide an alert style see NSAlertStyle
parentWindow
Optionally provide a window object, must be a vanilla or NSWindow object.
resultCallback
The callback return the user input.
dontShowAgainKey
The key to store the result, if the key is available the dialog will not pop up. Must a reverse domain key: com.example.myTool.action

dontShowAgainYesOrNo(messageText='', informativeText='', alertStyle=1, parentWindow=None, resultCallback=None, buttons=[], dontShowAgainKey='')

Show a Yes or No dialog with a “Don’t Show Again” option.

messageText
The message to be displayed in the dialog.
informativeText
The informative text to be displayed in the dialog.
alertStyle
Optionally provide an alert style. see NSAlertStyle
parentWindow
Optionally provide a window object, must be a vanilla or NSWindow object.
resultCallback
The callback return the user input.
buttons
Optionally provide a list of button titles, defaults are:
  • Yes
  • No
  • Don’t show this message again
dontShowAgainKey
The key to store the result. If the key is available, the dialog will not pop up. Must be a reverse domain key: com.example.myTool.action

AskString(message, value='', title='FontParts')

A dialog to ask for a string. A message is required. Optionally a value and title can be provided.

from mojo.UI import AskString
print(AskString("who are you?"))

AskYesNoCancel(message, title='FontParts', default=0, informativeText='')

A dialog to ask for Yes, No or Cancel. A message is required. Optionally a title, default and informativeText can be provided. The default option is to indicate which button is the default one.

from mojo.UI import AskYesNoCancel
print(AskYesNoCancel("who are you?"))

FindGlyph(aFont, message='Search for a glyph:', title='FontParts')

A dialog to search for a glyph in a provided font. Optionally a message, title and allFonts can be provided.

from mojo.UI import FindGlyph
glyph = FindGlyph(CurrentFont())
print(glyph)

GetFile(message=None, title=None, directory=None, fileName=None, allowsMultipleSelection=False, fileTypes=None)

A dialog for getting one or more files. Optionally a message, title, directory, fileName and allowsMultipleSelection can be provided.

from mojo.UI import GetFile
print(GetFile())

GetFileOrFolder(message=None, title=None, directory=None, fileName=None, allowsMultipleSelection=False, fileTypes=None)

A dialog to get one or more files or folders. Optionally a message, title, directory, fileName, allowsMultipleSelection and fileTypes can be provided.

from mojo.UI import GetFileOrFolder
print(GetFileOrFolder())

GetFolder(message=None, title=None, directory=None, allowsMultipleSelection=False)

A dialog for getting one or more folders. Optionally a message, title, directory and allowsMultipleSelection can be provided.

from mojo.UI import GetFolder
print(GetFolder())

Message(message, title='FontParts', informativeText='')

An dialog to display a message. Optionally a message, title and informativeText can be provided.

from mojo.UI import Message
print(Message("This is a message"))

PutFile(message=None, fileName=None)

A dialog to put a file in a selected folder. Optionally a message and fileName can be provided.

from mojo.UI import PutFile
print(PutFile())

SearchList(items, message='Select an item:', title='FontParts')

A dialog to search a given list. Optionally a message, title and allFonts can be provided.

from mojo.UI import SearchList
result = SearchList(["a", "b", "c"])
print(result)

SelectFont(message='Select a font:', title='FontParts', allFonts=None)

Select a font from all open fonts. Optionally a message, title and allFonts can be provided. If allFonts is None it will list all open fonts.

from mojo.UI import SelectFont
font = SelectFont()
print(font)

SelectGlyph(aFont, message='Select a glyph:', title='FontParts')

Select a glyph from a given font. Optionally a message and title can be provided.

from mojo.UI import SelectGlyph
font = CurrentFont()
glyph = SelectGlyph(font)
print(glyph)

PostBannerNotification(title, informativeText)

Pop up a banner notification with a provided title and informativeText. Usage:

PostBannerNotification("foo", "bar")

getScriptingMenuNamingShortKey()

setScriptingMenuNamingShortKey(data)

setScriptingMenuNamingShortKeyForPath(path, preferredName, shortKey='', modifier=None)

removeScriptingMenuNamingShortKeyForPath(path)

class SpaceCenter()

An invisible container for controls.

To add a control to a group, simply set it as an attribute of the group.::

from vanilla import *

class GroupDemo(object):

    def __init__(self):
        self.w = Window((150, 50))
        self.w.group = Group((10, 10, -10, -10))
        self.w.group.text = TextBox((0, 0, -0, -0),
                                "This is a group")
        self.w.open()

GroupDemo()

No special naming is required for the attributes. However, each attribute must have a unique name.

posSize Tuple of form (left, top, width, height) or “auto” representing the position and size of the group.

blendingMode The blending mode for the window. These are the possible options:

+—————-+——————————————-+ | None | No special blending. | +—————-+——————————————-+ | “behindWindow” | Blend with the content behind the window. | +—————-+——————————————-+ | “withinWindow” | Blend with the content within the window. | +—————-+——————————————-+

beam()

Get the position of the beam.

disableDrag(value)

get()

Get the text input as a list of glyph names.

getAfter()

Get the ‘after’ control glyphs input as a list of glyph names.

getLayerName()

Get the currently selected font layer to be used in the preview.

getLeftToRight()

Get the writing direction of the text sample as a bool.

True -> left-to-right False -> right-to-left

getLineHeight()

Get the line height of the text sample.

getPointSize()

Get the point size of the text sample.

getPre()

Get the ‘before’ control glyphs input as a list of glyph names.

getRaw()

Get the text input as a string of characters.

getScrollbarHeight()

getShowLayers()

Get the layers to be shown in addition to the currently selected layer.

getShowNumberInputView()

Get the current display state of the Space Matrix as a bool.

getSuffix()

Get the current glyph name suffix.

getTracking()

Get the tracking of the text sample.

glyphLineViewInputCallback(sender)

keepSelectionAfterCurrentGlyphChanged()

layersCallback(sender)

layersChanged(sender)

populateLayers()

populateSettings()

populateSuffixs()

previewSizeCallback(sender)

refreshAllExept(sender=None)

set(glyphNames)

Set the text input from a list of glyph names.

setAfter(glyphNames)

Set the ‘after’ control glyphs input from a list of glyph names.

setBeam(value)

Set the position of the beam.

setFont(font)

Set the font for the text sample.

The given font can be an RFont or a defcon Font object.

setGlyphLineInputSampleText()

setInputWritingDirection(direction)

setLayerName(layer)

Set the font layer to be used in the preview.

setLeftToRight(value)

Set the writing direction of the text sample.

left-to-right -> True right-to-left -> False

setLineHeight(value)

Set the line height of the text sample.

setLineHeightCallback(sender)

setPointSize(size)

Set the point size of the text sample.

setPointSizeFromLineView(value)

setPre(glyphNames)

Set the ‘before’ control glyphs input from a list of glyph names.

setRaw(value)

Set the text input from a string of characters.

setSettingMenuStates()

setShowLayers(layer)

Set additional layers to be shown in the text sample.

Layers which are not present in the font will be silently ignored.

Use None to clear the layers list.

setShowNumberInputView(value)

Set the current display state of the Space Matrix as a bool.

setSuffix(suffix)

Set a glyph name suffix.

Suffixes which are not present in the font will be silently ignored.

Use None to clear suffixes.

setTracking(value)

Set the tracking of the text sample.

setTrackingCallback(sender)

settingsCallback(sender)

suffixCallback(sender)

updateGlyphLineView()

updateInputFields(sender, changedItem, newGlyph)

usesCurrentGlyph()

windowDidFinish(sender)

Inherits from subclass: vanilla.vanillaGroup.Group

class HelpWindow()

Open a Help Window with a html file.

htmlPath
Path to html file to set in the HTMLView of the HelpWindow.
htmlString
A string containing html to set in the HTMLView of the Help Window.
title
The title of the Help window.
developer
A string with the name of the developer. (optional)
developerURL
A URL link to the developer. (optional)
from mojo.UI import HelpWindow

HelpWindow("http://robofont.com")
Inherits from subclass: mojo.UI.HelpWindow

reload()

Reload the Help Window.

setHTML(html)

Set html string for the Help Window.

setHTMLPath(htmlPath)

Set the html path for the Help Window.

class HTMLView()

A vanilla browser object.

posSize

a tuple of four, setting the size

clearHistory()

Clear HTMLView history.

goBack()

Go backward in the history of the HTMLView.

goForward()

Go forward in the history of the HTMLView.

setFrameDelegate(delegate)

Set a frame delegate.

Inherits from subclass: vanilla.vanillaGroup.Group

class CodeEditor()

Code editor control.::

from vanilla import Window
from mojo.UI import CodeEditor

class CodeEditorDemo(object):

    def __init__(self):
        self.w = Window((200, 200))
        self.w.codeEditor = CodeEditor((10, 10, -10, -10),
                            callback=self.codeEditorCallback,
                            showLineNumbers=True)
        self.w.open()

    def codeEditorCallback(self, sender):
        print("text entry!", sender.get())

CodeEditorDemo()

posSize Tuple of form (left, top, width, height) representing the position and size of the text entry control.

text The text to be displayed in the text entry control.

lexer A pygements lexer: `from pygments.lexers import PythonLexer

usesTabs Boolean representing if the ediotor should use tabs.

indentSize The amount of indent.

showLineNumbers Boolean representing to showing line numbers

callback The method to be called when the user presses the text entry control.

readOnly Boolean representing if the text can be edited or not.

checksSpelling Boolean representing if spelling should be automatically checked or not.

comment()

dedent()

hasLineNumbers()

indent()

indentSize()

jumpToLine(lineNumber=None)

setHighlightStyle(style)

setIndentSize(value)

setLanguagesIDEBehavior(languagesIDEBehavior)

setLexer(lexer)

setUsesTabs(value)

showLineNumbers(value)

toggleLineNumbers()

uncomment()

usesTabs()

wrapWord(value)

Inherits from subclass: vanilla.vanillaTextEditor.TextEditor

getNSTextView()

Return the NSTextView that this object wraps.

selectAll()

Select all text in the text entry control.

class AccordionView()

A vanilla object hosting different kinds of other vanilla objects (like vanilla.List, vanilla.TextEditor, ….) in an accordion view.

posSize

a tuple of four, setting the size

descriptions

list of options for each item in the accordionView (see example)

backgroundColor

a NSColor object used as background color

from mojo.UI import AccordionView
from vanilla import *

class MyInspector:

    def __init__(self):

        self.w = FloatingWindow((200, 600))

        self.firstItem = TextEditor((10, 10, -10, -10))

        self.secondItem = List((0, 0, -0, -0), ["a", "b", "c"])

        self.thirdItem = Tabs((10, 10, -10, -10), ["1", "2", "3"])

        self.fourthItem = Group((0, 0, -0, -0))

        self.fourthItem.checkBox = CheckBox((10, 10, 100, 22), "CheckBox")
        self.fourthItem.editText = EditText((10, 40, -10, 22))


        descriptions = [
                       dict(label="first item", view=self.firstItem, size=200, collapsed=False, canResize=False),
                       dict(label="second item", view=self.secondItem, minSize=100, size=140, collapsed=True, canResize=True),
                       dict(label="third item", view=self.thirdItem, minSize=100, size=140, collapsed=True, canResize=False),
                       dict(label="fourth item", view=self.fourthItem, size=140, collapsed=False, canResize=False)
                       ]

        self.w.accordionView = AccordionView((0, 0, -0, -0), descriptions)

        self.w.open()

MyInspector()
Inherits from subclass: vanilla.vanillaScrollView.ScrollView

setBackgroundColor(color)

Set the background of the scrol view to color.

class SmartSet()

A Smart Set object.

Inherits from subclass: mojo.UI.SmartSet

glyphNames

A list of glyph names.

groups

Return a list of all smart sets inside a group item.

name

Name of the smart set.

query

Search query of the smart set.

addGroupSmartSet(smartSet)

Add a provided smartSet in a Smart Set group item.

getQueryObject()

Return the query as a NSPredicate object.

getQueryResult(font)

Return a list of glyph names after applying a query for a given font.

isGroup()

Return a bool when the Smart Set is a group item.

removeGroupSmartSet(smartSet)

Remove the provided smartSet from a Smart Set group item.

removeGroups()

Remove all groups in the group item.

class MultiLineView()

A multi-glyph line view vanilla object. This is the object used to build a Space Center.

Initiate a multi line view object:

posSize
A tuple of four values setting the position and size.
pointSize
The initial point size. (optional)
lineHeight
The initial line height. (optional)
doubleClickCallback
Callback for a double-click event.
applyKerning
Enable kerning in the view. (optional)
bordered
Set a border around the view.
hasHorizontalScroller
Set the horizontal scroller.
hasVerticalScroller
Set the vertical scroller.
displayOptions
A dict with multi-line view display options.
selectionCallback
Callback for when a glyph gets selected.
menuForEventCallback
Callback for when a contextual menu is used, required to returning a NSMenu object.
from mojo.UI import MultiLineView
from vanilla import *

class MyOwnSpaceCenter:

    def __init__(self, font):

        self.w = Window((600, 400), minSize=(300, 300))

        self.w.lineView = MultiLineView((0, 0, -0, -0),
                pointSize=30,
                selectionCallback=self.lineViewSelectionCallback)
        self.w.lineView.setFont(font)

        glyphs = []
        for glyphName in font.glyphOrder:
            glyphs.append(font[glyphName])

        self.w.lineView.set(glyphs)

        self.w.open()

    def lineViewSelectionCallback(self, sender):
        print(sender.getSelectedGlyph())

MyOwnSpaceCenter(CurrentFont())
Inherits from subclass: mojo.UI.MultiLineView

createEmptyGlyph(name=None)

Return a special empty glyph.

createNewLineGlyph()

Return a special new line glyph.

getSelectedGlyph()

Return the selected glyph.

setCanSelect(value)

Set a bool to indicate if a line view can select glyphs.

update()

Update the glyph line view.

canAutoScale()

Return if the view can auto scale

getDisplayStates()

Return current display states.

getFont()

Return the font form the glyph line view.

getLayer()

getSelected()

Return the selected glyph

getSelectedGlyphRecord()

Return the selected glyph record

getSelection()

Return the selected index.

isFirstResponder()

Return of the line view is the first responder.

setApplyKerning(value)

Set apply kerning.

setCenter(center)

Get the parent space center.

setDisplayMode(mode)

Set a display mode.

setDisplayStates(displayOptions)

Set display states.

setKerningInGlyphRecords(glyphRecords)

Apply kerning in given glyph records.

setLayer(layer)

setSelectedGlyphRecord(glyphRecord)

Set the selected glyph record.

setSelection(index)

Set a selection index.

class SpaceMatrix()

A Space Matrix view vanilla object.

from mojo.UI import MultiLineView, SpaceMatrix
from vanilla import *

class Controller:

    def __init__(self):

        self.w = Window((400, 400))

        self.w.lineView = MultiLineView((0, 0, -0, -48))
        self.w.hl = HorizontalLine((0, -(48+1), -0, 1))
        self.w.matrix = SpaceMatrix((0, -48, -0, -0), callback=self._matrixCallback)

        f = CurrentFont()

        glyphs = [f["A"], f["a"]]

        self.w.lineView.set(glyphs)
        self.w.matrix.set(glyphs)
        self.w.open()

    def _matrixCallback(self, sender):
        self.w.lineView.update()

Controller()
Inherits from subclass: mojo.UI.SpaceMatrix

getShowPreAfterGlyphs()

Get show pre and after glyphs.

getShowTemplateGlyphs()

Get show template glyphs.

setBeamPosition(value)

Set beam position.

setShowBeam(value)

Set show beam as a bool.

setShowPreAfterGlyphs(value)

Set show pre and after glypsh as a bool.

setShowTemplateGlyphs(value)

Set show template glyphs as a bool.

setSpaceCenter(spaceCenter)

Set a parent space center.

class GlyphSequenceEditText()

A glyph sequence control as vanilla view.

from mojo.UI import GlyphSequenceEditText

from vanilla import *

class Controller:

    def __init__(self):

        self.w = Window((400, 400))

        self.w.sequence = GlyphSequenceEditText((10, 10, -10, 22),
            font=CurrentFont(),
            callback=self._sequenceCallback)

        self.w.open()

    def _sequenceCallback(self, sender):
        print(sender.get())

Controller()
Inherits from subclass: mojo.UI.GlyphSequenceEditText

validateSequenceEditCallback(sender)

getNSTextField()

Return the NSTextField that this object wraps.

getPlaceholder()

Get the placeholder string displayed in the control.

setPlaceholder(value)

Set value as the placeholder string to be displayed in the control. value must be a string.

bind(key, callback)

getTitle()

Get the control title.

isEnabled()

Return a bool indicating if the object is enable or not.

setTitle(title)

Set the control title.

title A string representing the title.

class KernCenter()

A Kerning view vanilla object for a given font.

parentWindow
Optionally provide a parentWindow to attach the sheet to.
Inherits from subclass: mojo.UI.KernCenter

lineViewSelectionCallback(selection)

class GroupCenter()

A Groups view vanilla object for a givenfont.

parentWindow
Optionally provide a parentWindow to attach the sheet to.
Inherits from subclass: mojo.UI.GroupCenter

class MenuBuilder()

Build a menu from a list structure.

[
    NSMenuItem,
    ("title", callback),
    ("title", [
            ("sub menu title", callback),
        ])
]
title
Optionally provide a title.
Inherits from subclass: mojo.UI.MenuBuilder

pyobjc_ISA

pyobjc_instanceMethods

open(event, view)

Open the menu for an event in a view.

buildAdditionContextualMenuItems(menu, additionContextualMenuItems, insert=None)

getMenu()

Return the menu.

class DoodleWindow()

A window capable of containing controls.

To add a control to a window, simply set it as an attribute of the window.::

from vanilla import *

class WindowDemo(object):

    def __init__(self):
        self.w = Window((200, 70), "Window Demo")
        self.w.myButton = Button((10, 10, -10, 20), "My Button")
        self.w.myTextBox = TextBox((10, 40, -10, 17), "My Text Box")
        self.w.open()

WindowDemo()

No special naming is required for the attributes. However, each attribute must have a unique name.

posSize Tuple of form (left, top, width, height) representing the position and size of the window. It may also be a tuple of form (width, height). In this case, the window will be positioned on screen automatically.

title The title to be set in the title bar of the window.

minSize Tuple of the form (width, height) representing the minimum size that the window can be resized to.

maxSize Tuple of the form (width, height) representing the maximum size that the window can be resized to.

textured Boolean value representing if the window should have a textured appearance or not.

autosaveName A string representing a unique name for the window. If given, this name will be used to store the window position and size in the application preferences.

closable Boolean value representing if the window should have a close button in the title bar.

miniaturizable Boolean value representing if the window should have a minimize button in the title bar.

initiallyVisible Boolean value representing if the window will be initially visible. Default is True. If False, you can show the window later by calling window.show().

fullScreenMode An indication of the full screen mode. These are the options:

+—————+—————————————————————+ | None | The window does not allow full screen. | +—————+—————————————————————+ | “primary” | Corresponds to NSWindowCollectionBehaviorFullScreenPrimary. | +—————+—————————————————————+ | “auxiliary” | Corresponds to NSWindowCollectionBehaviorFullScreenAuxiliary. | +—————+—————————————————————+

titleVisible Boolean value indicating if the window title should be displayed.

fullSizeContentView Boolean value indicating if the content view should be the full size of the window, including the area underneath the titlebar and toolbar.

screen A NSScreen_ object indicating the screen that the window should be drawn to. When None the window will be drawn to the main screen.

.. _NSScreen: http://developer.apple.com/documentation/appkit/nsscreen?language=objc

Inherits from subclass: builtins.objc.objc_class

class StatusInteractivePopUpWindow()

A window capable of containing controls.

To add a control to a window, simply set it as an attribute of the window.::

from vanilla import *

class WindowDemo(object):

    def __init__(self):
        self.w = Window((200, 70), "Window Demo")
        self.w.myButton = Button((10, 10, -10, 20), "My Button")
        self.w.myTextBox = TextBox((10, 40, -10, 17), "My Text Box")
        self.w.open()

WindowDemo()

No special naming is required for the attributes. However, each attribute must have a unique name.

posSize Tuple of form (left, top, width, height) representing the position and size of the window. It may also be a tuple of form (width, height). In this case, the window will be positioned on screen automatically.

title The title to be set in the title bar of the window.

minSize Tuple of the form (width, height) representing the minimum size that the window can be resized to.

maxSize Tuple of the form (width, height) representing the maximum size that the window can be resized to.

textured Boolean value representing if the window should have a textured appearance or not.

autosaveName A string representing a unique name for the window. If given, this name will be used to store the window position and size in the application preferences.

closable Boolean value representing if the window should have a close button in the title bar.

miniaturizable Boolean value representing if the window should have a minimize button in the title bar.

initiallyVisible Boolean value representing if the window will be initially visible. Default is True. If False, you can show the window later by calling window.show().

fullScreenMode An indication of the full screen mode. These are the options:

+—————+—————————————————————+ | None | The window does not allow full screen. | +—————+—————————————————————+ | “primary” | Corresponds to NSWindowCollectionBehaviorFullScreenPrimary. | +—————+—————————————————————+ | “auxiliary” | Corresponds to NSWindowCollectionBehaviorFullScreenAuxiliary. | +—————+—————————————————————+

titleVisible Boolean value indicating if the window title should be displayed.

fullSizeContentView Boolean value indicating if the content view should be the full size of the window, including the area underneath the titlebar and toolbar.

screen A NSScreen_ object indicating the screen that the window should be drawn to. When None the window will be drawn to the main screen.

.. _NSScreen: http://developer.apple.com/documentation/appkit/nsscreen?language=objc

close()

windowDeselectCallback_()

Inherits from subclass: builtins.objc.objc_class

class ScrollToFirstResponderWindow()

A window capable of containing controls.

To add a control to a window, simply set it as an attribute of the window.::

from vanilla import *

class WindowDemo(object):

    def __init__(self):
        self.w = Window((200, 70), "Window Demo")
        self.w.myButton = Button((10, 10, -10, 20), "My Button")
        self.w.myTextBox = TextBox((10, 40, -10, 17), "My Text Box")
        self.w.open()

WindowDemo()

No special naming is required for the attributes. However, each attribute must have a unique name.

posSize Tuple of form (left, top, width, height) representing the position and size of the window. It may also be a tuple of form (width, height). In this case, the window will be positioned on screen automatically.

title The title to be set in the title bar of the window.

minSize Tuple of the form (width, height) representing the minimum size that the window can be resized to.

maxSize Tuple of the form (width, height) representing the maximum size that the window can be resized to.

textured Boolean value representing if the window should have a textured appearance or not.

autosaveName A string representing a unique name for the window. If given, this name will be used to store the window position and size in the application preferences.

closable Boolean value representing if the window should have a close button in the title bar.

miniaturizable Boolean value representing if the window should have a minimize button in the title bar.

initiallyVisible Boolean value representing if the window will be initially visible. Default is True. If False, you can show the window later by calling window.show().

fullScreenMode An indication of the full screen mode. These are the options:

+—————+—————————————————————+ | None | The window does not allow full screen. | +—————+—————————————————————+ | “primary” | Corresponds to NSWindowCollectionBehaviorFullScreenPrimary. | +—————+—————————————————————+ | “auxiliary” | Corresponds to NSWindowCollectionBehaviorFullScreenAuxiliary. | +—————+—————————————————————+

titleVisible Boolean value indicating if the window title should be displayed.

fullSizeContentView Boolean value indicating if the content view should be the full size of the window, including the area underneath the titlebar and toolbar.

screen A NSScreen_ object indicating the screen that the window should be drawn to. When None the window will be drawn to the main screen.

.. _NSScreen: http://developer.apple.com/documentation/appkit/nsscreen?language=objc

Inherits from subclass: builtins.objc.objc_class

class ScrollToFirstResponderSheet()

A window that is attached to another window.

To add a control to a sheet, simply set it as an attribute of the sheet.::

from vanilla import *

class SheetDemo(object):

    def __init__(self, parentWindow):
        self.w = Sheet((200, 70), parentWindow)
        self.w.myButton = Button((10, 10, -10, 20), "My Button")
        self.w.myTextBox = TextBox((10, 40, -10, 17), "My Text Box")
        self.w.open()

SheetDemo()

No special naming is required for the attributes. However, each attribute must have a unique name.

posSize Tuple of form (width, height) representing the size of the sheet.

parentWindow The window that the sheet should be attached to.

minSize Tuple of the form (width, height) representing the minimum size that the sheet can be resized to.

maxSize Tuple of the form (width, height) representing the maximum size that the sheet can be resized to.

autosaveName A string representing a unique name for the sheet. If given, this name will be used to store the sheet size in the application preferences.

Inherits from subclass: vanilla.vanillaWindows.Sheet

class ModalWindow()

A window capable of containing controls.

To add a control to a window, simply set it as an attribute of the window.::

from vanilla import *

class WindowDemo(object):

    def __init__(self):
        self.w = Window((200, 70), "Window Demo")
        self.w.myButton = Button((10, 10, -10, 20), "My Button")
        self.w.myTextBox = TextBox((10, 40, -10, 17), "My Text Box")
        self.w.open()

WindowDemo()

No special naming is required for the attributes. However, each attribute must have a unique name.

posSize Tuple of form (left, top, width, height) representing the position and size of the window. It may also be a tuple of form (width, height). In this case, the window will be positioned on screen automatically.

title The title to be set in the title bar of the window.

minSize Tuple of the form (width, height) representing the minimum size that the window can be resized to.

maxSize Tuple of the form (width, height) representing the maximum size that the window can be resized to.

textured Boolean value representing if the window should have a textured appearance or not.

autosaveName A string representing a unique name for the window. If given, this name will be used to store the window position and size in the application preferences.

closable Boolean value representing if the window should have a close button in the title bar.

miniaturizable Boolean value representing if the window should have a minimize button in the title bar.

initiallyVisible Boolean value representing if the window will be initially visible. Default is True. If False, you can show the window later by calling window.show().

fullScreenMode An indication of the full screen mode. These are the options:

+—————+—————————————————————+ | None | The window does not allow full screen. | +—————+—————————————————————+ | “primary” | Corresponds to NSWindowCollectionBehaviorFullScreenPrimary. | +—————+—————————————————————+ | “auxiliary” | Corresponds to NSWindowCollectionBehaviorFullScreenAuxiliary. | +—————+—————————————————————+

titleVisible Boolean value indicating if the window title should be displayed.

fullSizeContentView Boolean value indicating if the content view should be the full size of the window, including the area underneath the titlebar and toolbar.

screen A NSScreen_ object indicating the screen that the window should be drawn to. When None the window will be drawn to the main screen.

.. _NSScreen: http://developer.apple.com/documentation/appkit/nsscreen?language=objc

Inherits from subclass: builtins.objc.objc_class

class ShowHideFloatingWindow()

A window that floats above all other windows.

To add a control to a window, simply set it as an attribute of the window.::

from vanilla import *

class FloatingWindowDemo(object):

    def __init__(self):
        self.w = FloatingWindow((200, 70), "FloatingWindow Demo")
        self.w.myButton = Button((10, 10, -10, 20), "My Button")
        self.w.myTextBox = TextBox((10, 40, -10, 17), "My Text Box")
        self.w.open()

FloatingWindowDemo()

No special naming is required for the attributes. However, each attribute must have a unique name.

posSize Tuple of form (left, top, width, height) representing the position and size of the window. It may also be a tuple of form (width, height). In this case, the window will be positioned on screen automatically.

title The title to be set in the title bar of the window.

minSize Tuple of the form (width, height) representing the minimum size that the window can be resized to.

maxSize Tuple of the form (width, height) representing the maximum size that the window can be resized to.

textured Boolean value representing if the window should have a textured appearance or not.

autosaveName A string representing a unique name for the window. If given, this name will be used to store the window position and size in the application preferences.

closable Boolean value representing if the window should have a close button in the title bar.

screen A NSScreen_ object indicating the screen that the window should be drawn to. When None the window will be drawn to the main screen.

.. _NSScreen: http://developer.apple.com/documentation/appkit/nsscreen?language=objc

Inherits from subclass: vanilla.vanillaWindows.FloatingWindow

show()

Show the window if it is hidden.

class ShowHideWindow()

A window capable of containing controls.

To add a control to a window, simply set it as an attribute of the window.::

from vanilla import *

class WindowDemo(object):

    def __init__(self):
        self.w = Window((200, 70), "Window Demo")
        self.w.myButton = Button((10, 10, -10, 20), "My Button")
        self.w.myTextBox = TextBox((10, 40, -10, 17), "My Text Box")
        self.w.open()

WindowDemo()

No special naming is required for the attributes. However, each attribute must have a unique name.

posSize Tuple of form (left, top, width, height) representing the position and size of the window. It may also be a tuple of form (width, height). In this case, the window will be positioned on screen automatically.

title The title to be set in the title bar of the window.

minSize Tuple of the form (width, height) representing the minimum size that the window can be resized to.

maxSize Tuple of the form (width, height) representing the maximum size that the window can be resized to.

textured Boolean value representing if the window should have a textured appearance or not.

autosaveName A string representing a unique name for the window. If given, this name will be used to store the window position and size in the application preferences.

closable Boolean value representing if the window should have a close button in the title bar.

miniaturizable Boolean value representing if the window should have a minimize button in the title bar.

initiallyVisible Boolean value representing if the window will be initially visible. Default is True. If False, you can show the window later by calling window.show().

fullScreenMode An indication of the full screen mode. These are the options:

+—————+—————————————————————+ | None | The window does not allow full screen. | +—————+—————————————————————+ | “primary” | Corresponds to NSWindowCollectionBehaviorFullScreenPrimary. | +—————+—————————————————————+ | “auxiliary” | Corresponds to NSWindowCollectionBehaviorFullScreenAuxiliary. | +—————+—————————————————————+

titleVisible Boolean value indicating if the window title should be displayed.

fullSizeContentView Boolean value indicating if the content view should be the full size of the window, including the area underneath the titlebar and toolbar.

screen A NSScreen_ object indicating the screen that the window should be drawn to. When None the window will be drawn to the main screen.

.. _NSScreen: http://developer.apple.com/documentation/appkit/nsscreen?language=objc

Inherits from subclass: builtins.objc.objc_class

class EditStepper()

A vanilla object to edit a value with stepper.

enable(value)

Enable the stepper.

Inherits from subclass: vanilla.vanillaGroup.Group

class EditIntStepper()

A vanilla object to edit a value with stepper.

Inherits from subclass: vanilla.vanillaGroup.Group

class SliderEditStepper()

A vanilla object to edit a value with stepper and a slider.

Inherits from subclass: vanilla.vanillaGroup.Group

class SliderEditIntStepper()

A vanilla object to edit a value with stepper and a slider.

Inherits from subclass: vanilla.vanillaGroup.Group

class StatusBar()

A vanilla object status bar.status

posSize

a tuple of four, setting the size

notificationName

A optional notification name to subscribe to extract status messages when the notification is been send.

horizontalLine

An optional bool indication to draw a horizontal line at the top.

textAlign

An optional text align value, possible options are left, right, center, justified, natural.

textPosLeft and textPosRight

An optional value indication the left and right margins inside the view

from mojo.UI import StatusBar
from vanilla import *

class StatusBarExample(object):

    def __init__(self):
        self.w = Window((250, 300))

        self.w.hello = Button((10, 10, -10, 22), "Hello", callback=self.helloCallback)
        self.w.helloFade = Button((10, 40, -10, 22), "Hello Fade", callback=self.helloFadeCallback)
        self.w.helloWarning = Button((10, 70, -10, 22), "Hello Warning", callback=self.helloWarningCallback)

        self.w.statusBar = StatusBar((0, -18, -0, -0))
        self.w.open()

    def helloCallback(self, sender):
        self.w.statusBar.set(["hello"])

    def helloFadeCallback(self, sender):
        self.w.statusBar.set(["hello Fade"], fadeOut=True)

    def helloWarningCallback(self, sender):
        self.w.statusBar.set(["hello Warning"], warning=True)

StatusBarExample()

performFadeOut(sender)

Inherits from subclass: vanilla.vanillaGroup.Group

class LightStatusBar()

A vanilla object status bar.status

posSize

a tuple of four, setting the size

notificationName

A optional notification name to subscribe to extract status messages when the notification is been send.

horizontalLine

An optional bool indication to draw a horizontal line at the top.

textAlign

An optional text align value, possible options are left, right, center, justified, natural.

textPosLeft and textPosRight

An optional value indication the left and right margins inside the view

from mojo.UI import StatusBar
from vanilla import *

class StatusBarExample(object):

    def __init__(self):
        self.w = Window((250, 300))

        self.w.hello = Button((10, 10, -10, 22), "Hello", callback=self.helloCallback)
        self.w.helloFade = Button((10, 40, -10, 22), "Hello Fade", callback=self.helloFadeCallback)
        self.w.helloWarning = Button((10, 70, -10, 22), "Hello Warning", callback=self.helloWarningCallback)

        self.w.statusBar = StatusBar((0, -18, -0, -0))
        self.w.open()

    def helloCallback(self, sender):
        self.w.statusBar.set(["hello"])

    def helloFadeCallback(self, sender):
        self.w.statusBar.set(["hello Fade"], fadeOut=True)

    def helloWarningCallback(self, sender):
        self.w.statusBar.set(["hello Warning"], warning=True)

StatusBarExample()
Inherits from subclass: vanilla.vanillaGroup.Group

class SimpleStatus()

A vanilla object status bar.status

posSize

a tuple of four, setting the size

notificationName

A optional notification name to subscribe to extract status messages when the notification is been send.

horizontalLine

An optional bool indication to draw a horizontal line at the top.

textAlign

An optional text align value, possible options are left, right, center, justified, natural.

textPosLeft and textPosRight

An optional value indication the left and right margins inside the view

from mojo.UI import StatusBar
from vanilla import *

class StatusBarExample(object):

    def __init__(self):
        self.w = Window((250, 300))

        self.w.hello = Button((10, 10, -10, 22), "Hello", callback=self.helloCallback)
        self.w.helloFade = Button((10, 40, -10, 22), "Hello Fade", callback=self.helloFadeCallback)
        self.w.helloWarning = Button((10, 70, -10, 22), "Hello Warning", callback=self.helloWarningCallback)

        self.w.statusBar = StatusBar((0, -18, -0, -0))
        self.w.open()

    def helloCallback(self, sender):
        self.w.statusBar.set(["hello"])

    def helloFadeCallback(self, sender):
        self.w.statusBar.set(["hello Fade"], fadeOut=True)

    def helloWarningCallback(self, sender):
        self.w.statusBar.set(["hello Warning"], warning=True)

StatusBarExample()
Inherits from subclass: vanilla.vanillaGroup.Group

class ProgressBar()

A progess bar dialog. Optionally a title, ticks and label can be provided.

from mojo.UI import ProgressBar

bar = ProgressBar()
# do something
bar.close()
Inherits from subclass: mojo.UI.ProgressBar

getCurrentTick()

Return the current tick state.

label(label)

Set the label for the progress bar.

tick(tickValue=None)

Increment the tick value. Optionally a tickValue can be provided to set the tick count.

Last edited on 06/11/2019