tooltip: Use fold for line wraps in text

This commit is contained in:
Björn Busse 2021-02-19 20:08:04 +01:00
parent 207ae059b5
commit f80324659f
1 changed files with 3 additions and 15 deletions

View File

@ -46,7 +46,7 @@ IMG_DEFAULT="not_really_into_pokemon.png"
# background colour # background colour
BG_COLOUR="white" BG_COLOUR="white"
# Break tooltip every x char to prevent border overflow # Break tooltip every x char to prevent border overflow
TOOLTIP_MAX_LINE_LEN=120 TOOLTIP_MAX_LINE_LEN=100
FONT="xkcd Script" FONT="xkcd Script"
FONT_FILE="xkcd-script.ttf" FONT_FILE="xkcd-script.ttf"
@ -201,20 +201,8 @@ xkcd_get_img_tooltip() {
} }
xkcd_format_tooltip() { xkcd_format_tooltip() {
local ntext=${#text} local text=$(echo $text | fold -s -w $TOOLTIP_MAX_LINE_LEN)
local nbreaks=$((ntext / TOOLTIP_MAX_LINE_LEN)) echo "$text"
local nbreak=$((ntext - TOOLTIP_MAX_LINE_LEN))
local m=$((nbreaks * TOOLTIP_MAX_LINE_LEN))
local nrest=$((ntext - m - 1))
if (( "$nbreak" > 0 )); then
local text_tok_start=${text:0:$nrest}
local text_tok_end=${text:ntok_end}
text_tok_end=`echo "$text_tok_end" | sed "s/.\{$TOOLTIP_MAX_LINE_LEN\}/&\\n/g"`
echo "${text_tok_start}\\n${text_tok_end}"
else
echo "$text"
fi
} }
get_nscreens() { get_nscreens() {