mojo.ezuiViews
An overview of all the custom RoboFont views available in ezui
.
RoboFont extends ezui
by adding some custom views like GlyphPreview
, GlyphSequence
, CodeEditor
, GlyphLineView
. To use any of these views, you need to type an asterisk followed by the object name and then provide an identifier prefixed by @
for callbacks, something like:
"""
* GlyphPreview @preview
"""
You can pass the arguments for the object initiation into the descriptionData
dictionary. Check the following examples for some references.
GlyphPreview
Please, open a font and select a glyph before running this example.
import ezui
class Controller(ezui.WindowController):
def build(self):
content = """
* GlyphPreview @preview
"""
descriptionData = dict(
preview=dict(
height=300,
width=300,
glyph=CurrentGlyph()
)
)
font = CurrentFont()
self.w = ezui.EZWindow(
title=f"{font.info.familyName} {font.info.styleName}",
content=content,
descriptionData=descriptionData,
size="auto",
controller=self
)
def started(self):
self.w.open()
Controller()
GlyphSequence
Please, open a font before running this example.
import ezui
class Controller(ezui.WindowController):
def build(self):
font = CurrentFont()
content = """
* GlyphSequence @sequence
"""
descriptionData = dict(
sequence=dict(
height=22,
width=200,
font=font,
)
)
self.w = ezui.EZWindow(
title=f"{font.info.familyName} {font.info.styleName}",
content=content,
descriptionData=descriptionData,
size="auto",
controller=self
)
def started(self):
self.w.open()
def sequenceCallback(self, sender):
print(sender.get())
Controller()
CodeEditor
import ezui
class Controller(ezui.WindowController):
def build(self):
content = """
* CodeEditor @editor
"""
descriptionData = dict(
editor=dict(
height=300,
width=400,
text='print("Hello World")',
usesTabs=False,
indentSize=4,
showLineNumbers=True,
)
)
self.w = ezui.EZWindow(
title="Code Editor",
content=content,
descriptionData=descriptionData,
size="auto",
controller=self
)
def started(self):
self.w.open()
Controller()
GlyphLineView
To run this example, you’ll need an open font with at least H
, e
, l
and o
.
import ezui
class Controller(ezui.WindowController):
def build(self):
content = """
* GlyphLineView @lineView
"""
font=CurrentFont()
descriptionData = dict(
lineView=dict(
width=600,
height=250,
font=font,
glyphs=[font[c] for c in "Hello"],
)
)
self.w = ezui.EZWindow(
title="Glyph Line View",
content=content,
descriptionData=descriptionData,
size="auto",
controller=self
)
def started(self):
self.w.open()
Controller()