# Wallpaper-Functions
# Written by: Maciej Delmanowski <harnir@linux.net.pl>

# Where are the wallpapers?
SetEnv WallpaperDirectory "$[HOME]/wallpapers"

# Where are stored the wallpaper thumbnails?
SetEnv WallpaperThumbDirectory "$[FVWM_USERDIR]/wallpaper-thumbnails"

# Where is saved last choosen wallpaper?
SetEnv WallpaperLastChoosen "$[FVWM_USERDIR]/.LastChoosenWallpaper"

# What command is used to set wallpapers?
SetEnv WallpaperCommand "fvwm-crystal.habak"
#SetEnv WallpaperCommand "fvwm-crystal.rox"

# Menu for wallpapers
DestroyMenu /Wallpaper
AddToMenu /Wallpaper
+ MissingSubmenuFunction WallpaperBrowser
+ '$[fc-locale-Random_wallpaper]' Wallpaper-Random
+ '$[fc-locale-Browse_wallpapers]' Popup $[WallpaperDirectory]

DestroyFunc Wallpaper-Random
AddToFunc Wallpaper-Random
+ I Exec exec $[WallpaperCommand] $[WallpaperDirectory]

DestroyFunc Wallpaper-LoadLast
AddToFunc Wallpaper-LoadLast
+ I Test (f $[WallpaperLastChoosen]) Read $[WallpaperLastChoosen]
+ I TestRc (NoMatch) Wallpaper-Random

DestroyFunc WallpaperBrowser
AddToFunc WallpaperBrowser I PipeRead 'for i in "$0/"*; do \
        	test -d "${i}" && continue; \
        	mkdir -p "$[WallpaperThumbDirectory]${i%/*}"; \
        	test -f "$[WallpaperThumbDirectory]${i}" -a "${i}" -ot "$[WallpaperThumbDirectory]${i}" || { \
        	convert -quality 0 -sample 42 "${i}" "png:$[WallpaperThumbDirectory]${i}" 2>/dev/null || continue; }; \
	done; \
    fvwm-menu-directory --title "$[fc-locale-Random]" --icon-title "" --icon-file __PIXMAP__ \
    --icon-dir "" --dir "$0" --links --exec-file "^$[WallpaperCommand]" \
    --exec-t="^$[WallpaperCommand] $0" | sed -e "s#FuncFvwmMenuDirectory#WallpaperBrowser#g" \
    -e "s#__PIXMAP__\\(.*\\)\\\"\\(.*/\\)\\(.*\\)\\\"#$[WallpaperThumbDirectory]/\\2\\3\\1\\2\\3#g"'

