mirror of
https://github.com/xmonad/xmonad-contrib.git
synced 2025-05-19 03:20:21 -07:00
Prompts based on `mkComplFunList` and `mkComplFunList'` were not taking into account the `searchPredicate` funtion from `XPConfig`. This was rather confusing. We fix it by passing `XPConfig` to these functions; although this is strictly more than they need, it makes the breaking change very easy to fix and is also more future-proof.
52 lines
1.9 KiB
Haskell
52 lines
1.9 KiB
Haskell
-----------------------------------------------------------------------------
|
|
-- |
|
|
-- Module : XMonad.Prompt.ConfirmPrompt
|
|
-- Copyright : (C) 2015 Antoine Beaupré
|
|
-- License : BSD3
|
|
--
|
|
-- Maintainer : Antoine Beaupré <anarcat@debian.org>
|
|
-- Stability : unstable
|
|
-- Portability : unportable
|
|
--
|
|
-- A module for setting up simple confirmation prompts for keybindings.
|
|
--
|
|
-----------------------------------------------------------------------------
|
|
module XMonad.Prompt.ConfirmPrompt (confirmPrompt
|
|
-- * Usage
|
|
-- $usage
|
|
, module XMonad.Prompt
|
|
-- * Use case: confirming exit
|
|
-- $tip
|
|
, EnterPrompt
|
|
) where
|
|
|
|
import XMonad (X)
|
|
import XMonad.Prompt (XPConfig, XPrompt, showXPrompt, mkXPrompt, mkComplFunFromList)
|
|
|
|
{- $usage
|
|
|
|
This module makes it easy to add a confirmation prompt for specific
|
|
actions. Instead of just running the action, a simple confirmation
|
|
prompt will be created using 'XMonad.Prompt' primitives. The action
|
|
will then run normally if the user confirms.
|
|
-}
|
|
|
|
{- $tip
|
|
This should be used something like this:
|
|
|
|
> ...
|
|
> , ((modm , xK_l), confirmPrompt defaultXPConfig "exit" $ io (exitWith ExitSuccess))
|
|
> ...
|
|
-}
|
|
|
|
{- | Customized 'XPrompt' prompt that will ask to confirm the given string -}
|
|
data EnterPrompt = EnterPrompt String
|
|
instance XPrompt EnterPrompt where
|
|
showXPrompt (EnterPrompt n) = "Confirm " ++ n ++ " (esc/ENTER)"
|
|
|
|
{- | Prompt the user to confirm a given action. We offer no completion
|
|
and simply ask to confirm (ENTER) or cancel (ESCAPE). The actual key
|
|
handling is done by mkXPrompt.-}
|
|
confirmPrompt :: XPConfig -> String -> X() -> X()
|
|
confirmPrompt config app func = mkXPrompt (EnterPrompt app) config (mkComplFunFromList config []) $ const func
|