# Preferences functions - used for storing and loading user preferences

# Crystal needs ~/.fvwm/preferences/ directory to store the preferences files.
#
Exec mkdir -p $[FVWM_USERDIR]/preferences

# This function saves specified command in a file, in the user's preferences
# directory (~/.fvwm/preferences/). It can be used to store FVWM commands, so
# they can be executed at next startup, useful for saving user-configurable
# preferences, like used colorset or window decoration.
#
# Usage:
# SavePreferences <preferences-file> "<command>"
#
# Example:
# SavePreferences PreferencesFile "Echo \"FVWM command\""
#
DestroyFunc SavePreferences
AddToFunc SavePreferences
+ I Exec echo $1 > $[FVWM_USERDIR]/preferences/$0

# Modification of SavePreferences: add more lines to the preferences file
#
DestroyFunc AppendPreferences
AddToFunc AppendPreferences
+ I Exec touch $[FVWM_USERDIR]/preferences/$0
+ I Exec echo $1 >> $[FVWM_USERDIR]/preferences/$0

# This function looks for saved preferences file and reads it. All directories
# (user-wide, system-wide, package-wide) are searched, first file found is
# loaded.
#
# Example:
# LoadPreferences PreferencesFile
#
DestroyFunc LoadPreferences
AddToFunc LoadPreferences
+ I Test (f $[FVWM_USERDIR]/preferences/$0) Read $[FVWM_USERDIR]/preferences/$0
+ I TestRc (NoMatch) Test (f $[FVWM_CONFIGDIR]/preferences/$0) Read $[FVWM_CONFIGDIR]/preferences/$0
+ I TestRc (NoMatch) Test (f $[FVWM_SYSTEMDIR]/preferences/$0) Read $[FVWM_SYSTEMDIR]/preferences/$0

# This function looks for specified preferences file, if it is present,
# nothing is done. If it's not found, specified command is executed. This can
# be used to check if there are "default" preferences, and in case they aren't
# there, set a default ones.
#
# Usage:
# CheckPreferences <preferences-file> "<command>"
#
# Example:
# CheckPreferences PreferencesFile 'SavePreferences PreferencesFile "Echo \"FVWM command\""'
#
DestroyFunc CheckPreferences
AddToFunc CheckPreferences
+ I Test (f $[FVWM_USERDIR]/preferences/$0) Break
+ I Test (f $[FVWM_CONFIGDIR]/preferences/$0) Break
+ I Test (f $[FVWM_SYSTEMDIR]/preferences/$0) Break
+ I $1

# vim:ft=fvwm
