Make it possible to change item text and icon dynamically
This commit is contained in:
parent
cd4d8d1dbe
commit
70c27a360c
|
@ -142,7 +142,7 @@ local function setup_drawable(data)
|
||||||
end
|
end
|
||||||
|
|
||||||
local function setup_item(data,item,args)
|
local function setup_item(data,item,args)
|
||||||
(data._internal.layout.setup_item or layout.vertical.setup_item)(data._internal.layout,data,item,args)
|
;(data._internal.layout.setup_item or layout.vertical.setup_item)(data._internal.layout,data,item,args);
|
||||||
end
|
end
|
||||||
|
|
||||||
local function new(args)
|
local function new(args)
|
||||||
|
|
|
@ -125,14 +125,15 @@ function module:setup_item(data,item,args)
|
||||||
l:add(args.prefix_widget)
|
l:add(args.prefix_widget)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
local icon_flex = wibox.layout.align.horizontal()
|
||||||
|
local icon = wibox.widget.imagebox()
|
||||||
|
icon.fit = function(...) return icon_fit(data,...) end
|
||||||
if args.icon then
|
if args.icon then
|
||||||
local icon_flex = wibox.layout.align.horizontal()
|
|
||||||
local icon = wibox.widget.imagebox()
|
|
||||||
icon.fit = function(...) return icon_fit(data,...) end
|
|
||||||
icon:set_image(args.icon)
|
icon:set_image(args.icon)
|
||||||
icon_flex:set_middle(icon)
|
|
||||||
l:add(icon_flex)
|
|
||||||
end
|
end
|
||||||
|
icon_flex:set_middle(icon)
|
||||||
|
l:add(icon_flex)
|
||||||
text_w:set_markup(item._private_data.text)
|
text_w:set_markup(item._private_data.text)
|
||||||
l:add(text_w)
|
l:add(text_w)
|
||||||
if item._private_data.sub_menu_f or item._private_data.sub_menu_m then
|
if item._private_data.sub_menu_f or item._private_data.sub_menu_m then
|
||||||
|
@ -171,6 +172,12 @@ function module:setup_item(data,item,args)
|
||||||
data.width = fit_w
|
data.width = fit_w
|
||||||
data.height = fit_h
|
data.height = fit_h
|
||||||
data.style(data)
|
data.style(data)
|
||||||
|
item._internal.set_map.text = function (value)
|
||||||
|
text_w:set_markup(value)
|
||||||
|
end
|
||||||
|
item._internal.set_map.icon = function (value)
|
||||||
|
icon:set_image(value)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
--Get preferred item geometry
|
--Get preferred item geometry
|
||||||
|
|
|
@ -127,11 +127,11 @@ function module:setup_item(data,item,args)
|
||||||
l:add(args.prefix_widget)
|
l:add(args.prefix_widget)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local icon = wibox.widget.imagebox()
|
||||||
if args.icon then
|
if args.icon then
|
||||||
local icon = wibox.widget.imagebox()
|
|
||||||
icon:set_image(args.icon)
|
icon:set_image(args.icon)
|
||||||
l:add(icon)
|
|
||||||
end
|
end
|
||||||
|
l:add(icon)
|
||||||
text_w:set_markup(item._private_data.text)
|
text_w:set_markup(item._private_data.text)
|
||||||
l:add(text_w)
|
l:add(text_w)
|
||||||
if item._private_data.sub_menu_f or item._private_data.sub_menu_m then
|
if item._private_data.sub_menu_f or item._private_data.sub_menu_m then
|
||||||
|
@ -170,6 +170,12 @@ function module:setup_item(data,item,args)
|
||||||
data.width = fit_w
|
data.width = fit_w
|
||||||
data.height = fit_h
|
data.height = fit_h
|
||||||
data.style(data)
|
data.style(data)
|
||||||
|
item._internal.set_map.text = function (value)
|
||||||
|
text_w:set_markup(value)
|
||||||
|
end
|
||||||
|
item._internal.set_map.icon = function (value)
|
||||||
|
icon:set_image(value)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local function new(data)
|
local function new(data)
|
||||||
|
|
Loading…
Reference in New Issue