75 lines
2.1 KiB
Lua
75 lines
2.1 KiB
Lua
|
local awful = require "awful"
|
||
|
local gtable = require "gears.table"
|
||
|
local gdebug = require "gears.debug"
|
||
|
local gcolor = require "gears.color"
|
||
|
local qui = require "quarrel.ui"
|
||
|
local qvars = require "quarrel.vars"
|
||
|
local wibox = require "wibox"
|
||
|
local phosphor = require "assets.phosphor"
|
||
|
local beautiful = require "beautiful"
|
||
|
local rubato = require "lib.rubato"
|
||
|
|
||
|
local flashy = {}
|
||
|
flashy._timeout_timer = {}
|
||
|
|
||
|
flashy._widget = qui.popup {
|
||
|
placement = awful.placement.centered,
|
||
|
ontop = true,
|
||
|
minimum_width = qvars.button_size * 15,
|
||
|
maximum_width = qvars.button_size * 15,
|
||
|
minimum_height = qvars.button_size * 15,
|
||
|
maximum_height = qvars.button_size * 15,
|
||
|
visible = false,
|
||
|
widget = {
|
||
|
{
|
||
|
widget = wibox.container.place,
|
||
|
valign = "center",
|
||
|
haligh = "center",
|
||
|
-- widget = wibox.container.margin,
|
||
|
-- margins = qvars.big_padding * 8,
|
||
|
{
|
||
|
widget = wibox.widget.imagebox,
|
||
|
image = gcolor.recolor_image(phosphor.battery_warning, qvars.colors.fg),
|
||
|
-- image = phosphor["battery_warning"],
|
||
|
forced_width = qvars.button_size * 15 - (qvars.border_width * 2 + qvars.big_padding * 2),
|
||
|
forced_height = qvars.button_size * 14 - (qvars.border_width * 2 + qvars.big_padding * 2)
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
widget = wibox.widget.progressbar,
|
||
|
max_value = 100,
|
||
|
value = 50,
|
||
|
forced_height = qvars.button_size;
|
||
|
shape = qvars.shape,
|
||
|
color = qvars.colors.yellow,
|
||
|
background_color = qvars.colors.black
|
||
|
},
|
||
|
layout = wibox.layout.fixed.vertical
|
||
|
}
|
||
|
}
|
||
|
|
||
|
flashy._timed = rubato.timed {
|
||
|
duration = qvars.anim_duration,
|
||
|
intro = qvars.anim_intro,
|
||
|
pos = 0,
|
||
|
subscribed = function(pos)
|
||
|
flashy._widget.opacity = pos
|
||
|
|
||
|
if pos == 0 then
|
||
|
flashy._widget.visible = false
|
||
|
else
|
||
|
flashy._widget.visible = true
|
||
|
end
|
||
|
end
|
||
|
}
|
||
|
|
||
|
function flashy:show()
|
||
|
self._timed.target = 1
|
||
|
end
|
||
|
|
||
|
function flashy:hide()
|
||
|
self._timed.target = 0
|
||
|
end
|
||
|
|
||
|
return flashy
|