From 525c2f17c09ed4c2e0a23196eef6966755b62dfc Mon Sep 17 00:00:00 2001 From: Qingping Hou Date: Tue, 1 May 2012 17:35:33 +0800 Subject: [PATCH] use rendertext in TextWidget for text background support --- widget.lua | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/widget.lua b/widget.lua index f317c8e35..92ec0cf88 100644 --- a/widget.lua +++ b/widget.lua @@ -164,27 +164,36 @@ TextWidget = Widget:new{ color = 15, _bb = nil, _length = 0, + _height = 0, _maxlength = 1200, } -function TextWidget:_render() - local h = self.face.size * 1.3 - self._bb = Blitbuffer.new(self._maxlength, h) - self._length = renderUtf8Text(self._bb, 0, h*0.8, self.face, self.text, self.color) -end +--function TextWidget:_render() + --local h = self.face.size * 1.3 + --self._bb = Blitbuffer.new(self._maxlength, h) + --self._length = renderUtf8Text(self._bb, 0, h*0.8, self.face, self.text, self.color) +--end function TextWidget:getSize() - if not self._bb then - self:_render() - end - return { w = self._length, h = self._bb:getHeight() } + --if not self._bb then + --self:_render() + --end + --return { w = self._length, h = self._bb:getHeight() } + + self._length = sizeUtf8Text(0, G_width, self.face, self.text, true).x + self._height = self.face.size * 1.3 + return { + w = self._length, + h = self._height, + } end function TextWidget:paintTo(bb, x, y) - if not self._bb then - self:_render() - end - bb:blitFrom(self._bb, x, y, 0, 0, self._length, self._bb:getHeight()) + --if not self._bb then + --self:_render() + --end + --bb:blitFrom(self._bb, x, y, 0, 0, self._length, self._bb:getHeight()) + renderUtf8Text(bb, x, y+self._height*0.8, self.face, self.text, true) end function TextWidget:free()