add demo menu widget in new ui framework

This commit is contained in:
Qingping Hou
2012-04-29 23:53:48 +08:00
parent df1c8814ea
commit b47d5b76eb
4 changed files with 350 additions and 18 deletions

View File

@@ -85,8 +85,8 @@ end
Containers will pass events to children or react on them themselves
]]
function WidgetContainer:handleEvent(event)
-- call our own standard event handler
if not self:propagateEvent(event) then
-- call our own standard event handler
return Widget.handleEvent(self, event)
else
return true
@@ -168,9 +168,9 @@ TextWidget = Widget:new{
}
function TextWidget:_render()
local h = self.face.size * 1.5
local h = self.face.size * 1.3
self._bb = Blitbuffer.new(self._maxlength, h)
self._length = renderUtf8Text(self._bb, 0, h*.7, self.face, self.text, self.color)
self._length = renderUtf8Text(self._bb, 0, h*0.8, self.face, self.text, self.color)
end
function TextWidget:getSize()
@@ -261,7 +261,7 @@ function TextBoxWidget:_render()
for _,l in ipairs(v_list) do
pen_x = 0
for _,w in ipairs(l) do
renderUtf8Text(self._bb, pen_x, y, self.face, w.word, true)
renderUtf8Text(self._bb, pen_x, y*0.8, self.face, w.word, true)
pen_x = pen_x + w.width + space_w
end
y = y + line_height_px + font_height
@@ -459,13 +459,17 @@ UnderlineContainer = WidgetContainer:new{
function UnderlineContainer:getSize()
local contentSize = self[1]:getSize()
if self.dimen then
if contentSize.w < self.dimen.w then contentSize.w = self.dimen.w end
if contentSize.h < self.dimen.h then contentSize.h = self.dimen.h end
end
return { w = contentSize.w, h = contentSize.h + self.linesize + self.padding }
end
function UnderlineContainer:paintTo(bb, x, y)
local contentSize = self[1]:getSize()
local contentSize = self:getSize()
self[1]:paintTo(bb, x, y)
bb:paintRect(x, y + contentSize.h + self.padding,
bb:paintRect(x, y + contentSize.h - self.linesize,
contentSize.w, self.linesize, self.color)
end