widget.background: Allow background to have a shape
This commit is contained in:
parent
dd93418afb
commit
d01c1d2d6d
|
@ -21,6 +21,11 @@ function background:draw(context, cr, width, height)
|
||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if self._shape then
|
||||||
|
self._shape(cr, width, height, unpack(self._shape_args or {}))
|
||||||
|
cr:clip()
|
||||||
|
end
|
||||||
|
|
||||||
if self.background then
|
if self.background then
|
||||||
cr:set_source(self.background)
|
cr:set_source(self.background)
|
||||||
cr:paint()
|
cr:paint()
|
||||||
|
@ -84,6 +89,15 @@ function background:set_fg(fg)
|
||||||
self:emit_signal("widget::redraw_needed")
|
self:emit_signal("widget::redraw_needed")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Set the background shape
|
||||||
|
-- @param shape A function taking a context, width and height as arguments
|
||||||
|
-- Any other arguments will be passed to the shape function
|
||||||
|
function background:set_shape(shape, ...)
|
||||||
|
ret._shape = shape
|
||||||
|
ret._shape_args = {...}
|
||||||
|
self:emit_signal("widget::redraw_needed")
|
||||||
|
end
|
||||||
|
|
||||||
--- Set the background image to use
|
--- Set the background image to use
|
||||||
function background:set_bgimage(image)
|
function background:set_bgimage(image)
|
||||||
self.bgimage = surface.load(image)
|
self.bgimage = surface.load(image)
|
||||||
|
@ -94,7 +108,8 @@ end
|
||||||
-- and foreground color to another widget.
|
-- and foreground color to another widget.
|
||||||
-- @param[opt] widget The widget to display.
|
-- @param[opt] widget The widget to display.
|
||||||
-- @param[opt] bg The background to use for that widget.
|
-- @param[opt] bg The background to use for that widget.
|
||||||
local function new(widget, bg)
|
-- @param[opt] shape A `gears.shape` compatible shape function
|
||||||
|
local function new(widget, bg, shape)
|
||||||
local ret = base.make_widget()
|
local ret = base.make_widget()
|
||||||
|
|
||||||
for k, v in pairs(background) do
|
for k, v in pairs(background) do
|
||||||
|
@ -103,6 +118,8 @@ local function new(widget, bg)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
ret._shape = shape
|
||||||
|
|
||||||
ret:set_widget(widget)
|
ret:set_widget(widget)
|
||||||
ret:set_bg(bg)
|
ret:set_bg(bg)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue