Current section

Files

Jump to
flo_ui lib utils font_metrics_helper.ex
Raw

lib/utils/font_metrics_helper.ex

defmodule FloUI.Util.FontMetricsHelper do
@moduledoc false
require Logger
# @font_metrics FloUI.Util.FontMetricsHelper.get_font_metrics()
@default_font :roboto
@default_font_size 16
def get_font_metrics() do
{:ok, {_, fm}} = Scenic.Assets.Static.meta(@default_font)
fm
end
def get_font_ascent(font_size \\ @default_font_size) do
FontMetrics.ascent(font_size, get_font_metrics())
end
def get_font_descent(font_size \\ @default_font_size) do
FontMetrics.descent(font_size, get_font_metrics())
end
def get_text_width(text, font_size \\ @default_font_size) do
FontMetrics.width(text, font_size, get_font_metrics())
end
def get_text_height(font_size \\ @default_font_size) do
font_size + get_font_ascent(font_size)
end
def get_text_center_y(font_size \\ @default_font_size) do
font_size / 2
end
def get_component_width(text, font_size \\ @default_font_size) do
ascent = get_font_ascent(font_size)
get_text_width(text, font_size) + ascent * 3
end
end