# Wallpaper menu and functions
# ----------------------------

# Set the specified wallpaper using available programs
DestroyFunc Wallpaper-Set
AddToFunc Wallpaper-Set
+ I Test (x habak) Exec habak -ms $*
+ I TestRc (False) Test (x Esetroot) Exec Esetroot -scale $*
+ I TestRc (False) Test (x hsetroot) Exec hsetroot -fill $*
+ I SavePreferences LastChoosenWallpaper "Wallpaper-Set \"$*\""

# Select random wallpaper from given directories and set it
DestroyFunc Wallpaper-Random
AddToFunc Wallpaper-Random
+ I PipeRead "echo Wallpaper-Set \\'`fvwm-crystal.wallpaper $*`\\'"

# Where are kept wallpaper thumbnails?
SetEnv WallpaperThumbnails "$[FVWM_USERDIR]/wallpaper-thumbnails"

# Check if there is a wallpaper set at startup
# If there isn't, set default one
CheckPreferences LastChoosenWallpaper 'SavePreferences LastChoosenWallpaper "Wallpaper-Set $[FVWM_SYSTEMDIR]/wallpapers/fvwm-crystal-dark1-1024x768.jpg"'

# Menu for wallpapers
DestroyMenu /Wallpaper
AddToMenu /Wallpaper
+ MissingSubmenuFunction Wallpaper-Browser
+ "%22x22/categories/directory.png%FVWM-Crystal" Popup $[FVWM_SYSTEMDIR]/wallpapers
Test (f $[FVWM_USERDIR]/wallpapers) + "%22x22/categories/directory.png%~/.fvwm/wallpapers" Popup $[FVWM_USERDIR]/wallpapers
Test (f $[HOME]/wallpapers) + "%22x22/categories/directory.png%~/wallpapers" Popup $[HOME]/wallpapers
Test (f /usr/local/share/wallpapers) + "%22x22/categories/directory.png%/usr/local/share/wallpapers" Popup /usr/local/share/wallpapers
Test (f /usr/share/wallpapers) + "%22x22/categories/directory.png%/usr/share/wallpapers" Popup /usr/share/wallpapers

# Wallpapaer menu generator
DestroyFunc Wallpaper-Browser
AddToFunc Wallpaper-Browser I PipeRead 'for i in "$0/"*.jpg "$0/"*.gif "$0/"*.png; do \
        	test -d "${i}" && continue; \
        	mkdir -p "$[WallpaperThumbnails]${i%/*}"; \
        	test -f "$[WallpaperThumbnails]${i}" -a "${i}" -ot "$[WallpaperThumbnails]${i}" || { \
        	convert -quality 0 -sample 42 "${i}" "png:$[WallpaperThumbnails]${i}" 2>/dev/null || continue; }; \
	done; \
    fvwm-menu-directory --title "$[gt.Random]" --icon-title "" --icon-file __PIXMAP__ \
    --icon-dir "22x22/categories/directory.png" --dir "$0" --links --command-file "Wallpaper-Set \'\\"%f\\"\'" \
    --command-t="Wallpaper-Random $0" | sed -e "s#FuncFvwmMenuDirectory#Wallpaper-Browser#g" \
    -e "s#__PIXMAP__\\(.*\\)\\\"\\(.*/\\)\\(.*\\)\\\"#$[WallpaperThumbnails]/\\2\\3\\1\\2\\3#g"'

# vim:ft=fvwm
