allow separator colors to be updated

This commit is contained in:
Greg Flynn 2018-11-04 19:57:54 -05:00 committed by lcpz
parent 4cc47f8d61
commit f6e032ffe1
1 changed files with 24 additions and 8 deletions

View File

@ -18,14 +18,22 @@ local separators = { height = 0, width = 9 }
-- Right -- Right
function separators.arrow_right(col1, col2) function separators.arrow_right(col1, col2)
local widget = wibox.widget.base.make_widget() local widget = wibox.widget.base.make_widget()
widget.col1 = col1
widget.col2 = col2
widget.fit = function(m, w, h) widget.fit = function(m, w, h)
return separators.width, separators.height return separators.width, separators.height
end end
widget.update = function(col1, col2)
widget.col1 = col1
widget.col2 = col2
widget:emit_signal("widget::redraw_needed")
end
widget.draw = function(mycross, wibox, cr, width, height) widget.draw = function(mycross, wibox, cr, width, height)
if col2 ~= "alpha" then if widget.col2 ~= "alpha" then
cr:set_source_rgb(gears.color.parse_color(col2)) cr:set_source_rgb(gears.color.parse_color(widget.col2))
cr:new_path() cr:new_path()
cr:move_to(0, 0) cr:move_to(0, 0)
cr:line_to(width, height/2) cr:line_to(width, height/2)
@ -41,8 +49,8 @@ function separators.arrow_right(col1, col2)
cr:fill() cr:fill()
end end
if col1 ~= "alpha" then if widget.col1 ~= "alpha" then
cr:set_source_rgb(gears.color.parse_color(col1)) cr:set_source_rgb(gears.color.parse_color(widget.col1))
cr:new_path() cr:new_path()
cr:move_to(0, 0) cr:move_to(0, 0)
cr:line_to(width, height/2) cr:line_to(width, height/2)
@ -58,14 +66,22 @@ end
-- Left -- Left
function separators.arrow_left(col1, col2) function separators.arrow_left(col1, col2)
local widget = wibox.widget.base.make_widget() local widget = wibox.widget.base.make_widget()
widget.col1 = col1
widget.col2 = col2
widget.fit = function(m, w, h) widget.fit = function(m, w, h)
return separators.width, separators.height return separators.width, separators.height
end end
widget.update = function(col1, col2)
widget.col1 = col1
widget.col2 = col2
widget:emit_signal("widget::redraw_needed")
end
widget.draw = function(mycross, wibox, cr, width, height) widget.draw = function(mycross, wibox, cr, width, height)
if col1 ~= "alpha" then if widget.col1 ~= "alpha" then
cr:set_source_rgb(gears.color.parse_color(col1)) cr:set_source_rgb(gears.color.parse_color(widget.col1))
cr:new_path() cr:new_path()
cr:move_to(width, 0) cr:move_to(width, 0)
cr:line_to(0, height/2) cr:line_to(0, height/2)
@ -81,14 +97,14 @@ function separators.arrow_left(col1, col2)
cr:fill() cr:fill()
end end
if col2 ~= "alpha" then if widget.col2 ~= "alpha" then
cr:new_path() cr:new_path()
cr:move_to(width, 0) cr:move_to(width, 0)
cr:line_to(0, height/2) cr:line_to(0, height/2)
cr:line_to(width, height) cr:line_to(width, height)
cr:close_path() cr:close_path()
cr:set_source_rgb(gears.color.parse_color(col2)) cr:set_source_rgb(gears.color.parse_color(widget.col2))
cr:fill() cr:fill()
end end
end end