desktop, calendar, various other modules

This commit is contained in:
Rene Kievits
2022-11-22 16:59:55 +01:00
parent 210682e955
commit c6341f84e7
74 changed files with 5587 additions and 985 deletions

View File

@@ -0,0 +1,119 @@
local base = require("wibox.widget.base")
local wibox = require("wibox")
local gtable = require("gears.table")
local dpi = require("beautiful").xresources.apply_dpi
local gshape = require("gears.shape")
local gfilesystem = require("gears.filesystem")
local gcolor = require("gears.color")
local abutton = require("awful.button")
local icondir = gfilesystem.get_configuration_dir() .. "src/assets/icons/desktop/"
local capi = {
mouse = mouse
}
local element = { mt = {} }
function element:layout(_, width, height)
if self._private.widget then
return { base.place_widget_at(self._private.widget, 0, 0, width, height) }
end
end
function element:fit(context, width, height)
local w, h = 0, 0
if self._private.widget then
w, h = base.fit_widget(self, context, self._private.widget, width, height)
end
return w, h
end
function element:get_widget()
return self._private.widget
end
function element:on_hover()
self:connect_signal("mouse::enter", function()
self.bg = "#0ffff033"
self.border_color = "#0ffff099"
end)
self:connect_signal("mouse::leave", function()
self.bg = gcolor.transparent
self.border_color = gcolor.transparent
end)
self:connect_signal("button::press", function()
self.bg = "#0ffff088"
self.border_color = "#0ffff0dd"
end)
self:connect_signal("button::release", function()
self.bg = "#0ffff033"
self.border_color = "#0ffff099"
end)
end
function element.new(args)
args = args or {}
local w = base.make_widget_from_value(wibox.widget {
{
{
{
{
image = args.icon,
resize = true,
clip_shape = gshape.rounded_rect,
valign = "center",
halign = "center",
id = "icon_role",
widget = wibox.widget.imagebox
},
strategy = "exact",
height = args.icon_size,
width = args.icon_size,
widget = wibox.container.constraint
},
{
text = args.label,
id = "text_role",
valign = "center",
halign = "center",
widget = wibox.widget.textbox
},
spacing = dpi(10),
layout = wibox.layout.fixed.vertical
},
widget = wibox.container.place,
valign = "center",
halign = "center"
},
fg = "#ffffff",
bg = gcolor.transparent,
border_color = gcolor.transparent,
border_width = dpi(2),
shape = gshape.rounded_rect,
forced_width = args.width,
forced_height = args.height,
width = args.width,
height = args.height,
exec = args.exec,
icon_size = args.icon_size,
icon = args.icon,
widget = wibox.container.background
})
gtable.crush(w, element, true)
w:on_hover()
return w
end
function element.mt:__call(...)
return element.new(...)
end
return setmetatable(element, element.mt)