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 must be provided as a dict. The given settings will become the new defaults for the glyph view.

The available 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 contents of the Space Center as a pdf.

path
The path to the pdf file.
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 contents of the glyph window 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. It 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.

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.

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.

parentWindow
Optionally attach the Font Info Sheet to a specific parent window. By default it is attached to the main window.

OpenScriptWindow(path)

Open a .py file from 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 Smart Set list in the UI of all open Font Windows.

selectSmartSets(selection, currentDocumentOnly=True)

Select Smart Sets according to a given list of indexes.

currentDocumentOnly
Optionally apply the selection 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 characterSetName is the new default character set name.

removeCharacterSet(characterSetName)

Remove a character set by name.

getCharacterSets()

Return all character sets as a dictionary.

setCharacterSets(characterSets)

Set character sets from a dictionary.

setMaxAmountOfVisibleTools(value)

Set the maximum amount of visible tools in the toolbar.

getMaxAmountOfVisibleTools()

Get 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 indicating if a keyboard shortcut exists in the application menu.

getMenuShortCuts()

Get all menu shortcuts as a dictionary.

setMenuShortCuts(menuShortCuts)

Set menu shortcuts.

menuShortCuts must be a dict with a tuple of strings as keys, and a tuple of modifier integer and string as values:

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

removeMenuShortCut(*menuShortCut)

Remove a menu shortcut by its menu name.

exportPreferences(path=None)

Export all user preferences to a given file path.

When path is None, a dictionary with all Preferences values is returned.

importPreferences(pathOrObject)

Import user Preferences from a path or dictionary object.

splitText(text, cmap, groups={})

Convert a given text string to a list of glyph names based on the given 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)

Get a default Preferences value for a key, with a fallback value if the key is not present in the defaults.

setDefault(key, value)

Set a default Preferences value for a key.

removeDefault(key)

Remove a key from the Preferences defaults.

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 be 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. The 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 default 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 indicates which button is the default one.

from mojo.UI import AskYesNoCancel
print(AskYesNoCancel("is it raining?"))

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

A dialog to search for a glyph in a given 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 to select 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 select 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 to select 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='')

A 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 in a given list.

Optionally a message and title can be provided.

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

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

A dialog to select one font among all open fonts.

Optionally a message, title and allFonts can be provided. If allFonts is None, all open fonts will be listed.

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

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

A dialog to 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.

from mojo.UI import PostBannerNotification
PostBannerNotification("foo", "bar")

getScriptingMenuNamingShortKey()

setScriptingMenuNamingShortKey(data)

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

removeScriptingMenuNamingShortKeyForPath(path)

class SpaceCenter()

A vanilla object to preview text and edit the spacing values in a font.

from vanilla import Window
from mojo.UI import SpaceCenter

class MySpacingWindow:
    
    def __init__(self, font):
        self.font = font
        self.w = Window((800, 600), 'My Space Center', minSize=(600, 400))
        self.w.spaceCenter = SpaceCenter((0, 0, -0, -0), self.font, glyphNames='hello world')
        self.w.open()

MySpacingWindow(CurrentFont().naked())

beam()

Get the vertical 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 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 current 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.

  • True: left-to-right
  • False: right-to-left

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()

A Help Window to view HTML help files.

htmlPath
Path to html file to set in the HTML view.
htmlString
A string containing html to set in the HTML view.
title
The title of the 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 contents of the HTML view.

setHTML(html)

Set window contents from HTML string.

setHTMLPath(htmlPath)

Set window contents from path to HTML file.

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 to 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 indicating if 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 vanilla object to display a multi-glyph line view. This is the object used to build a Space Center.

Available arguments when initiating 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 return 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.

getSelection()

Return the selected index.

setCanSelect(value)

Set a bool indicating if the line view can select glyphs.

setSelection(index)

Set a selection index.

update()

Update the glyph line view.

canAutoScale()

Return a bool indicating if the view can scale automatically.

getDisplayStates()

Return the current display states as a dictionary.

getFont()

Return the font from the glyph line view.

getLayer()

getSelected()

Return the selected glyph.

getSelectedGlyphRecord()

Return the selected glyph record.

isFirstResponder()

Return a bool indicating if 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 from a given dict displayOptions.

setKerningInGlyphRecords(glyphRecords)

Apply kerning in the given glyph records.

setLayer(layer)

setSelectedGlyphRecord(glyphRecord)

Set the selected glyph record.

class SpaceMatrix()

A vanilla object to input values for width and left/right margins when spacing glyphs.

from mojo.UI import MultiLineView, SpaceMatrix
from vanilla import Window, HorizontalLine

class Controller:

    def __init__(self):

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

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

        f = CurrentFont()
        glyphs = [f["A"], f["a"]]

        self.w.lineView.setFont(f)
        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 a bool indicating if pre and after glyphs should be shown in the matrix.

getShowTemplateGlyphs()

Get a bool indicating if template glyphs should be shown in the matrix.

setBeamPosition(value)

Set the vertical position of the beam from the given value.

setShowBeam(value)

Set a bool indicating if the beam should be shown.

setShowPreAfterGlyphs(value)

Set a bool indicating if pre and after glyphs should be shown in the matrix.

setShowTemplateGlyphs(value)

Set a bool indicating if template glyphs should be shown in the matrix.

setSpaceCenter(spaceCenter)

Set a parent Space Center.

class GlyphSequenceEditText()

A vanilla view to input a sequence of glyphs.

from mojo.UI import GlyphSequenceEditText
from vanilla import Window

class Controller:

    def __init__(self):
        self.w = Window((400, 200))
        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 vanilla object to preview and edit kerning values in a given font.

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

lineViewAdjustSelectedPair(value)

lineViewSelectionCallback(selection)

class GroupCenter()

A vanilla object to preview and edit groups in a given font.

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

class MenuBuilder()

Build a menu from a structured list of items.

[
    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 NumberEditText()

A vanilla object to edit a numbers.

Inherits from subclass: vanilla.vanillaEditText.EditText

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 progress 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 02/04/2020