Description
FontViewer
This addon lists every font the client knows about, with a preview pane for the selected one.
Supports Retail, Mists of Pandaria Classic, TBC Anniversary, Classic Era and WoW Forever.
Font sources
- Objects: named Font objects (XML fonts,
CreateFont, font families). - LSM: fonts registered with LibSharedMedia-3.0 (embedded).
- Globals:
STANDARD_TEXT_FONT,UNIT_NAME_FONT,DAMAGE_TEXT_FONT,NAMEPLATE_FONT. - Live: fonts set on existing FontStrings, EditBoxes and other text widgets, excluding this window. Fonts found only here are marked unregistered (orange; amber once registered with LSM from FontViewer).
Copies of a font at several paths, matched by file name ignoring case, spaces and
punctuation, are listed once. Values that aren't font files (a Font object name such as
GameFontWhite registered as a path) are skipped.
Usage
/fvor/fontviewertoggles the window;/fv <text>opens it with that search. On Retail and WoW Forever it is also in the addon compartment. The window opens scaled to the screen, independent of the UI scale, so it and the side table fit side by side.- List: each name is drawn in its own font, followed by
Aa,Яя,字and한for Latin, Cyrillic, Chinese and Korean coverage. Fonts are measured over the frames after a scan; a script the font has then gets a green check, one it lacks a red cross and grey text. A script counts as missing when its test letters are all exactly as wide as a missing glyph in that font. Monospaced fonts can't be told apart this way and count as having Cyrillic. - Filters: All, Game (
Fonts\folder), LSM, None (unregistered). The footer shows the count per filter. - Search: matches name, paths, LSM names and Font object names.
- Locale: dropdown beside the search: any locale, Western (Latin), Russian (Cyrillic), Chinese (Han) or Korean (Hangul). Lists only fonts measured to have that script.
- Preview: sizes 10 to 48 with editable sample text. Outline dropdown: none,
OUTLINE,THICKOUTLINE,MONOCHROME,SLUG,OUTLINE,SLUG. Background dropdown: dark grey, black, grey, white. Files that fail to load show a message instead. - Register with LSM: check box on the LSM row, for fonts no addon registered with
LibSharedMedia. Registers the font as its file name plus
- FV(DejaVuSans - FV), numbered (- FV (1)) when that name is taken, for the locales it has glyphs for, and again every time FontViewer loads, unless the file no longer loads. Unchecking takes effect after a reload. - Details: Paths, LSM, Globals, Objects and Live, each with a count. Click one to open it
as a table; click a cell to select it, Ctrl+C to copy.
- Paths: registrar (addon folder or Game), registered name, path.
- Live: frame path, the widget's own name (empty when unnamed), the Font object it
inherits from if any (
GameFontNormal) and current text. Names are built over the frames after opening; until then the Live row shows the count and "Collecting frame names…". The path runs up to the nearest named parent or the global table holding it (MyAddon.frames.bar); parts below use the parent's field name, else their own name, else their type (<Frame>). Without a named parent it shows<UNKNOWN>. - Live, Retail only: a Created by column appears with the
enableSourceLocationLookupCVar on (/console enableSourceLocationLookup 1, then/reload).
- Rescan: fonts are collected the first time the window opens; Rescan collects them again. After that, a font no scan found being set on a FontString, EditBox, MessageFrame or Font object, or registered with LibSharedMedia, makes the next open collect them again. Background work pauses while the window is closed.
License
MIT, see LICENSE.
