# Expose clone for FVWM-Crystal
# Original idea from Taviso http://zensites.net/fvwm/guide/advanced_functions.html
# Modified by Harnir and by me. Dominique Michel <dominique_libre@sourceforge.net>
# See ChangeLog

# The synchronyzation is not good.

# Raise the wanted window and kill FvwmExpose
DestroyFunc FvwmExpose-Action
AddToFunc FvwmExpose-Action
+ I WindowId $* Raise
+ I KillModule FvwmButtons FvwmExpose

# Create 1 picture and 1 FvwmExpose button at a time
# To use w.name instead of w.class need something like \\\\\"$[w.name]\\\\\"
# and to filter out or quote the () (they confuse Fvwm-Buttons)
DestroyFunc FvwmExpose-Thumbnail
AddToFunc FvwmExpose-Thumbnail
+ I PipeRead \
    "echo Raise; xwd -id $[w.id] > /tmp/icon.exp.$[w.id].xwd ; convert -scale 300 -quality 0 xwd:/tmp/icon.exp.$[w.id].xwd png:/tmp/icon.exp.$[w.id].png ; \
     echo '*FvwmExpose: (1x1, Title (Center) $[w.class], Icon /tmp/icon.exp.$[w.id].png, Action FvwmExpose-Action $[w.id] )'"
# Not flaky, but no transparency:
#     echo '*FvwmExpose: (1x1, Swallow (UseOld,NoKill) IM:$[w.id] `Exec animate -title IM:$[w.id] /tmp/icon.exp.$[w.id].png &`, Action FvwmExpose-Action $[w.id] )'"

# Bind this
DestroyFunc FvwmExpose
AddToFunc FvwmExpose
+ I DestroyModuleConfig FvwmExpose: *
+ I PipeRead 'echo "*FvwmExpose: Geometry $(($[vp.width]-50))x$(($[vp.height]-300))+25+150"'
+ I *FvwmExpose: BoxSize Fixed
+ I *FvwmExpose: Colorset $[infostore.cs_panel_inactive]
+ I *FvwmExpose: ActiveColorset $[infostore.cs_panel_active]
+ I *FvwmExpose: Padding 4 4
+ I *FvwmExpose: Frame 0
+ I *FvwmExpose: Font "xft:$[panel_font]:pixelsize=$[panel_font_size]:$[panel_font_style]"
+ I All (!Iconic, !FvwmMiniConsoleNeedsUniqueName, !Shaded, CurrentPage, AcceptsFocus) FvwmExpose-Thumbnail
+ I Module FvwmButtons FvwmExpose
+ I None (FvwmExpose) Wait
+ I All (FvwmExpose) Layer 0 6
+ I All (FvwmExpose) Raise
+ I Exec exec rm -f /tmp/icon.exp.*

# vim:ft=fvwm
