awful.prompt: add underline style to in run() args

Signed-off-by: koniu <gkusnierz@gmail.com>
This commit is contained in:
koniu 2008-11-06 17:07:12 +00:00
parent 4c5a6b1df2
commit d4bfaa8598
1 changed files with 8 additions and 5 deletions

View File

@ -105,7 +105,8 @@ end
-- @param text_color The text color. -- @param text_color The text color.
-- @param cursor_color The cursor color. -- @param cursor_color The cursor color.
-- @param cursor_pos The cursor position. -- @param cursor_pos The cursor position.
local function prompt_text_with_cursor(text, text_color, cursor_color, cursor_pos) -- @param cursor_pos The cursor underline style.
local function prompt_text_with_cursor(text, text_color, cursor_color, cursor_pos, cursor_ul)
local char local char
if not text then text = "" end if not text then text = "" end
if #text < cursor_pos then if #text < cursor_pos then
@ -113,13 +114,14 @@ local function prompt_text_with_cursor(text, text_color, cursor_color, cursor_po
else else
char = util.escape(text:sub(cursor_pos, cursor_pos)) char = util.escape(text:sub(cursor_pos, cursor_pos))
end end
local underline = cursor_ul or "none"
local text_start = util.escape(text:sub(1, cursor_pos - 1)) local text_start = util.escape(text:sub(1, cursor_pos - 1))
local text_end = util.escape(text:sub(cursor_pos + 1)) local text_end = util.escape(text:sub(cursor_pos + 1))
return text_start .. "<span background=\"" .. util.color_strip_alpha(cursor_color) .. "\" foreground=\"" .. util.color_strip_alpha(text_color) .. "\">" .. char .. "</span>" .. text_end return text_start .. "<span background=\"" .. util.color_strip_alpha(cursor_color) .. "\" foreground=\"" .. util.color_strip_alpha(text_color) .. "\" underline=\"" .. underline .. "\">" .. char .. "</span>" .. text_end
end end
--- Run a prompt in a box. --- Run a prompt in a box.
-- @param args A table with optional arguments: fg_cursor, bg_cursor, prompt. -- @param args A table with optional arguments: fg_cursor, bg_cursor, ul_cursor, prompt.
-- @param textbox The textbox to use for the prompt. -- @param textbox The textbox to use for the prompt.
-- @param exe_callback The callback function to call with command as argument when finished. -- @param exe_callback The callback function to call with command as argument when finished.
-- @param completion_callback The callback function to call to get completion. -- @param completion_callback The callback function to call to get completion.
@ -135,6 +137,7 @@ function run(args, textbox, exe_callback, completion_callback, history_path, his
local prettyprompt = args.prompt or "" local prettyprompt = args.prompt or ""
local inv_col = args.fg_cursor or theme.fg_focus or "black" local inv_col = args.fg_cursor or theme.fg_focus or "black"
local cur_col = args.bg_cursor or theme.bg_focus or "white" local cur_col = args.bg_cursor or theme.bg_focus or "white"
local cur_ul = args.ul_cursor
history_check_load(history_path, history_max) history_check_load(history_path, history_max)
local history_index = history_items(history_path) + 1 local history_index = history_items(history_path) + 1
@ -145,7 +148,7 @@ function run(args, textbox, exe_callback, completion_callback, history_path, his
if not textbox or not exe_callback then if not textbox or not exe_callback then
return return
end end
textbox.text = prettyprompt .. prompt_text_with_cursor(text, inv_col, cur_col, cur_pos) textbox.text = prettyprompt .. prompt_text_with_cursor(text, inv_col, cur_col, cur_pos, cur_ul)
capi.keygrabber.run( capi.keygrabber.run(
function (mod, key) function (mod, key)
-- Get out cases -- Get out cases
@ -297,7 +300,7 @@ function run(args, textbox, exe_callback, completion_callback, history_path, his
end end
-- Update textbox -- Update textbox
textbox.text = prettyprompt .. prompt_text_with_cursor(command, inv_col, cur_col, cur_pos) textbox.text = prettyprompt .. prompt_text_with_cursor(command, inv_col, cur_col, cur_pos, cur_ul)
return true return true
end) end)