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


DestroyFunc Window-Move
AddToFunc Window-Move
+ I Move

DestroyFunc Window-Lower-Move
AddToFunc Window-Lower-Move
+ C Lower
+ M Move

DestroyFunc Window-Raise-Move
AddToFunc Window-Raise-Move
+ C Raise
+ M Move

DestroyFunc Window-Raise-MoveRaise
AddToFunc Window-Raise-MoveRaise
+ C Raise
+ M Move
+ M Raise

DestroyFunc Window-Raise-RaiseMove
AddToFunc Window-Raise-RaiseMove
+ C Raise
+ M Raise
+ M Move

DestroyFunc Window-Raise-LowerMoveRaise
AddToFunc Window-Raise-LowerMoveRaise
+ C Raise
+ M Lower
+ M Move
+ M Raise


DestroyFunc Window-Resize
AddToFunc Window-Resize
+ I Resize

DestroyFunc Window-Resize-Opaque
AddToFunc Window-Resize-Opaque
+ I Resize Direction SE

DestroyFunc Window-Shade-Resize
AddToFunc Window-Shade-Resize
+ C WindowShade toggle
+ M Resize

DestroyFunc Window-Resize-Context
AddToFunc Window-Resize-Context
+ I Resize $0p $1p

DestroyFunc Window-Shade
AddToFunc Window-Shade
+ I Current (!Iconifiable) Break
+ I WindowShade $*

DestroyFunc Window-FocusInDirection
AddToFunc Window-FocusInDirection
+ I Direction $0 (CurrentPage, AcceptsFocus, !Iconic) Focus

DestroyFunc Window-FocusAndRaiseInDirection
AddToFunc Window-FocusAndRaiseInDirection
+ I Direction $0 (CurrentPage, AcceptsFocus, !Iconic) Focus
+ I Current (Focused) Raise

DestroyFunc Window-MPFocusInDirection
AddToFunc Window-MPFocusInDirection
+ I Direction $0 (CurrentPage, AcceptsFocus, !Iconic) Focus
+ I Current WarpToWindow 50 50

SetEnv Window-MPAnimatedMove-Length 100
DestroyFunc Window-MPAnimatedMove
AddToFunc Window-MPAnimatedMove
+ I Current (HasPointer) AnimatedMove $0 $1 Warp
+ I TestRc (NoMatch) AnimatedMove $0 $1

DestroyFunc Window-Warp-CenterCenter
AddToFunc Window-Warp-CenterCenter
+ I Current Piperead 'echo Window-MPAnimatedMove `expr $[vp.width] / 2 - $[w.width] / 2`p `expr $[vp.height] / 2 - $[w.height] / 2`p'

DestroyFunc Window-Warp-LeftCenter
AddToFunc Window-Warp-LeftCenter
+ I Current Piperead 'echo Window-MPAnimatedMove $[EWMH-BS-Panel-Left]p `expr $[vp.height] / 2 - $[w.height] / 2`p'

DestroyFunc Window-Warp-LeftTop
AddToFunc Window-Warp-LeftTop
+ I Current Window-MPAnimatedMove $[EWMH-BS-Panel-Left]p $[EWMH-BS-Panel-Top]p

DestroyFunc Window-Warp-CenterTop
AddToFunc Window-Warp-CenterTop
+ I Current Piperead 'echo Window-MPAnimatedMove `expr $[vp.width] / 2 - $[w.width] / 2`p $[EWMH-BS-Panel-Top]p'

DestroyFunc Window-Warp-RightTop
AddToFunc Window-Warp-RightTop
+ I Current Piperead 'echo Window-MPAnimatedMove `expr $[vp.width] - $[EWMH-BS-Panel-Right] - $[w.width]`p $[EWMH-BS-Panel-Top]p'

DestroyFunc Window-Warp-RightCenter
AddToFunc Window-Warp-RightCenter
+ I Current Piperead 'echo Window-MPAnimatedMove `expr $[vp.width] - $[EWMH-BS-Panel-Right] - $[w.width]`p `expr $[vp.height] / 2 - $[w.height] / 2`p'

DestroyFunc Window-Warp-CenterBottom
AddToFunc Window-Warp-CenterBottom
+ I Current Piperead 'echo Window-MPAnimatedMove `expr $[vp.width] / 2 - $[w.width] / 2`p `expr $[vp.height] - $[EWMH-BS-Panel-Bottom] - $[w.height]`p'

DestroyFunc Window-Warp-LeftBottom
AddToFunc Window-Warp-LeftBottom
+ I Current Piperead 'echo Window-MPAnimatedMove $[EWMH-BS-Panel-Left]p `expr $[vp.height] - $[EWMH-BS-Panel-Bottom] - $[w.height]`p'

DestroyFunc Window-Warp-RightBottom
AddToFunc Window-Warp-RightBottom
+ I Current Piperead 'echo Window-MPAnimatedMove `expr $[vp.width] - $[EWMH-BS-Panel-Right] - $[w.width]`p `expr $[vp.height] - $[EWMH-BS-Panel-Bottom] - $[w.height]`p'

DestroyFunc Window-Next
AddToFunc Window-Next
+ I Next (CurrentPage, !Iconic, AcceptsFocus) FlipFocus
+ I Current (CurrentPage, !Iconic, AcceptsFocus) Raise

DestroyFunc Window-Previous
AddToFunc Window-Previous
+ I Prev (CurrentPage, !Iconic, AcceptsFocus) FlipFocus
+ I Current (CurrentPage, !Iconic, AcceptsFocus) Raise

