Current section

Files

Jump to
scenic_new templates lib components notes.ex.eex
Raw

templates/lib/components/notes.ex.eex

defmodule <%= @mod %>.Component.Notes do
use Scenic.Component
alias Scenic.ViewPort
alias Scenic.Graph
import Scenic.Primitives, only: [{:text, 3}, {:rect, 3}]
# import IEx
@height 110
@font_size 20
@indent 30
#--------------------------------------------------------
def verify( notes ) when is_bitstring(notes), do: {:ok, notes}
def verify( _ ), do: :invalid_data
#----------------------------------------------------------------------------
def init( notes, opts ) do
# Get the viewport width
{:ok, %ViewPort.Status{size: {vp_width,vp_height}}} = opts[:viewport]
|> ViewPort.info()
graph = Graph.build(font_size: @font_size, translate: {0, vp_height - @height} )
|> rect({vp_width, @height}, fill: {48,48,48})
|> text( notes, translate: {@indent, @font_size * 2} )
|> push_graph()
{:ok, %{graph: graph, viewport: opts[:viewport]} }
end
end