doc: Mutualize the wibar and wibox constructor documentation.

Do it now since the future awful.popup and notification widget
also uses it.

The `load_ldoc.cmake` changes allow to include `.ldoc` blocks in
existing ldoc comments. Previously, it added some extra newlines
and an autogenerated comments saying the content below was imported.
The problem is that this prevented the system to be used for shared
function arguments.

This commit also renames the `wibar` argument table from `arg` to
`args` as the name has to be the same in the `wibox` and `wibar`
constructor for this to work.
This commit is contained in:
Emmanuel Lepage Vallee 2017-11-23 23:19:41 -05:00
parent 9e81045d42
commit d99504775b
4 changed files with 54 additions and 65 deletions

View File

@ -0,0 +1,22 @@
@tparam integer args.border_width Border width.
-- @tparam string args.border_color Border color.
-- @tparam[opt=false] boolean args.ontop On top of other windows.
-- @tparam string args.cursor The mouse cursor.
-- @tparam boolean args.visible Visibility.
-- @tparam[opt=1] number args.opacity The opacity, between 0 and 1.
-- @tparam string args.type The window type (desktop, normal, dock, …).
-- @tparam integer args.x The x coordinates.
-- @tparam integer args.y The y coordinates.
-- @tparam integer args.width The width.
-- @tparam integer args.height The height.
-- @tparam screen args.screen The wibox screen.
-- @tparam wibox.widget args.widget The widget that the wibox displays.
-- @param args.shape_bounding The wiboxs bounding shape as a (native) cairo surface.
-- @param args.shape_clip The wiboxs clip shape as a (native) cairo surface.
-- @param args.shape_input The wiboxs input shape as a (native) cairo surface.
-- @tparam color args.bg The background.
-- @tparam surface args.bgimage The background image of the drawable.
-- @tparam color args.fg The foreground (text) color.
-- @tparam gears.shape args.shape The shape.
-- @tparam[opt=false] boolean args.input_passthrough If the inputs are
-- forward to the element below.

View File

@ -13,8 +13,11 @@ foreach(doc_file_name ${doc_files})
# Remove the file extension # Remove the file extension
string(REGEX REPLACE "\\.ldoc" "" DOC_FILE_NAME ${doc_file_name}) string(REGEX REPLACE "\\.ldoc" "" DOC_FILE_NAME ${doc_file_name})
# There is a trailing \n, remove it or it cannot be included in existing blocks
string(REGEX REPLACE "\n$" "" doc_file_content "${doc_file_content}")
# Create a new variable usable from lua files # Create a new variable usable from lua files
set(DOC_${DOC_FILE_NAME}_COMMON "Imported documentation\n\n${doc_file_content}") set(DOC_${DOC_FILE_NAME}_COMMON "${doc_file_content}")
endforeach() endforeach()
# vim: filetype=cmake:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80:foldmethod=marker # vim: filetype=cmake:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80:foldmethod=marker

View File

