wibox.widget: Add `set_children` method
Provide a generic method to set the widget content
This commit is contained in:
parent
3ef5003ace
commit
e36f23171b
|
@ -171,6 +171,17 @@ function align:get_children()
|
||||||
return util.from_sparse {self.first, self.second, self.third}
|
return util.from_sparse {self.first, self.second, self.third}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Replace the layout children
|
||||||
|
-- This layout only accept three children, all others will be ignored
|
||||||
|
-- @tparam table children A table composed of valid widgets
|
||||||
|
function align:set_children(children)
|
||||||
|
if not children then return self:reset() end
|
||||||
|
self.first = children[1]
|
||||||
|
self.second = children[2]
|
||||||
|
self.third = children[3]
|
||||||
|
self:emit_signal("widget::layout_changed")
|
||||||
|
end
|
||||||
|
|
||||||
--- Fit the align layout into the given space. The align layout will
|
--- Fit the align layout into the given space. The align layout will
|
||||||
-- ask for the sum of the sizes of its sub-widgets in its direction
|
-- ask for the sum of the sizes of its sub-widgets in its direction
|
||||||
-- and the largest sized sub widget in the other direction.
|
-- and the largest sized sub widget in the other direction.
|
||||||
|
@ -243,6 +254,9 @@ local function get_layout(dir, first, second, third)
|
||||||
ret:set_second(second)
|
ret:set_second(second)
|
||||||
ret:set_third(third)
|
ret:set_third(third)
|
||||||
|
|
||||||
|
-- An align layout allow set_children to have empty entries
|
||||||
|
ret.allow_empty_widget = true
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -50,6 +50,14 @@ function constraint:get_children()
|
||||||
return {self.widget}
|
return {self.widget}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Replace the layout children
|
||||||
|
-- This layout only accept one children, all others will be ignored
|
||||||
|
-- @tparam table children A table composed of valid widgets
|
||||||
|
function constraint:set_children(children)
|
||||||
|
self.widget = children and children[1]
|
||||||
|
self:emit_signal("widget::layout_changed")
|
||||||
|
end
|
||||||
|
|
||||||
--- Set the strategy to use for the constraining. Valid values are 'max',
|
--- Set the strategy to use for the constraining. Valid values are 'max',
|
||||||
-- 'min' or 'exact'. Throws an error on invalid values.
|
-- 'min' or 'exact'. Throws an error on invalid values.
|
||||||
function constraint:set_strategy(val)
|
function constraint:set_strategy(val)
|
||||||
|
|
|
@ -110,6 +110,14 @@ function fixed:get_children()
|
||||||
return self.widgets
|
return self.widgets
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Replace the layout children
|
||||||
|
-- @tparam table children A table composed of valid widgets
|
||||||
|
function fixed:set_children(children)
|
||||||
|
if not children then return self:reset() end
|
||||||
|
self.widgets = children
|
||||||
|
self:emit_signal("widget::layout_changed")
|
||||||
|
end
|
||||||
|
|
||||||
--- Replace the first instance of `widget` in the layout with `widget2`
|
--- Replace the first instance of `widget` in the layout with `widget2`
|
||||||
-- @param widget The widget to replace
|
-- @param widget The widget to replace
|
||||||
-- @param widget2 The widget to replace `widget` with
|
-- @param widget2 The widget to replace `widget` with
|
||||||
|
|
|
@ -31,6 +31,11 @@ local flex = {}
|
||||||
-- @name get_children
|
-- @name get_children
|
||||||
-- @class function
|
-- @class function
|
||||||
|
|
||||||
|
--- Replace the layout children
|
||||||
|
-- @tparam table children A table composed of valid widgets
|
||||||
|
-- @name set_children
|
||||||
|
-- @class function
|
||||||
|
|
||||||
--- Add some widgets to the given fixed layout
|
--- Add some widgets to the given fixed layout
|
||||||
-- @param layout The layout you are modifying.
|
-- @param layout The layout you are modifying.
|
||||||
-- @tparam widget ... Widgets that should be added (must at least be one)
|
-- @tparam widget ... Widgets that should be added (must at least be one)
|
||||||
|
|
|
@ -78,6 +78,14 @@ function margin:get_children()
|
||||||
return {self.widget}
|
return {self.widget}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Replace the layout children
|
||||||
|
-- This layout only accept one children, all others will be ignored
|
||||||
|
-- @tparam table children A table composed of valid widgets
|
||||||
|
function margin:set_children(children)
|
||||||
|
self.widget = children and children[1]
|
||||||
|
self:emit_signal("widget::layout_changed")
|
||||||
|
end
|
||||||
|
|
||||||
--- Set all the margins to val.
|
--- Set all the margins to val.
|
||||||
function margin:set_margins(val)
|
function margin:set_margins(val)
|
||||||
self.left = val
|
self.left = val
|
||||||
|
|
|
@ -64,6 +64,14 @@ function mirror:get_children()
|
||||||
return {self.widget}
|
return {self.widget}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Replace the layout children
|
||||||
|
-- This layout only accept one children, all others will be ignored
|
||||||
|
-- @tparam table children A table composed of valid widgets
|
||||||
|
function mirror:set_children(children)
|
||||||
|
self.widget = children and children[1]
|
||||||
|
self:emit_signal("widget::layout_changed")
|
||||||
|
end
|
||||||
|
|
||||||
--- Reset this layout. The widget will be removed and the axes reset.
|
--- Reset this layout. The widget will be removed and the axes reset.
|
||||||
function mirror:reset()
|
function mirror:reset()
|
||||||
self.horizontal = false
|
self.horizontal = false
|
||||||
|
|
|
@ -72,6 +72,14 @@ function rotate:get_children()
|
||||||
return {self.widget}
|
return {self.widget}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Replace the layout children
|
||||||
|
-- This layout only accept one children, all others will be ignored
|
||||||
|
-- @tparam table children A table composed of valid widgets
|
||||||
|
function rotate:set_children(children)
|
||||||
|
self.widget = children and children[1]
|
||||||
|
self:emit_signal("widget::layout_changed")
|
||||||
|
end
|
||||||
|
|
||||||
--- Reset this layout. The widget will be removed and the rotation reset.
|
--- Reset this layout. The widget will be removed and the rotation reset.
|
||||||
function rotate:reset()
|
function rotate:reset()
|
||||||
self.direction = nil
|
self.direction = nil
|
||||||
|
|
|
@ -267,6 +267,14 @@ function scroll:get_children()
|
||||||
return {self.widget}
|
return {self.widget}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Replace the layout children
|
||||||
|
-- This layout only accept one children, all others will be ignored
|
||||||
|
-- @tparam table children A table composed of valid widgets
|
||||||
|
function scroll:set_children(children)
|
||||||
|
self.widget = children and children[1]
|
||||||
|
self:emit_signal("widget::layout_changed")
|
||||||
|
end
|
||||||
|
|
||||||
--- Specify the expand mode that is used for extra space.
|
--- Specify the expand mode that is used for extra space.
|
||||||
-- @tparam boolean expand If true, the widget is expanded to include the extra
|
-- @tparam boolean expand If true, the widget is expanded to include the extra
|
||||||
-- space. If false, the extra space is simply left empty.
|
-- space. If false, the extra space is simply left empty.
|
||||||
|
|
|
@ -101,6 +101,14 @@ function background:get_children()
|
||||||
return {self.widget}
|
return {self.widget}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Replace the layout children
|
||||||
|
-- This layout only accept one children, all others will be ignored
|
||||||
|
-- @tparam table children A table composed of valid widgets
|
||||||
|
function background:set_children(children)
|
||||||
|
self.widget = children and children[1]
|
||||||
|
self:emit_signal("widget::layout_changed")
|
||||||
|
end
|
||||||
|
|
||||||
--- Set the background to use
|
--- Set the background to use
|
||||||
function background:set_bg(bg)
|
function background:set_bg(bg)
|
||||||
if bg then
|
if bg then
|
||||||
|
|
|
@ -80,6 +80,14 @@ function base.widget:get_children()
|
||||||
return {}
|
return {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
--- Replace the layout children
|
||||||
|
-- The default implementation does nothing, this must be re-implemented by
|
||||||
|
-- all layout and container widgets.
|
||||||
|
-- @tparam table children A table composed of valid widgets
|
||||||
|
function base.widget:set_children(children)
|
||||||
|
-- Nothing on purpose
|
||||||
|
end
|
||||||
|
|
||||||
-- It could have been merged into `get_all_children`, but it's not necessary
|
-- It could have been merged into `get_all_children`, but it's not necessary
|
||||||
local function digg_children(ret, tlw)
|
local function digg_children(ret, tlw)
|
||||||
for k, w in ipairs(tlw:get_children()) do
|
for k, w in ipairs(tlw:get_children()) do
|
||||||
|
|
Loading…
Reference in New Issue