
# $Id$

# Author: Scott Smedley ss@aao.gov.au

# See the FvwmTabs(1) man page for how to use the FvwmTabs module.
#
# DO NOT EDIT this file unless you know what you are doing.
# Default USER CONFIGURATION settings are in FvwmTabs-DefaultSetup.

# Create a new Tabber.
DestroyFunc NewTabber
AddToFunc NewTabber I SendToModule FvwmTabs createNewTabber $0

# Add a window (as a tab) to a Tabber.
DestroyFunc Tabize
AddToFunc Tabize I SendToModule FvwmTabs addme $0

# Save FvwmTabs state (usually invoked just before restart).
DestroyFunc SaveState
AddToFunc SaveState I SendToModule FvwmTabs saveState

DestroyFunc SaveStateAndKill
AddToFunc SaveStateAndKill
+ I	Function SaveState
+ I KillModule FvwmTabs

# Functions used in key bindings.
DestroyFunc NextTab
AddToFunc NextTab
+ I Current (FvwmTabs) SendToModule FvwmTabs fn showNext $[w.id] 1

DestroyFunc PrevTab
AddToFunc PrevTab
+ I Current (FvwmTabs) SendToModule FvwmTabs fn showNext $[w.id] -1

DestroyFunc LastTab
AddToFunc LastTab
+ I Current (FvwmTabs) SendToModule FvwmTabs fn showLast $[w.id]

DestroyFunc ReleaseIconifyTab
AddToFunc ReleaseIconifyTab
+ I Current (FvwmTabs) SendToModule FvwmTabs fn releaseTab $[w.id] current 1

DestroyFunc ReleaseTab
AddToFunc ReleaseTab
+ I Current (FvwmTabs) SendToModule FvwmTabs fn releaseTab $[w.id] current 0

DestroyFunc ReleaseAllTabs
AddToFunc ReleaseAllTabs
+ I Current (FvwmTabs) SendToModule FvwmTabs fn releaseAll $[w.id] 0

DestroyFunc ReleaseIconifyAllTabs
AddToFunc ReleaseIconifyAllTabs
+ I Current (FvwmTabs) SendToModule FvwmTabs fn releaseAll $[w.id] 1

DestroyFunc CloseTabber
AddToFunc CloseTabber
+ I Current (FvwmTabs) SendToModule FvwmTabs fn closeTabber $[w.id]

DestroyFunc AddTab
AddToFunc AddTab
+ I Current (FvwmTabs) SendToModule FvwmTabs fn pickAndAdd $[w.id] single

DestroyFunc MultiAddTab
AddToFunc MultiAddTab
+ I Current (FvwmTabs) SendToModule FvwmTabs fn pickAndAdd $[w.id] multi

DestroyFunc ShowTab
AddToFunc ShowTab
+ I Current (FvwmTabs) SendToModule FvwmTabs fn showTab $[w.id] $0

DestroyFunc SwapLeft
AddToFunc SwapLeft
+ I Current (FvwmTabs) SendToModule FvwmTabs fn swapLeft $[w.id]

DestroyFunc SwapRight
AddToFunc SwapRight
+ I Current (FvwmTabs) SendToModule FvwmTabs fn swapRight $[w.id]

DestroyFunc EnableDND
AddToFunc EnableDND I SendToModule FvwmTabs enableDND $0

# SwallowNew - Run program $0 & have window immediately added to tabber.
DestroyFunc SwallowNew
AddToFunc SwallowNew
+ I SendToModule FvwmTabs swallowNext lastFocus Exec exec $*

# SwallowNewIfFocussed - Run program $0. If a tabber is focussed, have
# window immediately added to tabber.
DestroyFunc SwallowNewIfFocused
AddToFunc SwallowNewIfFocused
+ I Current (FvwmTabs) SwallowNew $*
+ I TestRc (NoMatch) Exec exec $0

# SwallowNextStatus - is used by the 'tab' (shell) command.
DestroyFunc SwallowNextStatus
AddToFunc SwallowNextStatus
+ I Deschedule 314159
+ I PipeRead 'usleep 1'
+ I SendToModule FvwmCommandS swallowNext$0
+ I PipeRead 'usleep 1'
+ I SendToModule FvwmCommandS flush

# AddToTabber - add the current window to a tabber.
DestroyFunc AddToTabber
AddToFunc AddToTabber I Current Function Tabize $0

# TabbersMenu - best invoked from the menu that pops up when you click
# on the left button in the titlebar of a window. It lists all tabbers
# currently running on the system & automatically adds the window to the
# tabber the user selects.

DestroyFunc MakeTabbersMenu
AddToFunc MakeTabbersMenu
+ I DestroyMenu recreate TabbersMenu
+ I AddToMenu TabbersMenu "FvwmTabs tab-managers" Title
+ I All ("FvwmTabs [*]") AddToMenu TabbersMenu "$$$$[w.name]" Function AddToTabber $$$$[w.id]

DestroyMenu TabbersMenu
AddToMenu TabbersMenu
+ DynamicPopupAction Function MakeTabbersMenu




# Make sure "SaveState" is only added to ExitFunction once.
# This looks complicated mostly because environment variable
# values are preserved between restarts.
Test (!EnvIsSet FvwmTabs_AddedSaveStateHook) AddToFunc ExitFunction I Test (ToRestart) Function SaveState
Test (Match) AddToFunc ExitFunction I Test (ToRestart) UnsetEnv FvwmTabs_AddedSaveStateHook
SetEnv FvwmTabs_AddedSaveStateHook

# FvwmTabs-DefaultSetup has some useful key-bindings for FvwmTabs.
# Source this file unless the $FvwmTabs_NoDefaultSetup environment
# variable is set, in which case the user probably wants to define their
# own bindings.
Test (!EnvIsSet FvwmTabs_NoDefaultSetup) Read FvwmTabs-DefaultSetup
Test (Match) AddToFunc ExitFunction I Test (ToRestart) UnsetEnv FvwmTabs_NoDefaultSetup
SetEnv FvwmTabs_NoDefaultSetup
