mirror of
https://github.com/koreader/koreader.git
synced 2025-08-10 00:52:38 +00:00
add demo menu widget in new ui framework
This commit is contained in:
16
widget.lua
16
widget.lua
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user