Merge pull request #2454 from Aire-One/add_widget_prompt_params

Add parameters to awful.widget.prompt constructor.
This commit is contained in:
Emmanuel Lepage Vallée 2018-12-17 10:45:54 -05:00 committed by GitHub
commit de04cecf46
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 69 additions and 11 deletions

View File

@ -5,6 +5,7 @@
-- --
-- @author Julien Danjou <julien@danjou.info> -- @author Julien Danjou <julien@danjou.info>
-- @copyright 2009 Julien Danjou -- @copyright 2009 Julien Danjou
-- @copyright 2018 Aire-One
-- @classmod awful.widget.prompt -- @classmod awful.widget.prompt
--------------------------------------------------------------------------- ---------------------------------------------------------------------------
@ -36,13 +37,23 @@ local widgetprompt = { mt = {} }
-- @param promptbox The promptbox to run. -- @param promptbox The promptbox to run.
local function run(promptbox) local function run(promptbox)
return prompt.run { return prompt.run {
prompt = promptbox.prompt, prompt = promptbox.prompt,
textbox = promptbox.widget, textbox = promptbox.widget,
completion_callback = promptbox.completion_callback, fg_cursor = promptbox.fg_cursor,
history_path = gfs.get_cache_dir() .. "/history", bg_cursor = promptbox.bg_cursor,
exe_callback = function (...) ul_cursor = promptbox.ul_cursor,
promptbox:spawn_and_handle_error(...) font = promptbox.font,
end, autoexec = promptbox.autoexec,
highlighter = promptbox.highlighter,
exe_callback = promptbox.exe_callback,
completion_callback = promptbox.completion_callback,
history_path = promptbox.history_path,
history_max = promptbox.history_max,
done_callback = promptbox.done_callback,
changed_callback = promptbox.changed_callback,
keypressed_callback = promptbox.keypressed_callback,
keyreleased_callback = promptbox.keyreleased_callback,
hook = promptbox.hook
} }
end end
@ -54,14 +65,44 @@ local function spawn_and_handle_error(self, ...)
end end
--- Create a prompt widget which will launch a command. --- Create a prompt widget which will launch a command.
-- For additional documentation about `args` parameter, please refer to
-- @{awful.prompt} and @{awful.prompt.run}.
-- --
-- @tparam table args Prompt arguments. -- @tparam table args Prompt arguments.
-- @tparam[opt="Run: "] string args.prompt Prompt text. -- @tparam[opt="Run: "] string args.prompt Prompt text.
-- @tparam[opt=`beautiful.prompt_bg` or `beautiful.bg_normal`] color args.bg Prompt background color. -- @tparam[opt=`beautiful.prompt_bg` or `beautiful.bg_normal`] color args.bg
-- @tparam[opt=`beautiful.prompt_fg` or `beautiful.fg_normal`] color args.fg Prompt foreground color. -- Prompt background color.
-- @tparam[opt=`beautiful.prompt_fg` or `beautiful.fg_normal`] color args.fg
-- Prompt foreground color.
-- @tparam[opt] gears.color args.fg_cursor
-- @tparam[opt] gears.color args.bg_cursor
-- @tparam[opt] gears.color args.ul_cursor
-- @tparam[opt] string args.font
-- @tparam[opt] boolean args.autoexec
-- @tparam[opt] function args.highlighter A function to add syntax highlighting
-- to the command.
-- @tparam[opt] function args.exe_callback The callback function to call with
-- command as argument when finished.
-- @tparam[opt=`awful.completion.shell`] function args.completion_callback -- @tparam[opt=`awful.completion.shell`] function args.completion_callback
-- The callback function to call to get completion. See @{awful.prompt.run} for details. -- The callback function to call to get completion. See @{awful.prompt.run}
-- @return An instance of prompt widget, inherits from `wibox.container.background`. -- for details.
-- @tparam[opt=`gears.filesystem.get_cache_dir() .. '/history'`] string
-- args.history_path File path where the history should be saved.
-- @tparam[opt=50] integer args.history_max Set the maximum entries in
-- history file.
-- @tparam[opt] function args.done_callback
-- The callback function to always call without arguments, regardless of
-- whether the prompt was cancelled. See @{awful.prompt.run} for details.
-- @tparam[opt] function args.changed_callback The callback function to call
-- with command as argument when a command was changed.
-- @tparam[opt] function args.keypressed_callback The callback function to call
-- with mod table, key and command as arguments when a key was pressed.
-- @tparam[opt] function args.keyreleased_callback The callback function to call
-- with mod table, key and command as arguments when a key was pressed.
-- @tparam[opt] table args.hook Similar to @{awful.key}. It will call a function
-- for the matching modifiers + key. See @{awful.prompt.run} for details.
-- @return An instance of prompt widget, inherits from
-- `wibox.container.background`.
-- @function awful.widget.prompt -- @function awful.widget.prompt
function widgetprompt.new(args) function widgetprompt.new(args)
args = args or {} args = args or {}
@ -73,7 +114,24 @@ function widgetprompt.new(args)
promptbox.prompt = args.prompt or "Run: " promptbox.prompt = args.prompt or "Run: "
promptbox.fg = args.fg or beautiful.prompt_fg or beautiful.fg_normal promptbox.fg = args.fg or beautiful.prompt_fg or beautiful.fg_normal
promptbox.bg = args.bg or beautiful.prompt_bg or beautiful.bg_normal promptbox.bg = args.bg or beautiful.prompt_bg or beautiful.bg_normal
promptbox.fg_cursor = args.fg_cursor or nil
promptbox.bg_cursor = args.bg_cursor or nil
promptbox.ul_cursor = args.ul_cursor or nil
promptbox.font = args.font or nil
promptbox.autoexec = args.autoexec or nil
promptbox.highlighter = args.highlighter or nil
promptbox.exe_callback = args.exe_callback or function (...)
promptbox:spawn_and_handle_error(...)
end
promptbox.completion_callback = args.completion_callback or completion.shell promptbox.completion_callback = args.completion_callback or completion.shell
promptbox.history_path = args.history_path or
gfs.get_cache_dir() .. 'history'
promptbox.history_max = args.history_max or nil
promptbox.done_callback = args.done_callback or nil
promptbox.changed_callback = args.changed_callback or nil
promptbox.keypressed_callback = args.keypressed_callback or nil
promptbox.keyreleased_callback = args.keyreleased_callback or nil
promptbox.hook = args.hook or nil
return promptbox return promptbox
end end