DestroyFunc Window-RememberFocused
AddToFunc Window-RememberFocused
+ I None (CurrentPage, AcceptsFocus) Break
+ I Current (!Iconified, !Sticky) All (CurrentPage) State 2 False
+ I Current (!Iconified) State 2 True

DestroyFunc Window-FocusRemembered
AddToFunc Window-FocusRemembered
+ I None (CurrentPage, AcceptsFocus) Break
+ I Current (Focused, Sticky, !CirculateHit) Break
+ I Next (CurrentPage, State 2) Focus
+ I None (CurrentPage, Focused) Prev (CurrentPage, !Iconified) Focus

DestroyFunc Window-Button-Function
AddToFunc Window-Button-Function
+ H Popup $1 $0 0 100
+ C $2 $3 $4 $5 $6 $7 $8 $9

#DestroyFunc Window-SetPlacementPolicy
#AddToFunc Window-SetPlacementPolicy
#+ I Any (CurrentPage, !Fvwm*, !Gkrellm, !Iconic) Style * MinOverlapPercentPlacement
#+ I TestRc (False) Style * CenterPlacement

DestroyFunc Window-SetPlacementPolicy
AddToFunc Window-SetPlacementPolicy
+ I Style * CenterPlacement
+ I Any (CurrentPage, !Fvwm*, !Gkrellm, !trayer, !Iconic) Style * MinOverlapPercentPlacement


# -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
# Menus for window buttons
# Usage:
#
# Mouse (mbutton#) (button#) (mod) Window-Button-Function (Button#) (menu) (function)
#
# Where:
# mbutton# - number of the mouse button (0 - all buttons, 1 - left button,
# 2 - middle button, 3 - right button)
# button# - number of the window title button, 0-9
# mod - modifier, see ~/.fvwm/functions/Keyboard-Modifiers
# Button# - number of the window title button, Button0-Button9
# menu - name of the menu opened on the mouse hold
# function - function executed after mouse click

DestroyMenu /Window-Menu-Close
AddToMenu /Window-Menu-Close
+ '$[fc-locale-window-Iconify]'		Thumbnail
+ '$[fc-locale-window-Close]'		Close
+ '$[fc-locale-window-Destroy]'		Destroy
+ "" Nop
+ '$[fc-locale-window-Identify]'	FvwmIdent

DestroyMenu /Window-Menu-Maximize
AddToMenu /Window-Menu-Maximize
+ '$[fc-locale-window-Maximize]'	Maximize
+ '$[fc-locale-window-Maximize_horizontally]'	Maximize 100 0
+ '$[fc-locale-window-Maximize_vertically]'	Maximize 0 100
+ "" Nop
+ '$[fc-locale-window-Take_free_space]'			Maximize grow grow
+ '$[fc-locale-window-Take_free_space_horizontally]'	Maximize grow 0
+ '$[fc-locale-window-Take_free_space_vertically]'	Maximize 0 grow
+ "" Nop
+ '$[fc-locale-window-Fullscreen]'	Fullscreen

DestroyMenu /Window-Menu-Layer
AddToMenu /Window-Menu-Layer
+ '$[fc-locale-window-Stay_on_top]'	Layer 0 5
+ '$[fc-locale-window-Stay_normal]'	Layer 0 4
+ '$[fc-locale-window-Stay_at_bottom]'	Layer 0 3
+ '$[fc-locale-window-Stick]'		Stick
+ "" Nop
+ '$[fc-locale-window-Refresh]'		RefreshWindow

DestroyMenu /Window-Menu-Page
AddToMenu /Window-Menu-Page
+ DynamicPopupAction Function /Window-Menu-Page-generator

DestroyFunc /Window-Menu-Page-generator
AddToFunc /Window-Menu-Page-generator
+ I DestroyMenu recreate /Window-Menu-Page
+ I AddToMenu /Window-Menu-Page '$[fc-locale-window-Move_left]' MoveToPage-Left
+ I AddToMenu /Window-Menu-Page '$[fc-locale-window-Move_prev]' MoveToPage-Focus prev
+ I AddToMenu /Window-Menu-Page '$[fc-locale-window-Move_right]' MoveToPage-Right
+ I AddTomenu /Window-Menu-Page "" Nop
+ I AddToMenu /Window-Menu-Page '$[fc-locale-window-Warp_left]' WarpToPage-Left
+ I AddToMenu /Window-Menu-Page '$[fc-locale-window-Warp_prev]' WarpToPage prev
+ I AddToMenu /Window-Menu-Page '$[fc-locale-window-Warp_right]' WarpToPage-Right
+ I AddToMenu /Window-Menu-Page "" Nop
+ I PipeRead 'i=-1; while (( $i < $(($[desk.pagesx]-1)) )) ; do i=$(($i+1)) ; echo "AddToMenu /Window-Menu-Page \'$[fc-locale-window-Move_to_page] $(($i+1))\' MoveToPage $i 0" ; done'


# Combined version of menu for window styles other than FVWM-Crystal
DestroyMenu /Window-Menu
AddToMenu /Window-Menu
+ '$[fc-locale-window-Iconify]'		Thumbnail
+ '$[fc-locale-window-Stick]'		Stick
+ '$[fc-locale-window-Stay_on_top]'	Layer 0 5
+ '$[fc-locale-window-Stay_normal]'	Layer 0 4
+ '$[fc-locale-window-Fullscreen]'	Fullscreen
+ "" Nop
+ '$[fc-locale-window-Move_left]'	MoveToPage-Left
+ '$[fc-locale-window-Move_right]'	MoveToPage-Right
+ "" Nop
+ '$[fc-locale-window-Identify]'	FvwmIdent
+ '$[fc-locale-window-Close]'		Close
