Configurable font stretch, font weight, and bold font weight

* Store a font name => font faces map

 * Only list font names that have `NORMAL` and `BOLD` faces with
   `Normal` stretch. This will give us defaults and fall-backs that are
   guaranteed to always exist.

 * Filter by stretch first, with `Normal` chosen as the always existing
   default.

 * Then only list font weights supported by the font name stretch
   selected, for the normal and bold cases.

 * When changing the font name selected, the stretch/weight options
   will stay the same if supported by the new font name, or revert to
   the always existing fall-backs.

Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
This commit is contained in:
Mohammad AlSaleh 2024-01-10 01:19:04 +03:00 • committed by Jeremy Soller
parent c74d5d6f56
commit 5eba6eb4d6
6 changed files with 251 additions and 12 deletions

View file

@ -12,6 +12,9 @@ light = Light
syntax-dark = Syntax dark
syntax-light = Syntax light
default-font = Default font
default-font-stretch = Default font stretch
default-font-weight = Default font weight
default-bold-font-weight = Default bold font weight
default-font-size = Default font size
default-zoom-step = Default zoom step