2
0
mirror of https://github.com/koreader/koreader synced 2024-11-04 12:00:25 +00:00
koreader/frontend/ui/widget/container/rightcontainer.lua
poire-z 36ce82d8c2 [RTL UI] update low-level widgets to handle mirroring
These updated low-level widgets will handle 90%
of the needed UI mirroring.
2019-12-08 15:10:51 +01:00

30 lines
875 B
Lua

--[[--
RightContainer aligns its content (1 widget) at the right of its own dimensions
--]]
local BD = require("ui/bidi")
local WidgetContainer = require("ui/widget/container/widgetcontainer")
local RightContainer = WidgetContainer:new{
allow_mirroring = true,
_mirroredUI = BD.mirroredUILayout(),
}
function RightContainer:paintTo(bb, x, y)
local contentSize = self[1]:getSize()
--- @fixme
-- if contentSize.w > self.dimen.w or contentSize.h > self.dimen.h then
-- throw error? paint to scrap buffer and blit partially?
-- for now, we ignore this
-- end
if not self._mirroredUI or not self.allow_mirroring then
x = x + (self.dimen.w - contentSize.w)
-- else: keep x, as in LeftContainer
end
self[1]:paintTo(bb,
x,
y + math.floor((self.dimen.h - contentSize.h)/2))
end
return RightContainer