module WildBind.Task.X11
(
wildNumPad,
wildNumPad',
module WildBind.Binding,
module WildBind.Description,
module WildBind.Input.NumPad,
module Control.Monad.IO.Class,
module Control.Monad.Trans.State,
module Data.Monoid,
Text,
Window, ActiveWindow, winInstance, winClass, winName,
Indicator, NumPadPosition(..), updateDescription, getPresence, setPresence, togglePresence, quit
) where
import Control.Monad.IO.Class
import Control.Monad.Trans.State
import Data.Monoid
import Data.Text (Text)
import WildBind.Binding
import WildBind.Description
import WildBind.Input.NumPad
import WildBind.X11
( Window, ActiveWindow, winInstance, winClass, winName,
withFrontEnd
)
import WildBind.Indicator
( Indicator, NumPadPosition(..),
updateDescription, getPresence, setPresence, togglePresence, quit,
withNumPadIndicator, wildBindWithIndicator, toggleBinding
)
import WildBind.X11.Internal.Key (XKeyInput)
wildNumPad :: (NumPadPosition i, XKeyInput i, Describable i, Ord i, Enum i, Bounded i)
=> Binding ActiveWindow i -> IO ()
wildNumPad orig_binding = wildNumPad' $ \ind -> orig_binding <> toggleBinding ind NumLDivide
wildNumPad' :: (NumPadPosition i, XKeyInput i, Describable i, Ord i, Enum i, Bounded i)
=> (Indicator ActiveWindow i -> Binding ActiveWindow i) -> IO ()
wildNumPad' create_binding = withNumPadIndicator $ \ind -> withFrontEnd $ wildBindWithIndicator ind (create_binding ind)