item.layout: Use the checkbox widget
This commit is contained in:
parent
f15738e49a
commit
9a7275a399
|
@ -1,4 +1,5 @@
|
||||||
local wibox = require( "wibox" )
|
local wibox = require( "wibox" )
|
||||||
|
local beautiful = require( "beautiful" )
|
||||||
|
|
||||||
local module = {}
|
local module = {}
|
||||||
|
|
||||||
|
@ -47,6 +48,31 @@ function module.setup_fkey(item,data)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Setup the checkbox
|
||||||
|
function module.setup_checked(item, data)
|
||||||
|
if item.checkable then
|
||||||
|
item.get_checked = function()
|
||||||
|
if type(item._private_data.checked) == "function" then
|
||||||
|
return item._private_data.checked(data,item)
|
||||||
|
else
|
||||||
|
return item._private_data.checked
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local ck = wibox.widget.checkbox(item.checked or false, {
|
||||||
|
style = beautiful.menu_checkbox_style,
|
||||||
|
color = beautiful.fg_normal
|
||||||
|
})
|
||||||
|
|
||||||
|
item.set_checked = function (_,value)
|
||||||
|
item._private_data.checked = value
|
||||||
|
ck.checked = value
|
||||||
|
item._internal.has_changed = true
|
||||||
|
end
|
||||||
|
return ck
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- Proxy all events to the parent
|
-- Proxy all events to the parent
|
||||||
function module.setup_event(data,item,widget)
|
function module.setup_event(data,item,widget)
|
||||||
widget = widget or item.widget
|
widget = widget or item.widget
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
local setmetatable = setmetatable
|
local setmetatable = setmetatable
|
||||||
local beautiful = require( "beautiful" )
|
local beautiful = require( "beautiful" )
|
||||||
local wibox = require( "wibox" )
|
local wibox = require( "wibox" )
|
||||||
local checkbox = require( "radical.widgets.checkbox" )
|
|
||||||
local fkey = require( "radical.widgets.fkey" )
|
local fkey = require( "radical.widgets.fkey" )
|
||||||
local infoshapes = require( "radical.widgets.infoshapes" )
|
local infoshapes = require( "radical.widgets.infoshapes" )
|
||||||
local util = require( "awful.util" )
|
local util = require( "awful.util" )
|
||||||
|
@ -12,27 +11,6 @@ local common = require( "radical.item.common" )
|
||||||
|
|
||||||
local module = {}
|
local module = {}
|
||||||
|
|
||||||
-- Show the checkbox
|
|
||||||
function module:setup_checked(item,data)
|
|
||||||
if item.checkable then
|
|
||||||
item.get_checked = function()
|
|
||||||
if type(item._private_data.checked) == "function" then
|
|
||||||
return item._private_data.checked(data,item)
|
|
||||||
else
|
|
||||||
return item._private_data.checked
|
|
||||||
end
|
|
||||||
end
|
|
||||||
local ck = wibox.widget.imagebox()
|
|
||||||
ck:set_image(item.checked and checkbox.checked() or checkbox.unchecked())
|
|
||||||
item.set_checked = function (_,value)
|
|
||||||
item._private_data.checked = value
|
|
||||||
ck:set_image(item.checked and checkbox.checked() or checkbox.unchecked())
|
|
||||||
item._internal.has_changed = true
|
|
||||||
end
|
|
||||||
return ck
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
-- Create sub_menu arrows
|
-- Create sub_menu arrows
|
||||||
local sub_arrow = nil
|
local sub_arrow = nil
|
||||||
function module:setup_sub_menu_arrow(item,data)
|
function module:setup_sub_menu_arrow(item,data)
|
||||||
|
@ -65,6 +43,8 @@ local function create_item(item,data,args)
|
||||||
-- Icon
|
-- Icon
|
||||||
local icon = common.setup_icon(item,data)
|
local icon = common.setup_icon(item,data)
|
||||||
|
|
||||||
|
local checkbox = common.setup_checked(item,data)
|
||||||
|
|
||||||
if data.icon_per_state == true then --TODO create an icon widget, see item/common.lua
|
if data.icon_per_state == true then --TODO create an icon widget, see item/common.lua
|
||||||
item:connect_signal("state::changed",function(i,d,st)
|
item:connect_signal("state::changed",function(i,d,st)
|
||||||
if item._original_icon and data.icon_transformation then
|
if item._original_icon and data.icon_transformation then
|
||||||
|
@ -119,7 +99,7 @@ local function create_item(item,data,args)
|
||||||
-- Suffixes
|
-- Suffixes
|
||||||
|
|
||||||
-- Widget
|
-- Widget
|
||||||
module:setup_checked(item,data) ,
|
checkbox ,
|
||||||
module:setup_sub_menu_arrow(item,data),
|
module:setup_sub_menu_arrow(item,data),
|
||||||
args.suffix_widget ,
|
args.suffix_widget ,
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,6 @@ local setmetatable = setmetatable
|
||||||
local beautiful = require( "beautiful" )
|
local beautiful = require( "beautiful" )
|
||||||
local color = require( "gears.color" )
|
local color = require( "gears.color" )
|
||||||
local wibox = require( "wibox" )
|
local wibox = require( "wibox" )
|
||||||
local checkbox = require( "radical.widgets.checkbox" )
|
|
||||||
local util = require( "awful.util" )
|
local util = require( "awful.util" )
|
||||||
local margins2 = require( "radical.margins" )
|
local margins2 = require( "radical.margins" )
|
||||||
local common = require( "radical.item.common" )
|
local common = require( "radical.item.common" )
|
||||||
|
@ -36,7 +35,7 @@ local function icon_draw(self, context, cr, width, height)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function create_item(item,data,args)
|
local function create_item(item,data,args)
|
||||||
local pref, subArrow, ck = nil, nil, nil
|
local pref, subArrow = nil, nil
|
||||||
|
|
||||||
if data.fkeys_prefix == true then
|
if data.fkeys_prefix == true then
|
||||||
pref = wibox.widget.textbox()
|
pref = wibox.widget.textbox()
|
||||||
|
@ -50,7 +49,9 @@ local function create_item(item,data,args)
|
||||||
|
|
||||||
local icon = common.setup_icon(item,data)
|
local icon = common.setup_icon(item,data)
|
||||||
icon.fit = function(...) return icon_fit(data,...) end
|
icon.fit = function(...) return icon_fit(data,...) end
|
||||||
icon.draw = icon_draw
|
icon.draw = icon_draw --TODO use a constraint
|
||||||
|
|
||||||
|
local checkbox = common.setup_checked(item,data)
|
||||||
|
|
||||||
local has_children = item._private_data.sub_menu_f or item._private_data.sub_menu_m
|
local has_children = item._private_data.sub_menu_f or item._private_data.sub_menu_m
|
||||||
|
|
||||||
|
@ -72,24 +73,6 @@ local function create_item(item,data,args)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if item.checkable then
|
|
||||||
function item.get_checked(_, i)
|
|
||||||
if type(i._private_data.checked) == "function" then
|
|
||||||
return i._private_data.checked()
|
|
||||||
else
|
|
||||||
return i._private_data.checked
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
ck = wibox.widget.imagebox()
|
|
||||||
ck:set_image(item.checked and checkbox.checked() or checkbox.unchecked())
|
|
||||||
|
|
||||||
function item:set_checked(value)
|
|
||||||
item._private_data.checked = value
|
|
||||||
ck:set_image(item.checked and checkbox.checked() or checkbox.unchecked())
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
local w = wibox.widget.base.make_widget_declarative {
|
local w = wibox.widget.base.make_widget_declarative {
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
|
@ -110,7 +93,7 @@ local function create_item(item,data,args)
|
||||||
|
|
||||||
-- Widgets
|
-- Widgets
|
||||||
subArrow or nil ,
|
subArrow or nil ,
|
||||||
ck or nil ,
|
checkbox or nil ,
|
||||||
args.suffix_widget ,
|
args.suffix_widget ,
|
||||||
|
|
||||||
-- Attributes
|
-- Attributes
|
||||||
|
|
Loading…
Reference in New Issue