Everything Else
Font and Color Panel in Helix 7.0

Due to limitations in legacy code used in Helix, the native macOS font panel is unreliable. Efforts to avoid crashes in macOS 10.11 (El Capitan) were successful until macOS 10.12 (Sierra) rendered obsolete. We found ourselves spending far too many hours attempting to make this work and ultimately we chose another solution.

Helix 7.0 replaces the macOS font panel with a cross-platform version supplied by wxWidgets. Although it is decidedly non-standard for a macOS user, it is functional, and that is the most important attribute it brings to Helix.

This technote describes this new font panel and notes some limitations.

Standard Font Panel (Non-Modal)

Shown here is the standard font panel used in Helix 7.0. This version appears when specifying font properties for:

  • Style text field input
  • Label rectangles in edit mode (Design Mode only)

Using the font panel is mostly self-explanatory: with the text to be styled selected, choose a font, specify a size, style and color. In most cases, the font or style chosen is immediately shown in the selected text.

Specify a color by clicking on the large color panel: the macOS color picker (far right) opens as a modal dialog. Choose a color and click OK to apply it to the selected text.

The font panel can be left open while working, but it will have no effect on non-styled text fields or other rectangle types.

Font Panel with Preview (Modal)

Font specifications made through the Inspector also include a Preview panel, as shown at right. This version appears when specifying font properties for:

  • Data rectangles
  • Conditional styles in data rectangles
  • Label rectangles that are not in edit mode
  • Styled Text tiles

This version of the font panel is a modal dialog: you must click OK (or Cancel) to dismiss it and resume work in other windows.

Because this version does not allow interaction with other windows, it includes a Preview panel that displays one line of Helix’s placeholder text in the chosen font, size, style and color. The HxPreviewPlaceholderText preference setting can be used to change the displayed text. See the Preferences technote for more information on changing preferences in Helix.

Additional Notes

Unfortunately, there are a few issues related to font selection in Helix 7.0:

  • Not all fonts work: In bringing Helix to macOS, we adopted the “ATSUI” text handling APIs provided by Apple. Unfortunately, Apple has since deprecated ATSUI, replacing it with “CoreText” for macOS and iOS. Consequently, some font information gets ‘lost in translation’ resulting in the inability of Helix to specify that font.
  • Updates fail to display: occasionally a selection in the non-modal font panel is not immediately reflected in the selected text. Typically it ‘catches up’ when another style change is made (toggling the size up/down seems to work best). Sometimes this is an indicator that the chosen font is not supported in Helix 7.0.
  • Styles must be set last: When changing fonts, the style attributes (bold, italic, underline) are sometimes reset to off. This can be avoided by making a habit of setting the style attributes last.