local Element = require("gfx.element")
local Text = Element:new{ text = "" }

function Text:setText(text)
  local current = self:getText()
  if current ~= text then
    self:setDirty()

    local needReload = #current ~= #text
    self.text = text
    if needReload then
        self:_reload()
    end
  end
end

function Text:getText()
  return self.text
end

function Text:draw()
  local dirty = Element.draw(self)
  if dirty then
    self:_getWindow().write(self:getText())
  end
  return dirty
end

function Text:getHeight()
  return 1
end

function Text:getWidth()
  return #self:getText()
end

function Text:setWidth()
  
end

function Text:setHeight()
  
end

function Text:resize()
  
end

return Text