defmodule FloUI.Tooltip do alias FloUI.Util.FontMetricsHelper @moduledoc """ ## Usage in SnapFramework Renders a tooltip. ``` elixir <%= component FloUI.Tooltip, @label, id: :tooltip %> ``` """ use SnapFramework.Component, name: :tooltip, template: "lib/tooltip/tooltip.eex", controller: :none, assigns: [width: 0, height: 0], opts: [] defcomponent :tooltip, :any def setup(scene) do scene |> get_background_width |> get_background_height end def get_background_width(%{assigns: %{data: data}} = scene) do assign(scene, width: FontMetricsHelper.get_text_width(data, 20) + 10) end def get_background_height(scene) do assign(scene, height: FontMetricsHelper.get_text_height(20)) end end