awful.wibox: add support for % width/height and align attribute
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
55c0163332
commit
43184279e5
|
@ -245,22 +245,40 @@ end
|
||||||
-- @see capi.wibox
|
-- @see capi.wibox
|
||||||
-- @param args A table with standard arguments to wibox() creator.
|
-- @param args A table with standard arguments to wibox() creator.
|
||||||
-- You can add also position key with value top, bottom, left or right.
|
-- You can add also position key with value top, bottom, left or right.
|
||||||
|
-- You can also use width or height in % and set align to center, right or left.
|
||||||
-- You can also set the screen key with a screen number to attach the wibox.
|
-- You can also set the screen key with a screen number to attach the wibox.
|
||||||
-- If not specified, 1 is assumed.
|
-- If not specified, 1 is assumed.
|
||||||
-- @return The wibox created.
|
-- @return The wibox created.
|
||||||
function new(arg)
|
function new(arg)
|
||||||
local arg = arg or {}
|
local arg = arg or {}
|
||||||
local position = arg.position or "top"
|
local position = arg.position or "top"
|
||||||
|
local has_to_stretch = true
|
||||||
-- Empty position and align in arg so we are passing deprecation warning
|
-- Empty position and align in arg so we are passing deprecation warning
|
||||||
arg.position = nil
|
arg.position = nil
|
||||||
|
|
||||||
-- Set default size
|
-- Set default size
|
||||||
if position == "left" or position == "right" then
|
if position == "left" or position == "right" then
|
||||||
arg.width = arg.width or capi.awesome.font_height * 1.5
|
arg.width = arg.width or capi.awesome.font_height * 1.5
|
||||||
arg.height = arg.height or 100
|
if arg.height then
|
||||||
|
has_to_stretch = false
|
||||||
|
if arg.screen then
|
||||||
|
local hp = arg.height:match("(%d+)%%")
|
||||||
|
if hp then
|
||||||
|
arg.height = capi.screen[arg.screen].workarea.height * hp / 100
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
else
|
else
|
||||||
arg.width = arg.width or 100
|
|
||||||
arg.height = arg.height or capi.awesome.font_height * 1.5
|
arg.height = arg.height or capi.awesome.font_height * 1.5
|
||||||
|
if arg.width then
|
||||||
|
has_to_stretch = false
|
||||||
|
if arg.screen then
|
||||||
|
local wp = arg.width:match("(%d+)%%")
|
||||||
|
if wp then
|
||||||
|
arg.width = capi.screen[arg.screen].workarea.width * wp / 100
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
local w = capi.wibox(arg)
|
local w = capi.wibox(arg)
|
||||||
|
@ -274,7 +292,11 @@ function new(arg)
|
||||||
w.screen = arg.screen or 1
|
w.screen = arg.screen or 1
|
||||||
|
|
||||||
attach(w, position)
|
attach(w, position)
|
||||||
|
if has_to_stretch then
|
||||||
stretch(w)
|
stretch(w)
|
||||||
|
else
|
||||||
|
align(w, arg.align)
|
||||||
|
end
|
||||||
|
|
||||||
return w
|
return w
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue