quality: Fix more luacheck warnings
And remove unmaintained and broken files
This commit is contained in:
parent
2d0a957506
commit
f3124b761d
|
@ -1,7 +1,7 @@
|
|||
local type = type
|
||||
local capi = {timer = timer}
|
||||
local beautiful = require("beautiful")
|
||||
local theme = require("radical.theme")
|
||||
local timer = require("gears.timer")
|
||||
local object = require("radical.object")
|
||||
|
||||
local module = {
|
||||
|
@ -98,7 +98,7 @@ end
|
|||
-- end
|
||||
|
||||
local function new_item(data,args)
|
||||
local args = args or {}
|
||||
args = args or {}
|
||||
local item,private_data = object({
|
||||
private_data = {
|
||||
text = args.text or "" ,
|
||||
|
@ -203,16 +203,15 @@ local function new_item(data,args)
|
|||
text_w:set_markup(text)
|
||||
end
|
||||
|
||||
if data.auto_resize then
|
||||
local fit_w,fit_h = text_w:get_preferred_size()
|
||||
local is_largest = item == data._internal.largest_item_h
|
||||
|
||||
--TODO find new largest is item is smaller
|
||||
--TODO find new largest is item is smaller
|
||||
-- if data.auto_resize then
|
||||
-- local fit_w,fit_h = text_w:get_preferred_size()
|
||||
-- local is_largest = item == data._internal.largest_item_h
|
||||
-- if not data._internal.largest_item_h_v or data._internal.largest_item_h_v < fit_h then
|
||||
-- data._internal.largest_item_h =item
|
||||
-- data._internal.largest_item_h_v = fit_h
|
||||
-- end
|
||||
end
|
||||
-- end
|
||||
|
||||
item._private_data.text = text
|
||||
end
|
||||
|
@ -248,8 +247,8 @@ local function new_item(data,args)
|
|||
main_timer.timeout = 1.5
|
||||
main_timer:connect_signal("timeout",function()
|
||||
item._internal._is_long_hover = true
|
||||
item:emit_signal("long::hover",item,mod,geo)
|
||||
data:emit_signal("long::hover",item,mod,geo)
|
||||
item:emit_signal("long::hover",item,{},geo)
|
||||
data:emit_signal("long::hover",item,{},geo) --TODO mouse::enter should have modifiers
|
||||
main_timer:stop()
|
||||
end)
|
||||
end
|
||||
|
|
|
@ -3,7 +3,6 @@ local beautiful = require( "beautiful" )
|
|||
local color = require( "gears.color" )
|
||||
local wibox = require( "wibox" )
|
||||
local checkbox = require( "radical.widgets.checkbox" )
|
||||
local horizontal = require( "radical.item.layout.horizontal" )
|
||||
local util = require( "awful.util" )
|
||||
local margins2 = require( "radical.margins" )
|
||||
local common = require( "radical.item.common" )
|
||||
|
@ -29,7 +28,7 @@ local function icon_fit(data,...)
|
|||
end
|
||||
|
||||
local function icon_draw(self, context, cr, width, height)
|
||||
local w,h = wibox.widget.imagebox.fit(self,context,width,height)
|
||||
local w = wibox.widget.imagebox.fit(self,context,width,height)
|
||||
cr:save()
|
||||
cr:translate((width-w)/2,0)
|
||||
wibox.widget.imagebox.draw(self, context, cr, width, height)
|
||||
|
@ -37,8 +36,10 @@ local function icon_draw(self, context, cr, width, height)
|
|||
end
|
||||
|
||||
local function create_item(item,data,args)
|
||||
local pref, subArrow, ck = nil, nil, nil
|
||||
|
||||
if data.fkeys_prefix == true then
|
||||
local pref = wibox.widget.textbox()
|
||||
pref = wibox.widget.textbox()
|
||||
|
||||
function pref:draw(context, cr, width, height)
|
||||
cr:set_source(color(beautiful.fg_normal))
|
||||
|
@ -54,7 +55,7 @@ local function create_item(item,data,args)
|
|||
local has_children = item._private_data.sub_menu_f or item._private_data.sub_menu_m
|
||||
|
||||
if has_children then
|
||||
local subArrow = wibox.widget.imagebox() --TODO, make global
|
||||
subArrow = wibox.widget.imagebox() --TODO, make global
|
||||
|
||||
function subArrow:fit(context, w, h)
|
||||
return subArrow._image:get_width(),item.height
|
||||
|
@ -69,20 +70,18 @@ local function create_item(item,data,args)
|
|||
else
|
||||
return wibox.container.background.fit(box,context, w,h)
|
||||
end
|
||||
|
||||
return 0,0
|
||||
end
|
||||
|
||||
if item.checkable then
|
||||
function item.get_checked(data,item)
|
||||
if type(item._private_data.checked) == "function" then
|
||||
return item._private_data.checked()
|
||||
function item.get_checked(_, i)
|
||||
if type(i._private_data.checked) == "function" then
|
||||
return i._private_data.checked()
|
||||
else
|
||||
return item._private_data.checked
|
||||
return i._private_data.checked
|
||||
end
|
||||
end
|
||||
|
||||
local ck = wibox.widget.imagebox()
|
||||
ck = wibox.widget.imagebox()
|
||||
ck:set_image(item.checked and checkbox.checked() or checkbox.unchecked())
|
||||
|
||||
function item:set_checked(value)
|
||||
|
@ -95,7 +94,7 @@ local function create_item(item,data,args)
|
|||
{
|
||||
{
|
||||
{
|
||||
data.fkeys_prefix and pref or nil,
|
||||
pref or nil,
|
||||
args.prefix_widget ,
|
||||
icon,
|
||||
{
|
||||
|
@ -110,8 +109,8 @@ local function create_item(item,data,args)
|
|||
-- Suffix
|
||||
|
||||
-- Widgets
|
||||
has_children and subArrow or nil ,
|
||||
item.checkable and ck or nil ,
|
||||
subArrow or nil ,
|
||||
ck or nil ,
|
||||
args.suffix_widget ,
|
||||
|
||||
-- Attributes
|
||||
|
|
|
@ -6,19 +6,13 @@ local common = require( "radical.item.common" )
|
|||
|
||||
local module = {}
|
||||
|
||||
-- Force the width or compute the minimum space
|
||||
local function align_fit(box,context,w,h)
|
||||
if box._item.width then return box._item.width - box._data.item_style.margins.LEFT - box._data.item_style.margins.RIGHT,h end
|
||||
return box.first:fit(context,w,h)+wibox.widget.textbox.fit(box.second,context,w,h)+box.third:fit(context,w,h),h
|
||||
end
|
||||
|
||||
-- Create the actual widget
|
||||
local function create_item(item,data,args)
|
||||
-- Background
|
||||
local bg = wibox.container.background()
|
||||
|
||||
-- Margins
|
||||
local m = wibox.container.margin(la)
|
||||
local m = wibox.container.margin()
|
||||
local mrgns = margins2(m,(item.item_style or data.item_style).margins)
|
||||
item.get_margins = function()
|
||||
return mrgns
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
local setmetatable = setmetatable
|
||||
local print = print
|
||||
local pairs = pairs
|
||||
local color = require( "gears.color" )
|
||||
local base = require( "radical.base" )
|
||||
local theme = require( "radical.theme" )
|
||||
|
||||
local module = {
|
||||
|
@ -27,8 +24,6 @@ local c1 = color("#474e56dd")
|
|||
local c2 = color("#5b646cdd")
|
||||
local c3 = color("#212429dd")
|
||||
local c4 = color("#3b4249dd")
|
||||
local padding = 1
|
||||
local p2 = 2
|
||||
|
||||
local function widget_draw23(self, context, cr, width, height)
|
||||
cr:save()
|
||||
|
@ -70,9 +65,7 @@ local function new_set_bg(self,bg)
|
|||
self.radical_bg = color(bg)
|
||||
end
|
||||
|
||||
local function draw(item,args)
|
||||
local args = args or {}
|
||||
|
||||
local function draw(item)
|
||||
if not item.widget._overlay_init and not item.widget._draw then
|
||||
item.widget.__drawbasic = item.widget.draw
|
||||
item.widget.draw = widget_draw23
|
||||
|
|
|
@ -1,137 +0,0 @@
|
|||
local setmetatable = setmetatable
|
||||
local print = print
|
||||
local debug=debug
|
||||
local ipairs = ipairs
|
||||
local math = math
|
||||
local base = require( "radical.base" )
|
||||
local beautiful = require("beautiful")
|
||||
local color = require("gears.color")
|
||||
local cairo = require("lgi").cairo
|
||||
local wibox = require("wibox")
|
||||
local theme = require( "radical.theme" )
|
||||
|
||||
local module = {
|
||||
margins = {
|
||||
TOP = 2,
|
||||
BOTTOM = 2,
|
||||
RIGHT = 20,
|
||||
LEFT = 3
|
||||
},
|
||||
need_full_repaint = true
|
||||
}
|
||||
|
||||
local hcode = {"#7777ff","#ff7777","#77ff77","#77ffff","#ffff77"}
|
||||
|
||||
local end_cache = {}
|
||||
module.get_end_arrow = function(args)
|
||||
local args = args or {}
|
||||
local default_height = beautiful.default_height or 16
|
||||
local bgt = type(args.bg_color)
|
||||
local width,height = (args.width or default_height/2+1),args.height or default_height
|
||||
local img = cairo.ImageSurface(cairo.Format.ARGB32, width+(args.padding or 0), height)
|
||||
local cr = cairo.Context(img)
|
||||
cr:set_source(color(args.bg_color or beautiful.bg_normal))
|
||||
cr:set_antialias(cairo.ANTIALIAS_NONE)
|
||||
cr:new_path()
|
||||
if (args.direction == "left") then
|
||||
cr:move_to(0,width+(args.padding or 0))
|
||||
cr:line_to(0,height/2)
|
||||
cr:line_to(width+(args.padding or 0),height)
|
||||
cr:line_to(0,height)
|
||||
cr:line_to(0,0)
|
||||
cr:line_to(width+(args.padding or 0),0)
|
||||
else
|
||||
cr:line_to(width+(args.padding or 0),0)
|
||||
cr:line_to(width+(args.padding or 0),height)
|
||||
cr:line_to(0,height)
|
||||
cr:line_to(width-1,height/2)
|
||||
cr:line_to(0,0)
|
||||
end
|
||||
cr:close_path()
|
||||
cr:fill()
|
||||
return img
|
||||
end
|
||||
|
||||
local beg_cache = {}
|
||||
module.get_beg_arrow = function(args)
|
||||
local args = args or {}
|
||||
local default_height = beautiful.default_height or 16
|
||||
local bgt = type(args.bg_color)
|
||||
local width,height = (args.width or default_height/2+1)+(args.padding or 0),args.height or default_height
|
||||
local img = cairo.ImageSurface(cairo.Format.ARGB32, width, height)
|
||||
local cr = cairo.Context(img)
|
||||
cr:set_source(color(args.bg_color or beautiful.fg_normal))
|
||||
cr:set_antialias(cairo.ANTIALIAS_NONE)
|
||||
cr:new_path()
|
||||
if (args.direction == "left") then
|
||||
cr:move_to(0,width)
|
||||
cr:line_to(0,height/2)
|
||||
cr:line_to(width,height)
|
||||
cr:line_to(width,0)
|
||||
else
|
||||
cr:line_to(width,height/2)
|
||||
cr:line_to(0,height)
|
||||
cr:line_to(0,0)
|
||||
end
|
||||
cr:close_path()
|
||||
cr:fill()
|
||||
return img
|
||||
end
|
||||
|
||||
local function draw_real(self, context, cr, width, height)
|
||||
-- wibox.container.background.draw(self, context, cr, width, height)
|
||||
cr:save()
|
||||
|
||||
-- This item style require negative padding, this is a little dangerous to
|
||||
-- do as it can corrupt area outside of the widget
|
||||
local col = self._item.bg_prefix or beautiful.icon_grad or beautiful.fg_normal
|
||||
cr:set_source(color(self.background))
|
||||
cr:move_to(-height/2-2,0)
|
||||
cr:line_to(width-height+2,0)
|
||||
cr:rel_line_to(height*.6,height/2)
|
||||
cr:line_to(width-height+2,height)
|
||||
cr:line_to(-height*.6,height)
|
||||
cr:line_to(0,height/2)
|
||||
cr:close_path()
|
||||
cr:reset_clip()
|
||||
cr:fill()
|
||||
cr:restore()
|
||||
|
||||
if self._draw then
|
||||
self._draw(self, context, cr, width, height)
|
||||
end
|
||||
|
||||
if self.widget.draw then
|
||||
self.widget:draw(context, cr, width, height)
|
||||
end
|
||||
end
|
||||
|
||||
local function draw(item,args)
|
||||
local args = args or {}
|
||||
if item.widget.draw ~= draw_real then
|
||||
item.widget._draw = item.widget.draw
|
||||
item.widget.draw = draw_real
|
||||
item.widget:emit_signal("widget::updated")
|
||||
end
|
||||
|
||||
local color_idx = math.mod(item.f_key,#hcode) + 1
|
||||
local next_idx = color_idx + 1 > #hcode and 1 or (color_idx + 1)
|
||||
|
||||
local state = item.state or {}
|
||||
local current_state = state._current_key or nil
|
||||
local state_name = base.colors_by_id[current_state]
|
||||
|
||||
if current_state == base.item_flags.SELECTED or (item._tmp_menu) then
|
||||
item.widget:set_fg(item["fg_focus"])
|
||||
item.widget:set_bg(args.color)
|
||||
elseif state_name then --TODO untested, most likely broken
|
||||
item.widget:set_bg(args.color or item["bg_"..state_name])
|
||||
item.widget:set_fg( item["fg_"..state_name])
|
||||
else
|
||||
item.widget:set_bg(args.color or hcode[color_idx])
|
||||
item.widget:set_fg(item["fg_normal"])
|
||||
end
|
||||
end
|
||||
|
||||
return setmetatable(module, { __call = function(_, ...) return draw(...) end })
|
||||
-- kate: space-indent on; indent-width 2; replace-tabs on;
|
|
@ -1,7 +1,6 @@
|
|||
local setmetatable = setmetatable
|
||||
local beautiful = require( "beautiful" )
|
||||
local color = require( "gears.color" )
|
||||
local wibox = require( "wibox" )
|
||||
local theme = require( "radical.theme" )
|
||||
local shape = require( "gears.shape" )
|
||||
|
||||
|
@ -48,9 +47,7 @@ local function suffix_fit(box,context,w,h)
|
|||
return width + h/2 + h/6,height
|
||||
end
|
||||
|
||||
local function draw(item,args)
|
||||
local args = args or {}
|
||||
|
||||
local function draw(item)
|
||||
if not item.widget._overlay_init then
|
||||
item.widget._overlay_init = true
|
||||
end
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
local setmetatable = setmetatable
|
||||
local wibox = require("wibox" )
|
||||
local theme = require( "radical.theme" )
|
||||
local shape = require( "gears.shape" )
|
||||
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
local setmetatable = setmetatable
|
||||
local print = print
|
||||
local pairs=pairs
|
||||
local base = require( "radical.base" )
|
||||
local wibox = require("wibox" )
|
||||
local theme = require( "radical.theme" )
|
||||
local theme = require( "radical.theme" )
|
||||
|
||||
local module = {
|
||||
margins = {
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
local setmetatable = setmetatable
|
||||
local color = require( "gears.color" )
|
||||
local wibox = require( "wibox" )
|
||||
local theme = require( "radical.theme" )
|
||||
|
||||
local module = {
|
||||
|
|
|
@ -34,7 +34,7 @@ local function after_draw_children_bottom(self, context, cr, width, height)
|
|||
end
|
||||
|
||||
local function draw(item,args)
|
||||
local args = args or {}
|
||||
args = args or {}
|
||||
|
||||
item.widget.draw = widget_draw
|
||||
item.widget.before_draw_children = args.pos == "top"
|
||||
|
|
|
@ -5,7 +5,7 @@ local unpack = unpack or table.unpack
|
|||
|
||||
-- Create a generic item_style
|
||||
local function generic(_, args)
|
||||
local args = args or {}
|
||||
args = args or {}
|
||||
|
||||
args.margins = args.margins or {
|
||||
TOP = 0,
|
||||
|
@ -30,12 +30,10 @@ end
|
|||
return setmetatable({
|
||||
basic = require("radical.item.style.basic" ),
|
||||
classic = require("radical.item.style.classic" ),
|
||||
subtle = require("radical.item.style.subtle" ),
|
||||
rounded_shadow = rounded.shadow ,
|
||||
rounded = rounded ,
|
||||
holo = holo ,
|
||||
holo_top = holo.top ,
|
||||
arrow_alt = require("radical.item.style.arrow_alt" ),
|
||||
arrow_prefix = require("radical.item.style.arrow_prefix" ),
|
||||
arrow_single = require("radical.item.style.arrow_single" ),
|
||||
arrow_3d = require("radical.item.style.arrow_3d" ),
|
||||
|
|
|
@ -22,9 +22,7 @@ local function after_draw_children(self, context, cr, width, height)
|
|||
cr:fill()
|
||||
end
|
||||
|
||||
local function draw(item,args)
|
||||
local args = args or {}
|
||||
|
||||
local function draw(item)
|
||||
if not item.widget._overlay_init then
|
||||
item.widget.after_draw_children = after_draw_children
|
||||
item.widget._overlay_init = true
|
||||
|
@ -32,7 +30,7 @@ local function draw(item,args)
|
|||
-- Build the 2 item border colors, this item_style doesn't support gradient
|
||||
-- or patterns
|
||||
item.widget.col1 = color(item.item_border_color or item.border_color or beautiful.border_color)
|
||||
local s,r,g,b,a = item.widget.col1:get_rgba()
|
||||
local _,r,g,b,a = item.widget.col1:get_rgba()
|
||||
r,g,b = r-.2,g-.2,b-.2
|
||||
item.widget.col2 = cairo.Pattern.create_rgba(r,g,b,a)
|
||||
end
|
||||
|
|
|
@ -41,8 +41,7 @@ local function suffix_fit(box,context,w,h)
|
|||
return width + h/2 + h/6,height
|
||||
end
|
||||
|
||||
local function draw(item,args)
|
||||
local args = args or {}
|
||||
local function draw(item)
|
||||
|
||||
if not item.widget._overlay_init then
|
||||
item.widget._drawprefix = item.widget.draw
|
||||
|
|
|
@ -1,91 +0,0 @@
|
|||
local setmetatable = setmetatable
|
||||
local math = math
|
||||
local base = require( "radical.base" )
|
||||
local color = require( "gears.color" )
|
||||
local cairo = require( "lgi" ).cairo
|
||||
local theme = require( "radical.theme" )
|
||||
local print = print
|
||||
|
||||
local module = {
|
||||
margins = {
|
||||
TOP = 4,
|
||||
BOTTOM = 4,
|
||||
RIGHT = 4,
|
||||
LEFT = 4
|
||||
}
|
||||
}
|
||||
|
||||
local state_cache = {}
|
||||
|
||||
local function gen(w,h,bg_color,border_color)
|
||||
cr:save()
|
||||
local img = cairo.ImageSurface(cairo.Format.ARGB32, w,h)
|
||||
local cr = cairo.Context(img)
|
||||
local rad = corner_radius or 3
|
||||
cr:set_source(color(bg_color))
|
||||
local radius = 3
|
||||
cr:arc(radius,radius,radius,math.pi,3*(math.pi/2))
|
||||
cr:arc(w-radius,radius,radius,3*(math.pi/2),math.pi*2)
|
||||
cr:line_to(w,h)
|
||||
cr:arc(radius,h-radius,radius,math.pi/2,math.pi)
|
||||
cr:close_path()
|
||||
cr:clip()
|
||||
cr:paint_with_alpha(0.3)
|
||||
cr:reset_clip()
|
||||
cr:move_to(w,h-6)
|
||||
cr:line_to(w,h)
|
||||
cr:line_to(w-6,h)
|
||||
cr:fill()
|
||||
cr:restore()
|
||||
return cairo.Pattern.create_for_surface(img)
|
||||
end
|
||||
|
||||
local function before_draw_children(self, context, cr, width, height)
|
||||
|
||||
local state = self._item.state or {}
|
||||
local current_state = state._current_key or ""
|
||||
if not state_cache[current_state] then
|
||||
state_cache[current_state] = {}
|
||||
end
|
||||
local cache = state_cache[current_state]
|
||||
local hash = width+1234*height
|
||||
|
||||
local cached = cache[hash]
|
||||
|
||||
--Generate the pixmap
|
||||
if not cached then
|
||||
local state_name = current_state == "" and "bg" or "bg_"..(base.colors_by_id[current_state] or "")
|
||||
cached = gen(width,height,self._item[state_name],bc)
|
||||
cache[hash] = cached
|
||||
end
|
||||
|
||||
if current_state ~= self._last_state then
|
||||
self:set_bg(cached)
|
||||
self._last_state = current_state
|
||||
end
|
||||
end
|
||||
|
||||
local function draw(item,args)
|
||||
local args = args or {}
|
||||
|
||||
if not item.widget._overlay_init then
|
||||
item.widget.before_draw_children = before_draw_children
|
||||
item.widget._overlay_init = true
|
||||
item.widget._item = item
|
||||
end
|
||||
|
||||
local state = item.state or {}
|
||||
local current_state = state._current_key or nil
|
||||
local state_name = base.colors_by_id[current_state]
|
||||
|
||||
if current_state == base.item_flags.SELECTED or (item._tmp_menu) then
|
||||
item.widget:set_fg(item["fg_focus"])
|
||||
elseif state_name then
|
||||
item.widget:set_fg( item["fg_"..state_name])
|
||||
else
|
||||
item.widget:set_fg(item["fg_normal"])
|
||||
end
|
||||
end
|
||||
|
||||
return setmetatable(module, { __call = function(_, ...) return draw(...) end })
|
||||
-- kate: space-indent on; indent-width 2; replace-tabs on;
|
|
@ -1,5 +1,4 @@
|
|||
local setmetatable = setmetatable
|
||||
local print = print
|
||||
local ipairs = ipairs
|
||||
local math = math
|
||||
local wibox = require( "wibox" )
|
||||
|
@ -49,7 +48,6 @@ local function item_fit(data,item,...)
|
|||
end
|
||||
|
||||
local function new(data)
|
||||
local counter = 0
|
||||
local mode = data.column ~= nil
|
||||
local rows = {}
|
||||
local l = wibox.layout.fixed[mode and "horizontal" or "vertical"]()
|
||||
|
@ -63,13 +61,13 @@ local function new(data)
|
|||
local r1,r2 = data.item_height*math.ceil(data.rowcount/constraint),data.item_height*constraint
|
||||
return (mode and r2 or r1),(mode and r1 or r2)
|
||||
end
|
||||
l.add = function(l,item)
|
||||
l.add = function(_, it)
|
||||
for k,v in ipairs(rows) do
|
||||
v:reset()
|
||||
end
|
||||
local rc = data.rowcount+1
|
||||
for i=1,rc do
|
||||
rows[((i-1)%constraint)+1]:add((rc == i and item.widget or data.items[i].widget))
|
||||
rows[((i-1)%constraint)+1]:add((rc == i and it.widget or data.items[i].widget))
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
|
|
@ -36,13 +36,7 @@ local function new(data)
|
|||
}
|
||||
|
||||
-- Hack fit
|
||||
local new_fit
|
||||
new_fit = function(self,context,w,h,force_values) --TODO use the context instead of extra argument
|
||||
-- Get the original fit, the function need to be replaced to avoir a stack overflow
|
||||
real_l.fit = real_l._fit
|
||||
local result,r2 = self:get_preferred_size(context, force_values and w, force_values and h)
|
||||
real_l.fit = new_fit
|
||||
|
||||
function real_l.fit(self,context)
|
||||
local w,h
|
||||
if data.auto_resize and data._internal.largest_item_h then
|
||||
w,h = data.rowcount*(data.item_width or data.default_width),data._internal.largest_item_h_v > data.item_height and data._internal.largest_item_h_v or data.item_height
|
||||
|
@ -53,9 +47,6 @@ local function new(data)
|
|||
return w,h
|
||||
end
|
||||
|
||||
real_l._fit = real_l.fit
|
||||
real_l.fit = new_fit
|
||||
|
||||
return real_l
|
||||
end
|
||||
|
||||
|
|
|
@ -39,8 +39,8 @@ local function compute_geo(data,width,height,force_values)
|
|||
|
||||
local visblerow = data.visible_row_count
|
||||
|
||||
local sw,sh = data._internal.suf_l:get_preferred_size()
|
||||
local pw,ph = data._internal.pref_l:get_preferred_size()
|
||||
local _,sh = data._internal.suf_l:get_preferred_size()
|
||||
local _,ph = data._internal.pref_l:get_preferred_size()
|
||||
if not data._internal.has_widget then
|
||||
return w, visblerow*data.item_height + ph + sh
|
||||
else
|
||||
|
|
|
@ -1,87 +0,0 @@
|
|||
local base = require( "radical.base" )
|
||||
local print = print
|
||||
local unpack = unpack
|
||||
local setmetatable = setmetatable
|
||||
local color = require( "gears.color" )
|
||||
local wibox = require( "wibox" )
|
||||
local beautiful = require( "beautiful" )
|
||||
local cairo = require( "lgi" ).cairo
|
||||
local awful = require( "awful" )
|
||||
local util = require( "awful.util" )
|
||||
local button = require( "awful.button" )
|
||||
local checkbox = require( "radical.widgets.checkbox" )
|
||||
|
||||
local capi,module = { mouse = mouse , screen = screen, keygrabber = keygrabber },{}
|
||||
|
||||
local function get_direction(data)
|
||||
return "left" -- Nothing to do
|
||||
end
|
||||
|
||||
local function set_position(self)
|
||||
return --Nothing to do
|
||||
end
|
||||
|
||||
local function setup_drawable(data)
|
||||
local internal = data._internal
|
||||
local get_map,set_map,private_data = internal.get_map,internal.set_map,internal.private_data
|
||||
|
||||
--Init
|
||||
-- internal.w = wibox({})
|
||||
internal.margin = wibox.container.margin()
|
||||
if not data.layout then
|
||||
data.layout = layout.vertical
|
||||
end
|
||||
internal.layout = wibox.layout.fixed.horizontal() --data.layout(data) --TODO fix
|
||||
internal.margin:set_widget(internal.layout)
|
||||
|
||||
--Getters
|
||||
get_map.wibox = function() return nil end -- Will this break?
|
||||
get_map.x = function() return 0 end
|
||||
get_map.y = function() return 0 end
|
||||
get_map.width = function() return 500 end
|
||||
get_map.height = function() return 40 end
|
||||
get_map.visible = function() return private_data.visible end
|
||||
get_map.direction = function() return private_data.direction end
|
||||
get_map.margins = function()
|
||||
local ret = {left=data.border_width,right=data.border_width,top=data.style.margins.TOP,bottom=data.style.margins.BOTTOM}
|
||||
if data.arrow_type ~= base.arrow_type.NONE then
|
||||
ret[data.direction] = ret[data.direction]+13
|
||||
end
|
||||
return ret
|
||||
end
|
||||
|
||||
--Setters
|
||||
function internal:set_visible(value)
|
||||
-- TODO
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
local function setup_item(data,item,args)
|
||||
-- Add widgets
|
||||
local tb = wibox.widget.textbox()
|
||||
data._internal.layout:add(tb)
|
||||
item.widget = tb
|
||||
tb:set_text("bob")
|
||||
end
|
||||
|
||||
local function new(args)
|
||||
local args = args or {}
|
||||
args.internal = args.internal or {}
|
||||
args.internal.get_direction = args.internal.get_direction or get_direction
|
||||
args.internal.set_position = args.internal.set_position or set_position
|
||||
args.internal.setup_drawable = args.internal.setup_drawable or setup_drawable
|
||||
args.internal.setup_item = args.internal.setup_item or setup_item
|
||||
args.style = args.style or arrow_style
|
||||
local ret = base(args)
|
||||
ret:connect_signal("clear::menu",function(_,vis)
|
||||
ret._internal.layout:reset()
|
||||
end)
|
||||
ret:connect_signal("_hidden::changed",function(_,item)
|
||||
item.widget:emit_signal("widget::updated")
|
||||
end)
|
||||
return ret
|
||||
end
|
||||
|
||||
return setmetatable(module, { __call = function(_, ...) return new(...) end })
|
||||
-- kate: space-indent on; indent-width 2; replace-tabs on;
|
|
@ -5,7 +5,8 @@ local rawget = rawget
|
|||
local pairs = pairs
|
||||
|
||||
local function setup_object(args)
|
||||
local data,args,private_data,signals = {},args or {},private_data or {},{}
|
||||
args = args or {}
|
||||
local data,signals = {},{}
|
||||
local private_data = args.private_data or {}
|
||||
|
||||
function data:connect_signal(name,func)
|
||||
|
@ -73,4 +74,4 @@ local function setup_object(args)
|
|||
setmetatable(data, { __index = return_data, __newindex = catch_changes, __len = function() return #data + #private_data end, })
|
||||
return data,private_data
|
||||
end
|
||||
return setmetatable({}, { __call = function(_, ...) return setup_object(...) end })
|
||||
return setmetatable({}, { __call = function(_, ...) return setup_object(...) end })
|
||||
|
|
|
@ -9,15 +9,12 @@
|
|||
-- @release @AWESOME_VERSION@
|
||||
-- @module radical.smart_wibox
|
||||
---------------------------------------------------------------------------
|
||||
local capi = {mouse = mouse, screen = screen}
|
||||
local wibox = require( "wibox" )
|
||||
local util = require( "awful.util" )
|
||||
local surface = require( "gears.surface" )
|
||||
local glib = require( "lgi" ).GLib
|
||||
local beautiful = require( "beautiful" )
|
||||
local color = require( "gears.color" )
|
||||
local screen = require( "awful.screen" )
|
||||
local mouse = require( "awful.mouse" )
|
||||
local placement = require( "awful.placement" )
|
||||
local unpack = unpack or table.unpack
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ local setmetatable = setmetatable
|
|||
local unpack = unpack or table.unpack
|
||||
local beautiful = require( "beautiful" )
|
||||
local color = require( "gears.color" )
|
||||
local cairo = require( "lgi" ).cairo
|
||||
local base = require( "radical.base" )
|
||||
local shape = require( "gears.shape" )
|
||||
|
||||
|
@ -89,16 +88,16 @@ local function update_margins(data, pos)
|
|||
end
|
||||
|
||||
-- Generate a rounded cairo path with the arrow
|
||||
local function draw_roundedrect_path(cr, width, height, radius, data, direction)
|
||||
local function draw_roundedrect_path(cr, width, height, rad, data, direction)
|
||||
direction = direction or "right"
|
||||
|
||||
if data.arrow_type == base.arrow_type.NONE then
|
||||
if direction == "left" then
|
||||
data._internal.w:set_yoffset(-radius)
|
||||
data._internal.w:set_yoffset(-rad)
|
||||
elseif direction == "right" then
|
||||
data._internal.w:set_yoffset(radius)
|
||||
data._internal.w:set_yoffset(rad)
|
||||
end
|
||||
return shape.rounded_rect(cr, width, height, radius)
|
||||
return shape.rounded_rect(cr, width, height, rad)
|
||||
end
|
||||
|
||||
local angle, swap = angles[direction], swaps[direction]
|
||||
|
@ -118,12 +117,11 @@ local function draw_roundedrect_path(cr, width, height, radius, data, direction)
|
|||
gen_arrow_x(data, data.direction, width, height)
|
||||
|
||||
-- Forward to the real shape
|
||||
local ax = swap and width - (data._arrow_x or 20)-arrow_height - radius or (data._arrow_x or 20)
|
||||
s(cr, width, height, radius, arrow_height, ax)
|
||||
local ax = swap and width - (data._arrow_x or 20)-arrow_height - rad or (data._arrow_x or 20)
|
||||
s(cr, width, height, rad, arrow_height, ax)
|
||||
end
|
||||
|
||||
local function draw(data,args)
|
||||
local args = args or {}
|
||||
local function draw(data)
|
||||
|
||||
if not data._internal.arrow_setup then
|
||||
data._internal.w:set_shape_border_width(data.border_width or 1)
|
||||
|
@ -140,12 +138,10 @@ local function draw(data,args)
|
|||
-- if dir then
|
||||
-- data._internal.w:set_shape(function(cr, w, h) draw_roundedrect_path(cr, w, h, radius, data, data._internal.w.position) end)
|
||||
-- end
|
||||
update_margins(data, dir)
|
||||
update_margins(data, nil)
|
||||
|
||||
data._internal.arrow_setup = true
|
||||
end
|
||||
|
||||
return w,w2
|
||||
end
|
||||
|
||||
return setmetatable(module, { __call = function(_, ...) return draw(...) end })
|
||||
|
|
|
@ -7,7 +7,7 @@ local module = {
|
|||
TOP = 0 ,
|
||||
BOTTOM = 0 ,
|
||||
LEFT = 0 ,
|
||||
BOTTOM = 0 ,
|
||||
RIGHT = 0 ,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,14 +1,12 @@
|
|||
local setmetatable = setmetatable
|
||||
local base = require( "radical.base" )
|
||||
local color = require( "gears.color" )
|
||||
local shape = require( "gears.shape" )
|
||||
|
||||
local module = {
|
||||
margins = {
|
||||
TOP = 0 ,
|
||||
BOTTOM = 0 ,
|
||||
LEFT = 0 ,
|
||||
BOTTOM = 0 ,
|
||||
RIGHT = 0 ,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -74,7 +74,8 @@ end
|
|||
local theme_colors = {}
|
||||
|
||||
local function load_section(data,priv,section,args)
|
||||
local bg,fg,args = section.."_bg_", section.."_fg_",args or {}
|
||||
args = args or {}
|
||||
local bg,fg = section.."_bg_", section.."_fg_"
|
||||
for k,v in pairs(theme_colors) do
|
||||
priv[bg..k] = args[bg..v.beautiful_name] or beautiful["menu_"..bg..v.beautiful_name] or beautiful[bg..v.beautiful_name]
|
||||
priv[fg..k] = args[fg..v.beautiful_name] or beautiful["menu_"..fg..v.beautiful_name] or beautiful[fg..v.beautiful_name]
|
||||
|
|
12
tooltip.lua
12
tooltip.lua
|
@ -2,7 +2,6 @@ local setmetatable,math = setmetatable,math
|
|||
local beautiful = require( "beautiful" )
|
||||
local surface = require( "gears.surface" )
|
||||
local wibox = require( "wibox" )
|
||||
local cairo = require( "lgi" ).cairo
|
||||
local object = require( "radical.object" )
|
||||
local shape = require( "gears.shape" )
|
||||
local capi = { screen = screen ,
|
||||
|
@ -91,7 +90,9 @@ end
|
|||
|
||||
|
||||
local function new(widget,text, args)
|
||||
local args,data = args or {},object({
|
||||
args = args or {}
|
||||
|
||||
local data = object({
|
||||
private_data = {
|
||||
},
|
||||
autogen_getmap = true,
|
||||
|
@ -114,7 +115,7 @@ local function new(widget,text, args)
|
|||
function data:hide() hide_tooltip() end
|
||||
|
||||
function data:showToolTip(show,args2)
|
||||
local args2 = args2 or args or {}
|
||||
args2 = args2 or args or {}
|
||||
args.direction = args.direction or get_direction(args2)
|
||||
|
||||
local vertical,textw = (args.direction == "left") or (args.direction == "right"),wibox.widget.textbox()
|
||||
|
@ -151,10 +152,11 @@ local function new(widget,text, args)
|
|||
end
|
||||
end
|
||||
end
|
||||
widget:connect_signal("mouse::enter" , function(widget,geometry) data:showToolTip( true , {parent=geometry}) end)
|
||||
widget:connect_signal("mouse::enter" , function(_,geometry) data:showToolTip( true , {parent=geometry}) end)
|
||||
widget:connect_signal("mouse::leave" , hide_tooltip)
|
||||
widget:connect_signal("button::press" , hide_tooltip)
|
||||
data.set_text = set_text
|
||||
data.set_text = set_text
|
||||
data.set_markup = set_markup
|
||||
data._args = args
|
||||
return data
|
||||
end
|
||||
|
|
|
@ -8,7 +8,7 @@ local function set_data(self, data)
|
|||
local info = self:get_children_by_id("infoshapes" )[1]
|
||||
local tb = self:get_children_by_id("filter_text")[1]
|
||||
|
||||
function self:fit(context,width,height)
|
||||
function self.fit(_,context,width,height)
|
||||
return width,data.item_height
|
||||
end
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
local setmetatable = setmetatable
|
||||
local print = print
|
||||
local color = require( "gears.color" )
|
||||
local cairo = require( "lgi" ).cairo
|
||||
local pango = require( "lgi" ).Pango
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
local setmetatable = setmetatable
|
||||
local print = print
|
||||
local color = require("gears.color")
|
||||
local cairo = require( "lgi" ).cairo
|
||||
local wibox = require("wibox")
|
||||
|
||||
local beautiful = require( "beautiful" )
|
||||
|
@ -9,13 +6,12 @@ local beautiful = require( "beautiful" )
|
|||
local module = {}
|
||||
|
||||
local function new(data,text,args)
|
||||
local args = args or {}
|
||||
args = args or {}
|
||||
local bg = wibox.container.background()
|
||||
local infoHeader = wibox.widget.textbox()
|
||||
infoHeader:set_font("")
|
||||
infoHeader:set_markup( " <span color='".. beautiful.bg_normal .."' font='DejaVu Sans Mono' size='small' font_weight='bold'>".. text .."</span> " )
|
||||
local l = wibox.layout.align.horizontal()
|
||||
print("\n\n\nAAAAAAAAAA",l.set_first, l.set_left)
|
||||
l:set_left(infoHeader)
|
||||
bg:set_widget(l)
|
||||
bg:set_bg(data.bg_header)
|
||||
|
|
|
@ -13,7 +13,7 @@ local infoshape = { mt = {} }
|
|||
|
||||
local default_shape = shape.rounded_bar
|
||||
|
||||
local default_font_description = nil
|
||||
-- local default_font_description = nil
|
||||
|
||||
local pango_l = {}
|
||||
|
||||
|
@ -56,11 +56,11 @@ local function get_group_extents(self, group, height)
|
|||
end
|
||||
|
||||
-- Add the shape to the context
|
||||
local function draw_shape2(self, infoshape, cr, width, height, ...)
|
||||
local shape = infoshape.shape or self._default_shape or default_shape
|
||||
local function draw_shape2(self, is, cr, width, height, ...)
|
||||
local s = is.shape or self._default_shape or default_shape
|
||||
|
||||
if shape then
|
||||
shape(cr, width, height, ...)
|
||||
if s then
|
||||
s(cr, width, height, ...)
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -121,7 +121,7 @@ end
|
|||
local function draw_section_common(self, context, cr, width, height, section)
|
||||
cr:translate(0, padding)
|
||||
for k, v in ipairs(section) do
|
||||
local w, h = draw_shape(self, cr, width, height, v)
|
||||
local w = draw_shape(self, cr, width, height, v)
|
||||
cr:translate(w + (self._padding or 2) + height, 0)
|
||||
end
|
||||
end
|
||||
|
@ -163,7 +163,7 @@ end
|
|||
-- Support multiple align modes
|
||||
function infoshape:layout(context, width, height)
|
||||
if self.widget then
|
||||
local w, h = self.widget:fit(context, width, height)
|
||||
local w = self.widget:fit(context, width, height)
|
||||
if not self._align or self._align == "left" then --TODO use base.fit_widget
|
||||
return { base.place_widget_at(self.widget, 0, 0, w, height) }
|
||||
else
|
||||
|
@ -230,7 +230,7 @@ end
|
|||
-- @treturn A unique identifier key
|
||||
--
|
||||
function infoshape:add_infoshape(args)
|
||||
local args = args or {}
|
||||
args = args or {}
|
||||
local align = args.align or "right"
|
||||
local layer = args.layer or "below"
|
||||
if not self["_"..layer] then
|
||||
|
@ -263,8 +263,8 @@ function infoshape:set_infoshapes(args)
|
|||
end
|
||||
|
||||
--TODO fallback beautiful
|
||||
function infoshape:set_shape(shape)
|
||||
self._default_shape = shape
|
||||
function infoshape:set_shape(s)
|
||||
self._default_shape = s
|
||||
end
|
||||
|
||||
--TODO fallback beautiful
|
||||
|
@ -277,9 +277,9 @@ function infoshape:set_shape_border_width(col)
|
|||
self._shape_border_width = col
|
||||
end
|
||||
|
||||
function infoshape:set_default_font_description(desc)
|
||||
default_font_description = desc
|
||||
end
|
||||
-- function infoshape:set_default_font_description(desc)
|
||||
-- default_font_description = desc
|
||||
-- end
|
||||
|
||||
--TODO set default bg
|
||||
--TODO set default fg
|
||||
|
|
|
@ -77,7 +77,7 @@ end
|
|||
local function new(data)
|
||||
if not colors then colors = {color(beautiful.fg_normal),color(beautiful.bg_alternate),color(beautiful.fg_focus),color(beautiful.bg_highlight)} end
|
||||
local im = wibox.widget.imagebox()
|
||||
im._data,im.draw,im.set_data = dummy_dataset,draw,set_data
|
||||
im.draw,im.set_data = draw,set_data
|
||||
im._cache = {}
|
||||
return im
|
||||
end
|
||||
|
|
|
@ -5,7 +5,6 @@ local button = require( "awful.button" )
|
|||
local beautiful = require( "beautiful" )
|
||||
local shape = require( "gears.shape" )
|
||||
local surface = require( "gears.surface" )
|
||||
local theme = require( "radical.theme" )
|
||||
|
||||
local module = {}
|
||||
|
||||
|
|
|
@ -1,7 +1,5 @@
|
|||
local setmetatable = setmetatable
|
||||
local print = print
|
||||
local color = require( "gears.color")
|
||||
local cairo = require( "lgi" ).cairo
|
||||
local wibox = require( "wibox" )
|
||||
local beautiful = require( "beautiful" )
|
||||
|
||||
|
|
|
@ -2,7 +2,6 @@ local wibox = require("wibox")
|
|||
local beautiful = require("beautiful")
|
||||
local color = require("gears.color")
|
||||
local ipairs = ipairs
|
||||
local print = print
|
||||
|
||||
local function textbox_draw(self, context, cr, width, height)
|
||||
cr:save()
|
||||
|
@ -15,11 +14,11 @@ local function textbox_draw(self, context, cr, width, height)
|
|||
wibox.widget.textbox.draw(self, context, cr, width, height)
|
||||
end
|
||||
|
||||
local function create_textbox(context,col_c,col,has_v_header,row_height)
|
||||
local function create_textbox(col_c,col,has_v_header,row_height)
|
||||
local t = wibox.widget.textbox()
|
||||
|
||||
t.fit = function(s,context,w2,h)
|
||||
local fw,fh = wibox.widget.textbox.fit(s,context,w2,h)
|
||||
local _,fh = wibox.widget.textbox.fit(s,context,w2,h)
|
||||
return (w2/(col_c+2 - col)),row_height or fh
|
||||
end
|
||||
t.draw = textbox_draw
|
||||
|
@ -27,19 +26,19 @@ local function create_textbox(context,col_c,col,has_v_header,row_height)
|
|||
return t
|
||||
end
|
||||
|
||||
local function create_h_header(main_l,cols,context,args)
|
||||
local function create_h_header(main_l,cols,args)
|
||||
if args.h_header then
|
||||
local bg = wibox.container.background()
|
||||
local row_l = wibox.layout.fixed.horizontal()
|
||||
bg:set_bg(beautiful.menu_table_bg_header or beautiful.menu_bg_header or beautiful.fg_normal)
|
||||
bg:set_widget(row_l)
|
||||
if args.v_header then
|
||||
local t = create_textbox(context,cols,1,args.v_header ~= nil,args.row_height)
|
||||
local t = create_textbox(cols,1,args.v_header ~= nil,args.row_height)
|
||||
t:set_markup("<span color='".. beautiful.bg_normal .."'>--</span>")
|
||||
row_l:add(t)
|
||||
end
|
||||
for i=1,cols do
|
||||
local t = create_textbox(context,cols,i+1,args.v_header ~= nil,args.row_height)
|
||||
local t = create_textbox(cols,i+1,args.v_header ~= nil,args.row_height)
|
||||
t:set_markup("<span color='".. beautiful.bg_normal .."'>".. (args.h_header[i] or "-") .."</span>")
|
||||
row_l:add(t)
|
||||
end
|
||||
|
@ -48,8 +47,7 @@ local function create_h_header(main_l,cols,context,args)
|
|||
end
|
||||
|
||||
local function new(content,args)
|
||||
local args = args or {}
|
||||
local rows = #content
|
||||
args = args or {}
|
||||
local cols = 0
|
||||
for k,v in ipairs(content) do
|
||||
if #v > cols then
|
||||
|
@ -57,18 +55,18 @@ local function new(content,args)
|
|||
end
|
||||
end
|
||||
local main_l = wibox.layout.fixed.vertical()
|
||||
local w =200
|
||||
|
||||
main_l.fit = function(self,context,width,height)
|
||||
w = width
|
||||
return wibox.layout.fixed.fit(self,context,width,height)
|
||||
end
|
||||
create_h_header(main_l,cols,w,args)
|
||||
|
||||
create_h_header(main_l,cols,args)
|
||||
|
||||
local j,widgets =1,{}
|
||||
for k,v in ipairs(content) do
|
||||
local row_l,row_w = wibox.layout.fixed.horizontal(),{}
|
||||
if args.v_header then
|
||||
local t = create_textbox(w,cols,1,args.v_header ~= nil,args.row_height)
|
||||
local t = create_textbox(cols,1,args.v_header ~= nil,args.row_height)
|
||||
t:set_markup("<span color='".. beautiful.bg_normal .."'>".. (args.v_header[j] or "-") .."</span>")
|
||||
local bg = wibox.container.background()
|
||||
bg:set_bg(beautiful.menu_table_bg_header or beautiful.menu_bg_header or beautiful.fg_normal)
|
||||
|
@ -76,7 +74,7 @@ local function new(content,args)
|
|||
row_l:add(bg)
|
||||
end
|
||||
for i=1,cols do
|
||||
local t = create_textbox(w,cols,i+1,args.v_header ~= nil,args.row_height)
|
||||
local t = create_textbox(cols,i+1,args.v_header ~= nil,args.row_height)
|
||||
t:set_text(v[i])
|
||||
row_l:add(t)
|
||||
row_w[#row_w+1] =t
|
||||
|
|
Loading…
Reference in New Issue