@ -339,37 +339,19 @@ end
-- 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, the primary screen is assumed. -- If not specified, the primary screen is assumed.
-- @see wibox -- @see wibox
-- @tparam[opt=nil] table arg -- @tparam[opt=nil] table args
-- @tparam string arg.position The position. -- @tparam string args.position The position.
-- @tparam string arg.stretch If the wibar need to be stretched to fill the screen. -- @tparam string args.stretch If the wibar need to be stretched to fill the screen.
-- @tparam integer arg.border_width Border width. --@DOC_wibox_constructor_COMMON@
-- @tparam string arg.border_color Border color.
-- @tparam boolean arg.ontop On top of other windows.
-- @tparam string arg.cursor The mouse cursor.
-- @tparam boolean arg.visible Visibility.
-- @tparam number arg.opacity The wibar's opacity, between 0 and 1.
-- @tparam string arg.type The window type (desktop, normal, dock, …).
-- @tparam integer arg.x The x coordinates.
-- @tparam integer arg.y The y coordinates.
-- @tparam integer arg.width The wibar's width.
-- @tparam integer arg.height The wibar's height.
-- @tparam screen arg.screen The wibox screen.
-- @tparam wibox.widget arg.widget The widget that the wibox displays.
-- @param arg.shape_bounding The wiboxs bounding shape as a (native) cairo surface.
-- @param arg.shape_clip The wiboxs clip shape as a (native) cairo surface.
-- @param arg.shape_input The wiboxs input shape as a (native) cairo surface.
-- @tparam color arg.bg The wibar's background.
-- @tparam surface arg.bgimage The background image of the drawable.
-- @tparam color arg.fg The wibar's foreground (text) color.
-- @return The new wibar -- @return The new wibar
-- @function awful.wibar -- @function awful.wibar
function awfulwibar.new(arg) function awfulwibar.new(args)
arg = arg or {} args = args or {}
local position = arg.position or "top" local position = args.position or "top"
local has_to_stretch = true local has_to_stretch = true
local screen = get_screen(arg.screen or 1) local screen = get_screen(args.screen or 1)
arg.type = arg.type or "dock" args.type = args.type or "dock"
if position ~= "top" and position ~="bottom" if position ~= "top" and position ~="bottom"
and position ~= "left" and position ~= "right" then and position ~= "left" and position ~= "right" then
@ -379,48 +361,48 @@ function awfulwibar.new(arg)
-- 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 beautiful["wibar_width"] args.width = args.width or beautiful["wibar_width"]
or math.ceil(beautiful.get_font_height(arg.font) * 1.5) or math.ceil(beautiful.get_font_height(args.font) * 1.5)
if arg.height then if args.height then
has_to_stretch = false has_to_stretch = false
if arg.screen then if args.screen then
local hp = tostring(arg.height):match("(%d+)%%") local hp = tostring(args.height):match("(%d+)%%")
if hp then if hp then
arg.height = math.ceil(screen.geometry.height * hp / 100) args.height = math.ceil(screen.geometry.height * hp / 100)
end end
end end
end end
else else
arg.height = arg.height or beautiful["wibar_height"] args.height = args.height or beautiful["wibar_height"]
or math.ceil(beautiful.get_font_height(arg.font) * 1.5) or math.ceil(beautiful.get_font_height(args.font) * 1.5)
if arg.width then if args.width then
has_to_stretch = false has_to_stretch = false
if arg.screen then if args.screen then
local wp = tostring(arg.width):match("(%d+)%%") local wp = tostring(args.width):match("(%d+)%%")
if wp then if wp then
arg.width = math.ceil(screen.geometry.width * wp / 100) args.width = math.ceil(screen.geometry.width * wp / 100)
end end
end end
end end
end end
arg.screen = nil args.screen = nil
-- The C code scans the table directly, so metatable magic cannot be used. -- The C code scans the table directly, so metatable magic cannot be used.
for _, prop in ipairs { for _, prop in ipairs {
"border_width", "border_color", "font", "opacity", "ontop", "cursor", "border_width", "border_color", "font", "opacity", "ontop", "cursor",
"bgimage", "bg", "fg", "type", "stretch", "shape" "bgimage", "bg", "fg", "type", "stretch", "shape"
} do } do
if (arg[prop] == nil) and beautiful["wibar_"..prop] ~= nil then if (args[prop] == nil) and beautiful["wibar_"..prop] ~= nil then
arg[prop] = beautiful["wibar_"..prop] args[prop] = beautiful["wibar_"..prop]
end end
end end
local w = wibox(arg) local w = wibox(args)
w.screen = screen w.screen = screen
w._screen = screen --HACK When a screen is removed, then getbycoords wont work w._screen = screen --HACK When a screen is removed, then getbycoords wont work
w._stretch = arg.stretch == nil and has_to_stretch or arg.stretch w._stretch = args.stretch == nil and has_to_stretch or args.stretch
w.get_position = get_position w.get_position = get_position
w.set_position = set_position w.set_position = set_position
@ -429,7 +411,7 @@ function awfulwibar.new(arg)
w.set_stretch = set_stretch w.set_stretch = set_stretch
w.remove = remove w.remove = remove
if arg.visible == nil then w.visible = true end if args.visible == nil then w.visible = true end
-- `w` needs to be inserted in `wiboxes` before reattach or its own offset -- `w` needs to be inserted in `wiboxes` before reattach or its own offset
-- will not be taken into account by the "older" wibars when `reattach` is -- will not be taken into account by the "older" wibars when `reattach` is

View File

@ -236,25 +236,7 @@ end
--- Create a wibox. --- Create a wibox.
-- @tparam[opt=nil] table args -- @tparam[opt=nil] table args
-- @tparam integer args.border_width Border width. --@DOC_wibox_constructor_COMMON@
-- @tparam string args.border_color Border color.
-- @tparam boolean args.ontop On top of other windows.
-- @tparam string args.cursor The mouse cursor.
-- @tparam boolean args.visible Visibility.
-- @tparam number args.opacity The opacity of the wibox, between 0 and 1.
-- @tparam string args.type The window type (desktop, normal, dock, …).
-- @tparam integer args.x The x coordinates.
-- @tparam integer args.y The y coordinates.
-- @tparam integer args.width The width of the wibox.
-- @tparam integer args.height The height of the wibox.
-- @tparam screen args.screen The wibox screen.
-- @tparam wibox.widget args.widget The widget that the wibox displays.
-- @param args.shape_bounding The wiboxs bounding shape as a (native) cairo surface.
-- @param args.shape_clip The wiboxs clip shape as a (native) cairo surface.
-- @param args.shape_input The wiboxs input shape as a (native) cairo surface.
-- @tparam color args.bg The background of the wibox.
-- @tparam surface args.bgimage The background image of the drawable.
-- @tparam color args.fg The foreground (text) of the wibox.
-- @treturn wibox The new wibox -- @treturn wibox The new wibox
-- @function .wibox -- @function .wibox