   initialize: (attrs, options) ->
     @cache = {}
     super(attrs, options)
-
 
   warm_cache: (source, attrs) ->
     for attr in attrs

      when "string" then result[field] = new String({obj: model, attr: field})

  return result


visuals = (model, attr="visuals") ->
  result = {}

      values: "top middle bottom alphabetic hanging"

  warm_cache: (source) ->
    super(source, ["font", "font_size", "font_style", "color", "alpha", "align", "baseline"])

  cache_select: (name, i) ->
    if name == "font"
      val = super("font_style", i) + " " + super("font_size", i) + " " + super("font", i)
      @cache.font = val
    else
      super(name, i)

  font_value: () ->
    font       = @font.value()
    font_size  = @font_size.value()
    font_style = @font_style.value()
    return font_style + " " + font_size + " " + font

  set_value: (ctx) ->
    ctx.font         = @font_value()
