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 bound(data, opts) do {0.0, 0.0, FontMetricsHelper.get_text_width(data, 20), FontMetricsHelper.get_text_height(20)} end def get_background_width(%{assigns: %{data: data}} = scene) do assign(scene, width: FontMetricsHelper.get_text_width(data, 20)) end def get_background_height(scene) do assign(scene, height: FontMetricsHelper.get_text_height(20)) end end