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

SetEnv Decoration-Functions_Path "$[FVWM_CONFIGDIR]/decorations"
SetEnv Decoration-Functions_Suffix ".theme"
SetEnv Decoration-Functions_Default "$[Decoration-Functions_Path]/Crystal/DarkDesktop.theme"
SetEnv Decoration-Functions_LastChoosen "$[FVWM_USERDIR]/.LastChoosenDecoration"
SetEnv Decoration-Functions_Styles "$[FVWM_USERDIR]/user-preferences/Styles"

# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
DestroyFunc Decoration-LoadLast
AddToFunc Decoration-LoadLast
+ I Test (f $[Decoration-Functions_LastChoosen]) Read $[Decoration-Functions_LastChoosen]
+ I TestRc (NoMatch) Read '$[Decoration-Functions_Default]'
+ I Read $[Decoration-Functions_Styles]

DestroyFunc Decoration-Load
AddToFunc Decoration-Load
+ I Read $*
+ I Recapture
+ I Read $[Decoration-Functions_Styles]
+ I Exec echo "Read $*" | sed -e 's/\ /\\ /g; s/\\ /\ /' > $[Decoration-Functions_LastChoosen]

DestroyMenu /Decorations
AddToMenu /Decorations
+ DynamicPopupAction Function /Decorations-generator

DestroyFunc /Decorations-generator
AddToFunc /Decorations-generator
+ I DestroyMenu recreate /Decorations
+ I AddToMenu /Decorations
+ I PipeRead 'for i in $[Decoration-Functions_Path]/*; do \
if [ $(ls "${i}"/*$[Decoration-Functions_Suffix] |wc -l) -gt 1 ]; then \
dname=$(basename "${i}"); \
echo \"AddToMenu \'/Decorations\' \'${dname}\' Popup \'/Decorations/${dname}\'\"; \
echo \"DestroyMenu \'/Decorations/${dname}\'\"; \
for f in "${i}"/*$[Decoration-Functions_Suffix]; do \
name=$(basename "${f}" $[Decoration-Functions_Suffix]); \
echo \"AddToMenu \'/Decorations/${dname}\' \'${name}\' Decoration-Load \'${f}\'\"; \
done \
elif [ $(ls "${i}"/*$[Decoration-Functions_Suffix] |wc -l) -eq 1 ]; then \
for f in "${i}"/*$[Decoration-Functions_Suffix]; do \
name=$(basename "${i}" $[Decoration-Functions_Suffix]); \
echo \"AddToMenu \'/Decorations\' \'${name}\' Decoration-Load \'${f}\'\"; \
done \
fi \
done'

