-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | The Fudgets Library -- -- Fudgets is a Graphical User Interface Toolkit built in Haskell -- on top of the X11 Windows system in the early 1990s. There is an -- FPCA-93 paper about it. Fudgets also makes it easy to create -- client/server applications that communicate via the Internet. -- -- This package includes the Fudgets library and a few small examples and -- demo applications. -- -- For installation instructions, see the last section of the Readme. @package fudgets @version 0.18.4 -- | Useful functions from hbc-library modules ListSet, ListMap, ListUtil, -- HO and UTF8 module HbcUtils -- | Union of sets as lists union :: Eq a => [a] -> [a] -> [a] lookupWithDefault :: Eq a => [(a, b)] -> b -> a -> b mapFst :: (t -> a) -> [(t, b)] -> [(a, b)] mapSnd :: (t -> b) -> [(a, t)] -> [(a, b)] breakAt :: Eq a => a -> [a] -> ([a], [a]) chopList :: ([a] -> (b, [a])) -> [a] -> [b] assoc :: Eq k => (v -> r) -> r -> [(k, v)] -> k -> r apFst :: (t -> a) -> (t, b) -> (a, b) apSnd :: (t -> b) -> (a, t) -> (a, b) curry3 :: ((a, b, c) -> t) -> a -> b -> c -> t uncurry3 :: (t -> t -> t -> t) -> (t, t, t) -> t decodeUTF8 :: String -> String -- | Take a Unicode string and encode it as a string with the UTF8 method. encodeUTF8 :: String -> String module ReactionM -- | Writer & State & Exception monad newtype ReactionM s o a M :: (s -> [o] -> Maybe (s, [o], a)) -> ReactionM s o a react :: ReactionM a o a -> a -> (a, [o]) put :: o -> ReactionM s o () set :: s -> ReactionM s o () get :: ReactionM a o a field :: (a -> b) -> ReactionM a o b update :: (t -> t) -> ReactionM t o () rfail :: ReactionM s o a lift :: Maybe a -> ReactionM s o a nop :: Monad m => m () instance GHC.Base.Functor (ReactionM.ReactionM s o) instance GHC.Base.Applicative (ReactionM.ReactionM s o) instance GHC.Base.Monad (ReactionM.ReactionM s o) instance Control.Monad.Fail.MonadFail (ReactionM.ReactionM s o) module IOUtil getEnvi :: String -> Maybe String progName :: String progArgs :: [String] catch :: IO a -> (IOError -> IO a) -> IO a try :: IO a -> IO (Either IOError a) getModificationTime :: FilePath -> IO ClockTime instance IOUtil.ToClockTime System.Time.ClockTime instance IOUtil.ToClockTime Data.Time.Clock.Internal.UTCTime.UTCTime module DoRequest data XCallState initXCall :: IO XCallState doRequest :: XCallState -> Request -> IO Response getAsyncInput :: XCallState -> IO Response -- | Haskell 1.2 Dialogue I/O, extended for Fudgets with Xlib calls, -- network sockets, etc module DialogueIO data Request ReadFile :: String -> Request WriteFile :: String -> String -> Request AppendFile :: String -> String -> Request ReadBinFile :: String -> Request WriteBinFile :: String -> Bin -> Request AppendBinFile :: String -> Bin -> Request DeleteFile :: String -> Request StatusFile :: String -> Request ReadBinaryFile :: String -> Request WriteBinaryFile :: String -> String -> Request ReadXdgFile :: XdgDirectory -> String -> Request WriteXdgFile :: XdgDirectory -> String -> String -> Request ReadChan :: String -> Request AppendChan :: String -> String -> Request ReadBinChan :: String -> Request AppendBinChan :: String -> Bin -> Request StatusChan :: String -> Request Echo :: Bool -> Request GetArgs :: Request GetEnv :: String -> Request SetEnv :: String -> String -> Request ReadChannels :: [String] -> Request ReadBinChannels :: [String] -> Request CreateProcess :: Dialogue -> Request CreateDirectory :: String -> String -> Request OpenFile :: String -> Bool -> Request OpenBinFile :: String -> Bool -> Request CloseFile :: File -> Request ReadVal :: File -> Request ReadBinVal :: File -> Request WriteVal :: File -> Char -> Request WriteBinVal :: File -> Bin -> Request Sleep :: Double -> Request ChangeDirectory :: String -> Request GetTime :: Request DeleteDirectory :: String -> Request System :: String -> Request ReadDirectory :: String -> Request XCommand :: (XDisplay, XWId, XCommand) -> Request GetAsyncInput :: Request GetCpuTime :: Request GetProgName :: Request GetLocalTime :: Request ToCalendarTime :: ClockTime -> Request SigAction :: Int -> SigAct -> Request Exit :: Int -> Request ReadFileScattered :: String -> [Int] -> Request Select :: [Descriptor] -> Request SocketRequest :: SocketRequest -> Request XRequest :: (XDisplay, XWId, XRequest) -> Request ReadFileFast :: String -> Request RenameFile :: String -> String -> Request GetCurrentDirectory :: Request GetModificationTime :: FilePath -> Request GetCurrentTime :: Request GetZonedTime :: Request data Response Success :: Response Str :: String -> Response Bn :: Bin -> Response Failure :: IOError -> Response Tag :: [(String, Char)] -> Response BinTag :: [(String, Bin)] -> Response StrList :: [String] -> Response Fil :: File -> Response Dbl :: Double -> Response AsyncInput :: AsyncInput -> Response SocketResponse :: SocketResponse -> Response XResponse :: XResponse -> Response IntResp :: Int -> Response SelectResp :: [([File], [File], [Double])] -> Response SigActResp :: SigAct -> Response ClockTime :: ClockTime -> Response CalendarTime :: CalendarTime -> Response UTCTime :: UTCTime -> Response ZonedTime :: ZonedTime -> Response data IOError WriteError :: String -> IOError ReadError :: String -> IOError SearchError :: String -> IOError FormatError :: String -> IOError OtherError :: String -> IOError type Dialogue = [Response] -> [Request] data SigAct SAIgnore :: SigAct SADefault :: SigAct SACatch :: (String -> Dialogue) -> SigAct -- | Included just to illustrate that it is possible to convert a Dialogue -- IO function to a monadic IO function. The implementation relies on -- getChanContents to construct the lazy list of responses needed -- by the dialogue IO function. (See also the functions doRequest -- and fudlogue.) dialogueToIO :: Dialogue -> IO () -- | This module exposes everything, but there is very little documentation -- here. See the Fudget Library Reference Manual instead. module AllFudgets branchF :: F (Path, a) b -> F (Path, a) b -> F (Path, a) b branchFSP :: FSP (Path, a) b -> FSP (Path, a) b -> FSP (Path, a) b compF :: F a b -> F c d -> F (Either a c) (Either b d) parF :: F c ho -> F c ho -> F c ho postProcessHigh :: SP a ho -> F hi a -> F hi ho postProcessLow :: SP TCommand TCommand -> F hi ho -> F hi ho preProcessHigh :: F c ho -> SP hi c -> F hi ho preProcessLow :: F hi ho -> SP TEvent TEvent -> F hi ho preMapHigh :: F c ho -> (hi -> c) -> F hi ho postMapHigh :: (a -> ho) -> F hi a -> F hi ho preMapLow :: F hi ho -> (TEvent -> TEvent) -> F hi ho postMapLow :: (TCommand -> TCommand) -> F hi ho -> F hi ho postProcessHighK :: SP a ho -> K hi a -> K hi ho postProcessLowK :: SP FRequest FRequest -> K hi ho -> K hi ho preProcessHighK :: K c ho -> SP hi c -> K hi ho preProcessLowK :: K hi ho -> SP FResponse FResponse -> K hi ho preMapHighK :: K c ho -> (hi -> c) -> K hi ho postMapHighK :: (a -> ho) -> K hi a -> K hi ho preMapLowK :: K hi ho -> (FResponse -> FResponse) -> K hi ho postMapLowK :: (FRequest -> FRequest) -> K hi ho -> K hi ho postProcessHigh' :: SP a b -> Fa c d e a -> Fa c d e b postProcessLow' :: SP a b -> Fa c a d e -> Fa c b d e preProcessHigh' :: Fa a b c d -> SP e c -> Fa a b e d preProcessLow' :: Fa a b c d -> SP e a -> Fa e b c d preMapHigh' :: Fa a b c d -> (e -> c) -> Fa a b e d preMapLow' :: Fa a b c d -> (e -> a) -> Fa e b c d postMapHigh' :: (a -> b) -> Fa c d e a -> Fa c d e b postMapLow' :: (a -> b) -> Fa c a d e -> Fa c b d e prepostMapHigh' :: (a -> b) -> (c -> d) -> Fa e f b c -> Fa e f a d prepostMapHigh :: (hi -> b) -> (c -> ho) -> F b c -> F hi ho prepostMapHighK :: (hi -> b) -> (c -> ho) -> K b c -> K hi ho prepostMapLow' :: (a -> b) -> (c -> d) -> Fa b c e f -> Fa a d e f prepostMapLow :: (TEvent -> TEvent) -> (TCommand -> TCommand) -> F hi ho -> F hi ho prepostMapLowK :: (FResponse -> FResponse) -> (FRequest -> FRequest) -> K hi ho -> K hi ho dynF :: F a b -> F (Either (F a b) a) b type DynFMsg a b = DynMsg a (F a b) dynListF :: F (Int, DynFMsg a b) (Int, b) listF :: Eq a => [(a, F b c)] -> F (a, b) (a, c) untaggedListF :: [F a b] -> F a b loopLow :: SP TCommand (FCommand a) -> SP (FEvent a) TEvent -> F b c -> F b c loopThroughLowSP :: SP (Either c e) (Either c e) -> SP (Message e a) (Message c b) -> SP (Message e a) (Message c b) loopThroughLowF :: SP (Either TCommand TEvent) (Either TCommand TEvent) -> F i o -> F i o loopF :: F a a -> F a a loopThroughRightF :: F (Either a b) (Either c d) -> F c a -> F b d loopCompThroughRightF :: F (Either (Either a b) c) (Either (Either c d) a) -> F b d loopCompThroughLeftF :: F (Either a (Either b c)) (Either b (Either a d)) -> F c d loopRightF :: F (Either a b) (Either c b) -> F a c loopLeftF :: F (Either a b) (Either a c) -> F b c loopOnlyF :: F a a -> F a b loopCompF :: F (Either (Either r2l inl) (Either l2r inr)) (Either (Either l2r outl) (Either r2l outr)) -> F (Either inl inr) (Either outl outr) loopCompSP :: SP (Either (Either a b) (Either a b)) (Either (Either a a) (Either a b)) -> SP (Either b b) (Either a b) loopThroughBothF :: F (Either r2l inl) (Either l2r outl) -> F (Either l2r inr) (Either r2l outr) -> F (Either inl inr) (Either outl outr) loopThroughBothSP :: SP (Either a b) (Either a a) -> SP (Either a b) (Either a b) -> SP (Either b b) (Either a b) nullK :: K hi ho nullF :: F hi ho putK :: KCommand ho -> K hi ho -> K hi ho putF :: ho -> F hi ho -> F hi ho putsF :: [b] -> F a b -> F a b putsK :: [KCommand b] -> K a b -> K a b putMessageF :: FCommand ho -> F hi ho -> F hi ho putMessageFu :: Message FRequest ho -> F hi ho -> F hi ho putMessagesF :: [FCommand ho] -> F hi ho -> F hi ho putMessagesFu :: [KCommand b] -> F a b -> F a b appendStartK :: [KCommand ho] -> K hi ho -> K hi ho appendStartMessageF :: [FCommand ho] -> F hi ho -> F hi ho appendStartF :: [ho] -> F hi ho -> F hi ho getK :: Cont (K hi ho) (KEvent hi) getMessageF :: Cont (F hi ho) (FEvent hi) getMessageFu :: Cont (F a b) (KEvent a) getF :: Cont (F a ho) a startupK :: [KEvent hi] -> K hi ho -> K hi ho startupMessageF :: [FEvent hi] -> F hi ho -> F hi ho startupF :: [hi] -> F hi ho -> F hi ho delayF :: F hi ho -> F hi ho type Cont c a = (a -> c) -> c data K hi ho data F hi ho class StreamProcIO sp put :: StreamProcIO sp => o -> sp i o -> sp i o get :: StreamProcIO sp => (i -> sp i o) -> sp i o end :: StreamProcIO sp => sp i o class FudgetIO f waitForMsg :: FudgetIO f => (KEvent hi -> Maybe ans) -> Cont (f hi ho) ans putMsg :: FudgetIO f => KCommand ho -> f hi ho -> f hi ho prodF :: F a b -> F c d -> F (a, c) (Either b d) compTurnRight :: (Path, b) -> Message (Path, b) b compTurnLeft :: (Path, b) -> Message (Path, b) b compPath :: ([Direction], b) -> b -> (Either (Message ([Direction], b) b) (Message ([Direction], b) b) -> b) -> b stubF :: F a b -> F c d bypassF :: F a a -> F a a throughF :: F c b -> F c (Either b c) toBothF :: F b (Either b b) idF :: F b b concatMapF :: (a -> [b]) -> F a b mapF :: (a -> b) -> F a b mapstateF :: (t -> a -> (t, [b])) -> t -> F a b absF :: SP a b -> F a b idLeftF :: F c d -> F (Either b c) (Either b d) idRightF :: F a b -> F (Either a c) (Either b c) serCompLeftToRightF :: F (Either a b) (Either b c) -> F a c serCompRightToLeftF :: F (Either a b) (Either c a) -> F b c serCompF :: F a b -> F a a -> F a b -- | The continuation monad newtype Mk k r Mk :: Cont k r -> Mk k r [unMk] :: Mk k r -> Cont k r -- | Continuation monad with unit result type Mkc k = Mk k () -- | Continuation monad with state (just an instance of the continuation -- monad) type Ms k s r = Mk (s -> k) r type Msc k s = Ms k s () loadMs :: Ms k s s storeMs :: s -> Msc k s modMs :: (s -> s) -> Msc k s fieldMs :: (s -> f) -> Ms k s f nopMs :: Msc k s toMkc :: (k -> k) -> Mkc k toMs :: Cont k r -> Ms k s r bmk :: ((a -> c) -> c) -> (a -> a -> c) -> a -> c toMsc :: (k -> k) -> Msc k r -- | Fudget Kernel Monad with State (just an instance...) type Ks i o s ans = Ms (K i o) s ans putHighsMs :: (Foldable t, StreamProcIO sp) => t a -> Msc (sp i a) r putHighMs :: StreamProcIO sp => o -> Msc (sp i o) r putLowsMs :: (Foldable t, FudgetIO f) => t FRequest -> Msc (f hi ho) r putLowMs :: FudgetIO f => FRequest -> Msc (f hi ho) r getKs :: Ms (K hi ho) s (KEvent hi) nullKs :: Msc k s storeKs :: s -> Msc k s loadKs :: Ms k s s unitKs :: Monad m => a -> m a bindKs :: Monad m => m a -> (a -> m b) -> m b thenKs :: Monad m => m a -> m b -> m b mapKs :: Functor f => (a -> b) -> f a -> f b stateMonadK :: t -> Mk (t -> t) t -> (t -> t) -> t stateK :: t -> Mk (t -> t) r -> t -> t data Tree a Leaf :: a -> Tree a Branch :: Tree a -> Tree a -> Tree a treeF :: Tree (a, F b c) -> F (Path, b) (a, c) treeF' :: Tree (a, F b c) -> FSP (Path, b) (a, c) leafF :: a -> F b c -> Fa TEvent TCommand ([a], b) (a, c) type InF a b = F a (InputMsg b) inputPairLF :: Orientation -> InF a1 b1 -> InF a2 b2 -> F (a1, a2) (InputMsg (b1, b2)) inputListLF :: Eq a => Placer -> [(a, InF b c)] -> F [(a, b)] (InputMsg [(a, c)]) inputPairF :: InF a1 b1 -> InF a2 b2 -> InF (a1, a2) (b1, b2) inputListF :: Eq a => [(a, InF b c)] -> InF [(a, b)] [(a, c)] inputThroughF :: InF a a -> InF a a contDynF :: F a b -> Cont (F a d) b contDynFSP :: FSP a b -> Cont (FSP a d) b bubbleF :: F a b -> F a b bubblePopupF :: F b2 d2 -> F (PopupMsg b2) d2 bubbleRootPopupF :: F b2 d2 -> F (PopupMsg b2) d2 invisibleGroupF :: Sizing -> [FRequest] -> [WindowAttributes] -> F hi ho -> F hi ho simpleGroupF :: [WindowAttributes] -> F hi ho -> F hi ho unmappedGroupF :: Sizing -> [FRequest] -> K a b -> F c d -> F (Either a c) (Either b d) groupF :: [FRequest] -> K a b -> F c d -> F (Either a c) (Either b d) groupF' :: Sizing -> [FRequest] -> K a b -> F c d -> F (Either a c) (Either b d) sgroupF :: Sizing -> [FRequest] -> Maybe Rect -> K a b -> F c d -> F (Either a c) (Either b d) swindowF :: [FRequest] -> Maybe Rect -> K hi ho -> F hi ho windowF :: [FRequest] -> K a b -> F a b sF :: Bool -> Maybe Point -> [FRequest] -> K a b -> F c d -> F (Either a c) (Either b d) containerGroupF :: Rect -> Rect -> Int -> Button -> ModState -> F c b -> F (Either (Rect, Rect) c) (Either Rect b) hPotF :: F PotRequest PotState hPotF' :: Bool -> Maybe Point -> F PotRequest PotState vPotF :: F PotRequest PotState vPotF' :: Bool -> Maybe Point -> F PotRequest PotState data PotRequest ResizePot :: Int -> Int -> PotRequest MovePot :: Int -> PotRequest PotMkVisible :: Int -> Int -> Maybe Alignment -> PotRequest PotInput :: (ModState, KeySym) -> PotRequest type PotState = (Int, Int, Int) popupShellF :: String -> Maybe Point -> F a b -> F a (a, b) popupShellF' :: Customiser ShellF -> String -> Maybe Point -> F a b -> F a (a, b) popupGroupF :: (Size -> Point, [WindowAttributes], K b d) -> F b d -> F (PopupMsg b) d rootPopupF :: (Size -> Point, [WindowAttributes], K b d) -> F b d -> F (PopupMsg b) d posPopupShellF :: String -> [WindowAttributes] -> F c a -> F (c, Maybe Point) (c, a) scrollShellF :: String -> (Point, Point) -> F c d -> F c d scrollF :: F b d -> F b d oldScrollF :: Bool -> (Point, Point) -> F b d -> F b d vScrollF :: F b d -> F b d oldVscrollF :: Bool -> (Point, Point) -> F b d -> F b d hScrollF :: F b d -> F b d oldHscrollF :: Bool -> (Point, Point) -> F b d -> F b d grabScrollKeys :: Bool data SelCmd a Sel :: a -> SelCmd a ClearSel :: SelCmd a PasteSel :: SelCmd a data SelEvt a LostSel :: SelEvt a SelNotify :: a -> SelEvt a data ESelCmd a OwnSel :: ESelCmd a SelCmd :: SelCmd a -> ESelCmd a data ESelEvt a WantSel :: ESelEvt a SelEvt :: SelEvt a -> ESelEvt a eselectionF :: F (ESelCmd String) (ESelEvt String) selectionF :: F (SelCmd String) (SelEvt String) data ShellF shellF :: String -> F c d -> F c d shellF' :: Customiser ShellF -> String -> F c d -> F c d shellKF :: K a b -> F c d -> F (Either a c) (Either b d) shellKF' :: Customiser ShellF -> K a b -> F c d -> F (Either a c) (Either b d) setDeleteWindowAction :: Maybe DeleteWindowAction -> Customiser ShellF getDeleteWindowActionMaybe' :: (ShellF -> ShellF) -> Maybe (Maybe DeleteWindowAction) data DeleteWindowAction DeleteQuit :: DeleteWindowAction DeleteUnmap :: DeleteWindowAction setDeleteQuit :: Bool -> Customiser ShellF class HasClickToType xxx setClickToType :: HasClickToType xxx => Bool -> Customiser xxx getClickToType :: HasClickToType xxx => xxx -> Bool getClickToTypeMaybe :: HasClickToType xxx => xxx -> Maybe Bool setInitPos :: Maybe Point -> Customiser ShellF setFocusMgr :: Bool -> Customiser ShellF class HasVisible xxx setVisible :: HasVisible xxx => Bool -> Customiser xxx getVisible :: HasVisible xxx => xxx -> Bool getVisibleMaybe :: HasVisible xxx => xxx -> Maybe Bool unmappedShellF :: Foldable t => t FRequest -> K a b -> F c d -> F (Either a c) (Either b d) unmappedShellF' :: Foldable t => (ShellF -> ShellF) -> t FRequest -> K a b -> F c d -> F (Either a c) (Either b d) unmappedSimpleShellF :: String -> F i o -> F i o unmappedSimpleShellF' :: Customiser ShellF -> String -> F i o -> F i o mapWindowK :: K Bool ho simpleShellF :: String -> [WindowAttributes] -> F c d -> F c d rootWindowF :: K b c -> F b c rootGroupF :: K a b -> F c d -> F (Either a c) (Either b d) maptrace :: Eq b => String -> [b] -> [b] ctrace :: Show a => [Char] -> a -> a -> a showCommandF :: String -> F a b -> F a b spyF :: (Show b, Show a1) => F a1 b -> F a1 b teeF :: (b -> [Char]) -> [Char] -> F b b tryAllocColor :: FudgetIO f => ColormapId -> RGB -> (Maybe Color -> f hi ho) -> f hi ho tryAllocColorF :: ColormapId -> RGB -> Cont (F b c) (Maybe Color) allocColor :: FudgetIO f => ColormapId -> RGB -> Cont (f hi ho) Color allocColorF :: ColormapId -> RGB -> Cont (F b c) Color allocColorPixel :: FudgetIO f => ColormapId -> RGB -> Cont (f hi ho) Pixel allocColorPixelF :: ColormapId -> RGB -> Cont (F b c) Pixel tryAllocNamedColor :: FudgetIO f => ColormapId -> ColorName -> (Maybe Color -> f hi ho) -> f hi ho tryAllocNamedColorF :: ColormapId -> ColorName -> Cont (F b c) (Maybe Color) allocNamedColor :: FudgetIO f => ColormapId -> ColorName -> Cont (f hi ho) Color allocNamedColorF :: ColormapId -> ColorName -> Cont (F b c) Color allocNamedColorPixel :: FudgetIO f => ColormapId -> ColorName -> Cont (f hi ho) Pixel allocNamedColorPixelF :: ColormapId -> ColorName -> Cont (F b c) Pixel allocNamedColorDef :: FudgetIO f => ColormapId -> ColorName -> [Char] -> Cont (f hi ho) Color allocNamedColorDefPixel :: FudgetIO f => ColormapId -> ColorName -> [Char] -> (Pixel -> f hi ho) -> f hi ho queryColor :: FudgetIO f => ColormapId -> Pixel -> (Color -> f hi ho) -> f hi ho queryColorF :: ColormapId -> Pixel -> Cont (F b c) Color createFontCursor :: Int -> Cont (K b c) CursorId setFontCursor :: Int -> K a b -> K a b defineCursor :: CursorId -> K i o -> K i o undefineCusror :: K i o -> K i o data CharStruct CharStruct :: !Int -> CharStruct type FontStruct = FontStructF (Array Char CharStruct) type FontStructList = FontStructF [CharStruct] data FontStructF per_char FontStruct :: FontId -> FontDirection -> !Char -> !Bool -> !Char -> [FontProp] -> !CharStruct -> Maybe per_char -> !Int -> FontStructF per_char data FontDirection FontLeftToRight :: FontDirection FontRightToLeft :: FontDirection data FontProp FontProp :: Atom -> Int -> FontProp update_font_id :: FontStructF per_char -> FontId -> FontStructF per_char font_range :: FontStructF per_char -> (Char, Char) split_string :: FontStruct -> String -> Int -> (String, String, Int) string_len :: FontStruct -> String -> Int string_rect :: FontStruct -> String -> Rect string_box_size :: FontStruct -> String -> Size string_bounds :: FontStruct -> String -> Rect next_pos :: FontStruct -> String -> Int poslist :: FontStruct -> String -> [Int] linespace :: FontStructF per_char -> Int fsl2fs :: FontStructF [e] -> FontStructF (Array Char e) loadQueryFont :: FudgetIO f => FontName -> (Maybe (FontStructF (Array Char CharStruct)) -> f hi ho) -> f hi ho queryFont :: FudgetIO f => FontId -> (FontStructF (Array Char CharStruct) -> f hi ho) -> f hi ho loadFont :: FudgetIO f => FontName -> (FontId -> f hi ho) -> f hi ho loadQueryFontF :: FontName -> Cont (F b c) (Maybe (FontStructF (Array Char CharStruct))) queryFontF :: FontId -> Cont (F b c) (FontStructF (Array Char CharStruct)) loadFontF :: FontName -> Cont (F b c) FontId safeLoadQueryFont :: FudgetIO f => FontName -> (FontStructF (Array Char CharStruct) -> f hi ho) -> f hi ho safeLoadQueryFontF :: FontName -> (FontStructF (Array Char CharStruct) -> F b c) -> F b c listFonts :: FudgetIO f => FontName -> Int -> ([FontName] -> f hi ho) -> f hi ho listFontsF :: FontName -> Int -> Cont (F b c) [FontName] listFontsWithInfo :: FudgetIO f => FontName -> Int -> ([(FontName, FontStructF (Array Char CharStruct))] -> f hi ho) -> f hi ho tryLoadFont :: FudgetIO f => FontName -> (Maybe FontId -> f hi ho) -> f hi ho pmCreateGC :: FudgetIO f => PixmapId -> GCId -> GCAttributeList -> (GCId -> f hi ho) -> f hi ho wCreateGC :: FudgetIO f => GCId -> GCAttributeList -> (GCId -> f hi ho) -> f hi ho createGC :: FudgetIO f => Drawable -> GCId -> GCAttributeList -> (GCId -> f hi ho) -> f hi ho createGCF :: Drawable -> GCId -> GCAttributeList -> (GCId -> F a b) -> F a b wCreateGCF :: GCId -> GCAttributeList -> (GCId -> F a b) -> F a b pmCreateGCF :: PixmapId -> GCId -> GCAttributeList -> (GCId -> F a b) -> F a b convGCattrsK :: FudgetIO f => [GCAttributes ColorName FontName] -> ([GCAttributes Pixel FontId] -> f hi ho) -> f hi ho class FontGen a tryConvFontK :: (FontGen a, FudgetIO f) => a -> Cont (f i o) (Maybe FontData) convFontListK :: (FontGen a, FudgetIO f) => [a] -> Cont (f i o) (Maybe FontData) class ColorGen a tryConvColorK :: (ColorGen a, FudgetIO f) => a -> Cont (f i o) (Maybe Pixel) convColorListK :: (ColorGen a, FudgetIO f) => [a] -> Cont (f i o) (Maybe Pixel) data FontSpec FontSpeci :: a -> FontSpec data ColorSpec ColorSpec :: a -> ColorSpec data FontData FID :: FontStruct -> FontData FS :: FontStruct -> FontData fdFontId :: FontData -> FontId fontdata2struct :: FontData -> (FontStruct -> t) -> t colorSpec :: (Show a, ColorGen a) => a -> ColorSpec fontSpec :: (Show a, FontGen a) => a -> FontSpec convColorK :: (ColorGen a, FudgetIO f, Show a) => a -> (Pixel -> f i o) -> f i o convFontK :: (FontGen a, FudgetIO f, Show a) => a -> (FontData -> f i o) -> f i o convList :: (t -> (Maybe a -> b) -> b) -> [t] -> (Maybe a -> b) -> b getFontData :: FudgetIO f => [Char] -> Cont (f i o) (Maybe FontData) tryConvColorRGBK :: FudgetIO f => RGB -> (Maybe Pixel -> f hi ho) -> f hi ho convGCSpecK :: (ColorGen a, FudgetIO f, FontGen a, Show a, Show a) => FontData -> [GCAttributes a a] -> ([GCAttributes Pixel FontId] -> FontData -> f i o) -> f i o gcBgA :: c -> [GCAttributes c FontSpec] gcFgA :: c -> [GCAttributes c FontSpec] gcFontA :: f -> [GCAttributes ColorSpec f] usefontstructs :: [Char] type Cont c a = (a -> c) -> c data GCtx GC :: GCId -> FontData -> GCtx gctx2gc :: GCtx -> GCId rootGCtx :: GCtx data GCSpec SoftGC :: [GCAttributes ColorSpec FontSpec] -> GCSpec HardGC :: GCtx -> GCSpec createGCtx :: (ColorGen a1, FudgetIO f, FontGen a2, Show a1, Show a2) => Drawable -> GCtx -> [GCAttributes a1 a2] -> (GCtx -> f i o) -> f i o wCreateGCtx :: (ColorGen a1, FudgetIO f, FontGen a2, Show a1, Show a2) => GCtx -> [GCAttributes a1 a2] -> (GCtx -> f i o) -> f i o pmCreateGCtx :: (ColorGen a1, FudgetIO f, FontGen a2, Show a1, Show a2) => PixmapId -> GCtx -> [GCAttributes a1 a2] -> (GCtx -> f i o) -> f i o class Graphic a measureGraphicK :: (Graphic a, FudgetIO k) => a -> GCtx -> Cont (k i o) MeasuredGraphics measureGraphicListK :: (Graphic a, FudgetIO k) => [a] -> GCtx -> Cont (k i o) MeasuredGraphics measureText :: (FudgetIO f, Show a) => a -> GCtx -> (MeasuredGraphics -> f hi ho) -> f hi ho data MeasuredGraphics emptyMG :: Size -> MeasuredGraphics emptyMG' :: LayoutRequest -> MeasuredGraphics data GCtx type Cont c a = (a -> c) -> c data FixedDrawing FixD :: Size -> [DrawCommand] -> FixedDrawing data FixedColorDrawing FixCD :: Size -> [(GCId, [DrawCommand])] -> FixedColorDrawing newtype ImageString ImageString :: String -> ImageString data FlexibleDrawing FlexD :: Size -> Bool -> Bool -> (Rect -> [DrawCommand]) -> FlexibleDrawing filler :: Bool -> Bool -> Int -> FlexibleDrawing hFiller :: Int -> FlexibleDrawing vFiller :: Int -> FlexibleDrawing flex' :: Size -> (Rect -> [DrawCommand]) -> FlexibleDrawing flex :: (Rect -> [DrawCommand]) -> FlexibleDrawing blank' :: Size -> FlexibleDrawing blank :: FlexibleDrawing frame' :: Size -> FlexibleDrawing frame :: FlexibleDrawing ellipse :: FlexibleDrawing ellipse' :: Size -> FlexibleDrawing arc :: Int -> Int -> FlexibleDrawing arc' :: Size -> Int -> Int -> FlexibleDrawing filledEllipse :: FlexibleDrawing filledEllipse' :: Size -> FlexibleDrawing filledarc :: Int -> Int -> FlexibleDrawing filledarc' :: Size -> Int -> Int -> FlexibleDrawing drawarc :: Int -> Int -> Rect -> [DrawCommand] fillarc :: Int -> Int -> Rect -> [DrawCommand] rpar :: FlexibleDrawing lpar :: FlexibleDrawing doubleleft :: Rect -> Rect doubleright :: Rect -> Rect lbrack :: FlexibleDrawing rbrack :: FlexibleDrawing bracks :: (FlexibleDrawing, FlexibleDrawing) corners :: Rect -> (Point, Point, Point, Point) lbrace :: FlexibleDrawing rbrace :: FlexibleDrawing braces :: (FlexibleDrawing, FlexibleDrawing) bFlex2 :: (Rect -> [DrawCommand]) -> FlexibleDrawing bFlex :: (Rect -> [DrawCommand]) -> FlexibleDrawing bFlex' :: Size -> (Rect -> [DrawCommand]) -> FlexibleDrawing rAngleBracket :: FlexibleDrawing lAngleBracket :: FlexibleDrawing abPoints :: Rect -> [Point] abPoints' :: Rect -> [Point] triangleUp :: FlexibleDrawing filledTriangleUp :: FlexibleDrawing triangleDown :: FlexibleDrawing filledTriangleDown :: FlexibleDrawing defaultTriangleSize :: Point drawpoly :: [Point] -> [DrawCommand] fillpoly :: [Point] -> [DrawCommand] shrink :: Rect -> Rect trianglePoints' :: Rect -> [Point] trianglePoints :: Rect -> [Point] vMirror :: (Rect -> [Point]) -> Rect -> [Point] hMirror :: (Rect -> [Point]) -> Rect -> [Point] padFD :: Int -> FlexibleDrawing -> FlexibleDrawing data BitmapFile BitmapFile :: String -> BitmapFile bitmapFromData :: FudgetIO f => BitmapData -> (BitmapReturn -> f hi ho) -> f hi ho readBitmapFile :: FudgetIO f => FilePath -> (BitmapReturn -> f hi ho) -> f hi ho createPixmap :: FudgetIO f => Size -> Depth -> (PixmapId -> f hi ho) -> f hi ho data PixmapImage PixmapImage :: Size -> PixmapId -> PixmapImage class PixmapGen a convToPixmapK :: (PixmapGen a, FudgetIO c) => a -> Cont (c i o) PixmapImage measureImageK :: (PixmapGen a, FudgetIO c) => a -> GCtx -> (MeasuredGraphics -> c i o) -> c i o data Drawing lbl leaf AtomicD :: leaf -> Drawing lbl leaf LabelD :: lbl -> Drawing lbl leaf -> Drawing lbl leaf AttribD :: GCSpec -> Drawing lbl leaf -> Drawing lbl leaf SpacedD :: Spacer -> Drawing lbl leaf -> Drawing lbl leaf PlacedD :: Placer -> Drawing lbl leaf -> Drawing lbl leaf -- | Int=how many visible components ComposedD :: Int -> [Drawing lbl leaf] -> Drawing lbl leaf CreateHardAttribD :: GCtx -> [GCAttributes ColorSpec FontSpec] -> (GCtx -> Drawing lbl leaf) -> Drawing lbl leaf labelD :: lbl -> Drawing lbl leaf -> Drawing lbl leaf placedD :: Placer -> Drawing lbl leaf -> Drawing lbl leaf atomicD :: leaf -> Drawing lbl leaf type DPath = [Int] up :: DPath -> DPath data GCSpec boxVisibleD :: Int -> [Drawing lbl leaf] -> Drawing lbl leaf boxD :: [Drawing lbl leaf] -> Drawing lbl leaf stackD :: [Drawing lbl leaf] -> Drawing lbl leaf vertD :: Drawing lbl leaf -> Drawing lbl leaf vertD' :: Distance -> Drawing lbl leaf -> Drawing lbl leaf horizD :: Drawing lbl leaf -> Drawing lbl leaf horizD' :: Distance -> Drawing lbl leaf -> Drawing lbl leaf vboxD :: [Drawing lbl leaf] -> Drawing lbl leaf hboxD :: [Drawing lbl leaf] -> Drawing lbl leaf vboxD' :: Distance -> [Drawing lbl leaf] -> Drawing lbl leaf hboxD' :: Distance -> [Drawing lbl leaf] -> Drawing lbl leaf vertlD :: Drawing lbl leaf -> Drawing lbl leaf vertlD' :: Distance -> Drawing lbl leaf -> Drawing lbl leaf vboxlD :: [Drawing lbl leaf] -> Drawing lbl leaf vboxlD' :: Distance -> [Drawing lbl leaf] -> Drawing lbl leaf horizcD :: Drawing lbl leaf -> Drawing lbl leaf horizcD' :: Distance -> Drawing lbl leaf -> Drawing lbl leaf hboxcD :: [Drawing lbl leaf] -> Drawing lbl leaf hboxcD' :: Distance -> [Drawing lbl leaf] -> Drawing lbl leaf tableD :: Int -> [Drawing lbl leaf] -> Drawing lbl leaf tableD' :: Distance -> Int -> [Drawing lbl leaf] -> Drawing lbl leaf matrixD :: Int -> [Drawing lbl leaf] -> Drawing lbl leaf matrixD' :: Distance -> Int -> [Drawing lbl leaf] -> Drawing lbl leaf westD :: Drawing lbl leaf -> Drawing lbl leaf northwestD :: Drawing lbl leaf -> Drawing lbl leaf padD :: Distance -> Drawing lbl leaf -> Drawing lbl leaf fontD :: (Show a, FontGen a) => a -> Drawing lbl leaf -> Drawing lbl leaf fgD :: (Show a, ColorGen a) => a -> Drawing lbl leaf -> Drawing lbl leaf bgD :: (Show a, ColorGen a) => a -> Drawing lbl leaf -> Drawing lbl leaf fatD :: Drawing lbl leaf -> Drawing lbl leaf attribD :: GCSpec -> Drawing lbl leaf -> Drawing lbl leaf softAttribD :: [GCAttributes ColorSpec FontSpec] -> Drawing lbl leaf -> Drawing lbl leaf hardAttribD :: GCtx -> Drawing lbl leaf -> Drawing lbl leaf spacedD :: Spacer -> Drawing lbl leaf -> Drawing lbl leaf data Gfx G :: a -> Gfx g :: Graphic a => a -> Drawing lbl Gfx filledRectD :: Size -> Drawing lbl Gfx rectD :: Size -> Drawing lbl Gfx blankD :: Size -> Drawing lbl Gfx holeD :: Drawing lbl Gfx drawingPart :: Drawing lbl leaf -> [Int] -> Drawing lbl leaf maybeDrawingPart :: Drawing lbl leaf -> [Int] -> Maybe (Drawing lbl leaf) drawingAnnotPart :: Drawing t leaf -> DPath -> [Int] drawingAnnotPart' :: (t -> Bool) -> Drawing t leaf -> DPath -> [Int] isVisibleDrawingPart :: Drawing lbl leaf -> [Int] -> Bool visibleAncestor :: Drawing lbl leaf -> [Int] -> [Int] replacePart :: Drawing lbl leaf -> [Int] -> Drawing lbl leaf -> Drawing lbl leaf updatePart :: Drawing lbl leaf -> [Int] -> (Drawing lbl leaf -> Drawing lbl leaf) -> Drawing lbl leaf mapLabelDrawing :: (t -> lbl) -> Drawing t leaf -> Drawing lbl leaf mapLeafDrawing :: (t -> leaf) -> Drawing lbl t -> Drawing lbl leaf annotChildren :: Drawing a d -> [(DPath, Drawing a d)] annotChildren' :: (a -> Bool) -> Drawing a d -> [(DPath, Drawing a d)] drawingAnnots :: Drawing a leaf -> [(DPath, a)] extractParts :: Drawing lbl leaf -> (Drawing lbl leaf -> Maybe a) -> [(DPath, a)] deletePart :: Drawing lbl leaf -> [Int] -> Drawing lbl leaf groupParts :: Int -> Int -> Drawing lbl leaf -> Drawing lbl leaf ungroupParts :: Int -> Drawing lbl leaf -> Drawing lbl leaf graphic2PixmapImage :: (Graphic a, FudgetIO k) => a -> GCtx -> (PixmapImage -> k i o) -> k i o data PixmapImage PixmapImage :: Size -> PixmapId -> PixmapImage getWindowRootPoint :: Cont (K a b) Point getWindowId :: Cont (K a b) Window type DPath = [Int] up :: DPath -> DPath data MeasuredGraphics LeafM :: LayoutRequest -> (Rect -> [(GCId, [DrawCommand])]) -> MeasuredGraphics SpacedM :: Spacer -> MeasuredGraphics -> MeasuredGraphics PlacedM :: Placer -> MeasuredGraphics -> MeasuredGraphics MarkM :: GCtx -> MeasuredGraphics -> MeasuredGraphics ComposedM :: [MeasuredGraphics] -> MeasuredGraphics compileMG :: (Size -> Size) -> MeasuredGraphics -> (CompiledGraphics, LayoutRequest) emptyMG :: Size -> MeasuredGraphics emptyMG' :: LayoutRequest -> MeasuredGraphics measureString :: FudgetIO f => String -> GCtx -> (MeasuredGraphics -> f hi ho) -> f hi ho measureImageString :: FudgetIO f => String -> GCtx -> (MeasuredGraphics -> f hi ho) -> f hi ho data CompiledGraphics CGraphics :: Rect -> Cursor -> [(GCId, [DrawCommand])] -> [CompiledGraphics] -> CompiledGraphics CGMark :: CompiledGraphics -> CompiledGraphics type Cursor = Bool cgLeaf :: Rect -> (Rect -> [(GCId, [DrawCommand])]) -> CompiledGraphics cgMark :: CompiledGraphics -> CompiledGraphics cgCompose :: Rect -> [CompiledGraphics] -> CompiledGraphics cgrect :: CompiledGraphics -> Rect cgsize :: CompiledGraphics -> Size addcursor :: CompiledGraphics -> CompiledGraphics removecursor :: CompiledGraphics -> CompiledGraphics hascursor :: CompiledGraphics -> Cursor cgpart :: CompiledGraphics -> [Int] -> CompiledGraphics cgreplace :: CompiledGraphics -> [Int] -> CompiledGraphics -> CompiledGraphics cgupdate :: CompiledGraphics -> [Int] -> (CompiledGraphics -> CompiledGraphics) -> CompiledGraphics cgcursors :: CompiledGraphics -> [[Int]] cgGroup :: Int -> Int -> CompiledGraphics -> CompiledGraphics cgUngroup :: Int -> CompiledGraphics -> CompiledGraphics allcacheF :: F i o -> F i o shapeGroupMgr :: F a b -> F a b doubleClickF :: Time -> F a b -> F a b data ButtonF lbl buttonF :: Graphic lbl => lbl -> F Click Click buttonF' :: Graphic lbl => Customiser (ButtonF lbl) -> lbl -> F Click Click buttonF'' :: Graphic lbl => Customiser (ButtonF lbl) -> lbl -> PF (ButtonF lbl) Click Click setLabel :: lbl -> Customiser (ButtonF lbl) data RadioGroupF radioGroupF :: (Graphic lbl, Eq alt) => [(alt, lbl)] -> alt -> F alt alt radioGroupF' :: (Graphic lbl, Eq alt) => Customiser RadioGroupF -> [(alt, lbl)] -> alt -> F alt alt setPlacer :: Placer -> Customiser RadioGroupF class HasLabelInside xxx setLabelInside :: HasLabelInside xxx => Bool -> Customiser xxx getLabelInside :: HasLabelInside xxx => xxx -> Bool getLabelInsideMaybe :: HasLabelInside xxx => xxx -> Maybe Bool data ToggleButtonF toggleButtonF :: Graphic lbl => lbl -> F Bool Bool toggleButtonF' :: Graphic lbl => Customiser ToggleButtonF -> lbl -> F Bool Bool border3dF :: Bool -> Int -> F a b -> F (Either Bool a) b buttonBorderF :: Int -> F a b -> F (Either Bool a) b oldButtonF :: (Graphic e, FontGen p, Show p, Show p, ColorGen p) => Alignment -> Distance -> p -> ColorSpec -> p -> [(ModState, KeySym)] -> e -> F e Click buttonGroupF :: [(ModState, KeySym)] -> F (Either BMevents b) c -> F b c menuButtonGroupF :: F (Either BMevents b) c -> F b c data BMevents BMNormal :: BMevents BMInverted :: BMevents BMClick :: BMevents pushButtonF :: [(ModState, KeySym)] -> F a b -> F a (Either b Click) pushButtonF' :: Int -> [(ModState, KeySym)] -> F a b -> F a (Either b Click) -- | Button clicks data Click Click :: Click quitButtonF :: F Click b quitIdF :: (ho -> Bool) -> F ho ho quitF :: F ans ho radioF :: (Eq d, Graphic p1, Show p, FontGen p) => Placer -> Bool -> p -> [(d, p1)] -> d -> F d d oldRadioGroupF :: (Eq d, Graphic p1, Show p, FontGen p) => Placer -> Bool -> p -> [d] -> d -> (d -> p1) -> F d d toggleF :: Bool -> [(ModState, KeySym)] -> F a b -> F (Either Bool a) (Either Bool b) oldToggleButtonF :: (Graphic p, Show p, FontGen p) => p -> [(ModState, KeySym)] -> p -> F Bool Bool oldToggleButtonF' :: (Graphic p, Show p, FontGen p) => Bool -> p -> [(ModState, KeySym)] -> p -> F Bool Bool toggleGroupF :: [(ModState, KeySym)] -> F (Either (Either Bool Bool) a) b -> F (Either Bool a) (Either Bool b) data GraphicsF gfx setCursorSolid :: Bool -> Customiser (GraphicsF gfx) setGfxEventMask :: [GfxEventMask] -> Customiser (GraphicsF gfx) setAdjustSize :: Bool -> Customiser (GraphicsF gfx) setCursor :: Int -> Customiser (GraphicsF gfx) setDoubleBuffer :: Bool -> Customiser (GraphicsF gfx) graphicsF :: Graphic gfx => F (GfxFCmd gfx) GfxFEvent graphicsF' :: Graphic gfx => Customiser (GraphicsF gfx) -> F (GfxFCmd gfx) GfxFEvent graphicsGroupF :: Graphic gfx => F i o -> F (Either (GfxFCmd gfx) i) (Either GfxFEvent o) graphicsGroupF' :: Graphic gfx => Customiser (GraphicsF gfx) -> F i o -> F (Either (GfxFCmd gfx) i) (Either GfxFEvent o) graphicsDispGroupF :: Graphic gfx => F i o -> F (Either (GfxFCmd gfx) i) (Either GfxFEvent o) graphicsDispGroupF' :: Graphic gfx => (GraphicsF gfx -> GraphicsF gfx) -> F i o -> F (Either (GfxFCmd gfx) i) (Either GfxFEvent o) graphicsLabelF :: Graphic p => p -> F e d graphicsLabelF' :: Graphic p => (GraphicsF p -> GraphicsF p) -> p -> F e d graphicsDispF :: Graphic a => F (GfxFCmd a) GfxFEvent graphicsDispF' :: Graphic gfx => Customiser (GraphicsF gfx) -> F (GfxFCmd gfx) GfxFEvent data GfxEventMask GfxButtonMask :: GfxEventMask GfxMotionMask :: GfxEventMask GfxDragMask :: GfxEventMask GfxKeyMask :: GfxEventMask data GfxChange gfx GfxReplace :: (Bool, Maybe gfx) -> GfxChange gfx GfxGroup :: Int -> Int -> GfxChange gfx GfxUngroup :: Int -> GfxChange gfx data GfxCommand path gfx ChangeGfx :: [(path, GfxChange gfx)] -> GfxCommand path gfx ChangeGfxBg :: ColorSpec -> GfxCommand path gfx ChangeGfxBgPixmap :: PixmapId -> Bool -> GfxCommand path gfx ChangeGfxBgGfx :: bg -> GfxCommand path gfx ChangeGfxCursor :: CursorId -> GfxCommand path gfx ChangeGfxFontCursor :: Int -> GfxCommand path gfx ShowGfx :: path -> (Maybe Alignment, Maybe Alignment) -> GfxCommand path gfx BellGfx :: Int -> GfxCommand path gfx GetGfxPlaces :: [path] -> GfxCommand path gfx data GfxEvent path GfxButtonEvent :: Time -> ModState -> Pressed -> Button -> [(path, (Point, Rect))] -> GfxEvent path [gfxTime] :: GfxEvent path -> Time [gfxState] :: GfxEvent path -> ModState [gfxType] :: GfxEvent path -> Pressed [gfxButton] :: GfxEvent path -> Button [gfxPaths] :: GfxEvent path -> [(path, (Point, Rect))] GfxMotionEvent :: Time -> ModState -> [(path, (Point, Rect))] -> GfxEvent path [gfxTime] :: GfxEvent path -> Time [gfxState] :: GfxEvent path -> ModState [gfxPaths] :: GfxEvent path -> [(path, (Point, Rect))] GfxKeyEvent :: Time -> ModState -> KeySym -> KeyLookup -> GfxEvent path [gfxTime] :: GfxEvent path -> Time [gfxState] :: GfxEvent path -> ModState [gfxKeySym] :: GfxEvent path -> KeySym [gfxKeyLookup] :: GfxEvent path -> KeyLookup GfxFocusEvent :: Bool -> GfxEvent path [gfxHasFocus] :: GfxEvent path -> Bool GfxPlaces :: [Rect] -> GfxEvent path GfxResized :: Size -> GfxEvent path type GfxFCmd a = GfxCommand DPath a type GfxFEvent = GfxEvent DPath replaceGfx :: path -> gfx -> GfxCommand path gfx replaceAllGfx :: gfx -> GfxCommand [a] gfx showGfx :: path -> GfxCommand path gfx highlightGfx :: path -> Bool -> GfxCommand path gfx hyperGraphicsF :: (Eq d, Graphic leaf) => Drawing d leaf -> F (Either (Drawing d leaf) (d, Drawing d leaf)) d hyperGraphicsF' :: (Eq d, Graphic leaf) => (GraphicsF (Drawing d leaf) -> GraphicsF (Drawing d leaf)) -> Drawing d leaf -> F (Either (Drawing d leaf) (d, Drawing d leaf)) d menuButtonF :: Graphic lbl => FontName -> lbl -> F lbl Click menuLabelF :: Graphic lbl => FontName -> lbl -> F (Either Bool lbl) (GfxEvent DPath) simpleMenuF :: (Eq b, Graphic c, Graphic a) => FontName -> a -> [b] -> (b -> c) -> F a b menuAltsF :: (Eq d, Graphic b) => FontName -> [d] -> (d -> b) -> F PopupMenu d menuF :: (Graphic mlbl, Graphic albl) => mlbl -> [(alt, albl)] -> F alt alt oldMenuF :: (Graphic c, Eq b, Graphic a) => FontName -> a -> [(b, [(ModState, KeySym)])] -> (b -> c) -> F a b buttonMenuF :: Graphic b => LayoutDir -> FontName -> b -> [(a, [(ModState, KeySym)])] -> F (Either MenuState b) a -> F (Either MenuState (Either b b)) (Either MenuState a) buttonMenuF' :: Graphic b => Bool -> LayoutDir -> FontName -> b -> [(a, [(ModState, KeySym)])] -> F (Either MenuState b) a -> F (Either MenuState (Either b b)) (Either MenuState a) grabberF :: [(b, [(ModState, KeySym)])] -> F (Either a b) (Either MenuState d) -> F b d data MenuState menuDown :: MenuState data EqSnd a b EqSnd :: a -> b -> EqSnd a b fstEqSnd :: EqSnd a b -> a sndEqSnd :: EqSnd a b -> b toEqSnd :: [(a, b)] -> [EqSnd a b] data PopupMenu PopupMenu :: Point -> XEvent -> PopupMenu PopupMenuStick :: PopupMenu PopdownMenu :: PopupMenu menuPopupF :: F b d -> F (Either PopupMenu b) d menuPopupF' :: Bool -> F b d -> F (Either PopupMenu b) d inputPopupOptF :: String -> InF a b -> Maybe b -> F (Maybe String, Maybe a) ((Maybe String, Maybe a), Maybe b) inputPopupF :: String -> InF a c -> Maybe c -> F (Maybe String, Maybe a) ((Maybe String, Maybe a), c) passwdPopupOptF :: String -> F (Maybe String, Maybe String) ((Maybe String, Maybe String), Maybe String) passwdPopupF :: String -> F (Maybe String, Maybe String) ((Maybe String, Maybe String), String) stringPopupOptF :: String -> F (Maybe String, Maybe String) ((Maybe String, Maybe String), Maybe String) stringPopupF :: String -> F (Maybe String, Maybe String) ((Maybe String, Maybe String), String) confirmPopupF :: Graphic msg => F msg (msg, ConfirmMsg) -- | Output from dialog popups with OK and Cancel buttons data ConfirmMsg Confirm :: ConfirmMsg Cancel :: ConfirmMsg oldConfirmPopupF :: F String (String, ConfirmMsg) oldMessagePopupF :: F String (String, Click) messagePopupF :: Graphic msg => F msg (msg, Click) popupMenuF :: (Eq b, Graphic b) => [(a, b)] -> F c b -> F (Either [(a, b)] c) (Either a b) oldPopupMenuF :: (Eq b, Graphic b, Foldable t) => ColorName -> Bool -> FontName -> Button -> ModState -> t (ModState, KeySym) -> [(b, b)] -> (b -> b) -> F c d -> F (Either [(b, b)] c) (Either b d) oldPopupMenuF' :: forall {t} {b} {b} {b} {c} {d} {a} {a} {b}. (Eq b, Graphic b, Foldable t) => ColorName -> Bool -> FontName -> Button -> ModState -> t (ModState, KeySym) -> [(b, b)] -> (b -> b) -> F c d -> F (Either (Either a a) (Either (Either [(b, b)] PopupMenu) c)) (Either (Either (Either a PopupMenu) a) (Either b d)) oldFilePickF :: F FilePath (InputMsg String) smallPickListF :: (d -> String) -> F [d] d labRightOfF :: Graphic p => p -> F c d -> F c d labLeftOfF :: Graphic p => p -> F c d -> F c d labBelowF :: Graphic p => p -> F c d -> F c d labAboveF :: Graphic p => p -> F c d -> F c d tieLabelF :: Graphic p => Orientation -> Alignment -> p -> F c d -> F c d setSpacer :: Spacer -> Customiser (DisplayF a) data DisplayF a displayF :: Graphic g => F g void displayF' :: Graphic a => Customiser (DisplayF a) -> F a b intDispF :: F Int b intDispF' :: Customiser (DisplayF Int) -> F Int b labelF :: Graphic a => a -> F a b labelF' :: Graphic a => Customiser (DisplayF a) -> a -> F a b stringF :: F String (InputMsg String) stringF' :: Customiser StringF -> F String (InputMsg String) passwdF :: F String (InputMsg String) passwdF' :: (StringF -> StringF) -> F String (InputMsg String) passwdF'' :: (StringF -> StringF) -> PF StringF String (InputMsg String) intF :: F Int (InputMsg Int) intF' :: Customiser StringF -> F Int (InputMsg Int) intF'' :: Customiser StringF -> PF StringF Int (InputMsg Int) stringInputF :: F String String intInputF :: F Int Int passwdInputF :: F String String stringInputF' :: Customiser StringF -> F String String intInputF' :: Customiser StringF -> F Int Int passwdInputF' :: (StringF -> StringF) -> F String String moreF :: F [String] (InputMsg (Int, String)) moreF' :: Customiser TextF -> F [String] (InputMsg (Int, String)) pickListF :: (a -> String) -> F (PickListRequest a) (InputMsg (Int, a)) pickListF' :: Customiser TextF -> (a -> String) -> F (PickListRequest a) (InputMsg (Int, a)) type PickListRequest a = ListRequest a moreFileShellF :: F String (InputMsg (Int, String)) moreShellF :: String -> F [String] (InputMsg (Int, String)) moreShellF' :: Customiser TextF -> String -> F [String] (InputMsg (Int, String)) moreFileF :: F String (InputMsg (Int, String)) stringF'' :: Customiser StringF -> PF StringF String (InputMsg String) data StringF getAllowedChar :: StringF -> Char -> Bool setAllowedChar :: (Char -> Bool) -> Customiser StringF getShowString :: StringF -> String -> String setShowString :: (String -> String) -> Customiser StringF setInitStringSize :: String -> Customiser StringF getCursorPos :: StringF -> Int setCursorPos :: Int -> Customiser StringF getInitString :: StringF -> String setInitString :: String -> Customiser StringF generalStringF :: Int -> [Char] -> Sizing -> ColorSpec -> ColorSpec -> FontSpec -> (Char -> Bool) -> (String -> String) -> Int -> [Char] -> F (Either (StringF -> StringF) [Char]) (InputMsg [Char]) oldIntF :: Int -> InF Int Int oldPasswdF :: String -> InF String String oldStringF :: String -> InF String String bdStringF :: Int -> Sizing -> FontSpec -> [Char] -> F [Char] (InputMsg [Char]) oldGeneralStringF :: Int -> Sizing -> FontSpec -> (Char -> Bool) -> (String -> String) -> [Char] -> F [Char] (InputMsg [Char]) textF :: F TextRequest (InputMsg (Int, String)) textF' :: Customiser TextF -> F TextRequest (InputMsg (Int, String)) textF'' :: Customiser TextF -> PF TextF TextRequest (InputMsg (Int, String)) data TextF type TextRequest = ListRequest String terminalF :: FontName -> Int -> Int -> F String a cmdTerminalF :: FontName -> Int -> Int -> F TerminalCmd a data TerminalCmd TermText :: String -> TerminalCmd TermAppend :: String -> TerminalCmd TermClear :: TerminalCmd onOffDispF :: Bool -> F Bool nothing offColor :: [Char] onColor :: [Char] gcWarningF :: F a b bellF :: F ho ho data EditStop EditStopFn :: EditStopFn -> EditStop EditPoint :: Point -> EditStop EditLine :: EDirection -> EditStop editF :: FontSpec -> F EditCmd EditEvt data EditEvt EditText :: String -> EditEvt EditField :: (String, String, String) -> EditEvt EditCursor :: Rect -> EditEvt EditChange :: InputMsg String -> EditEvt data EditCmd EditShowCursor :: Bool -> EditCmd EditMove :: EditStop -> IsSelect -> EditCmd EditReplace :: String -> EditCmd EditGetText :: EditCmd EditGetField :: EditCmd EditGetSelection :: EditCmd EditUndo :: EditCmd EditRedo :: EditCmd oldEditorF :: FontSpec -> F EditCmd EditEvt selectall :: [EditCmd] loadEditor :: String -> [EditCmd] setEditorCursorPos :: (Int, Int) -> [EditCmd] data EDirection ELeft :: EDirection ERight :: EDirection newline :: Char type EditStopFn = String -> String -> EditStopChoice data EditStopChoice EdGo :: EDirection -> EditStopFn -> EditStopChoice EdStop :: EditStopChoice type IsSelect = Bool data EditorF inputEditorF :: F String (InputMsg String) inputEditorF' :: Customiser EditorF -> F String (InputMsg String) editorF :: F EditCmd EditEvt editorF' :: Customiser EditorF -> F EditCmd EditEvt (-==-) :: SP a1 b -> SP a2 a1 -> SP a2 b infixr 8 -==- (-+-) :: SP a1 a2 -> SP a3 b -> SP (Either a1 a3) (Either a2 b) infixr 8 -+- (-*-) :: SP a b -> SP a b -> SP a b infixr 8 -*- (>+<) :: F a b -> F c d -> F (Either a c) (Either b d) infixl 5 >+< (>*<) :: F c ho -> F c ho -> F c ho infixl 5 >*< (>==<) :: F a1 b -> F a2 a1 -> F a2 b infixr 4 >==< (>^^=<) :: SP a b -> F e a -> F e b infixr 7 >^^=< (>=^^<) :: F c d -> SP e c -> F e d infixl 6 >=^^< (>^=<) :: (a -> b) -> F e a -> F e b infixr 7 >^=< (>=^<) :: F c d -> (e -> c) -> F e d infixl 6 >=^< (>..=<) :: SP TCommand TCommand -> F hi ho -> F hi ho infixr 5 >..=< (>=..<) :: F hi ho -> SP TEvent TEvent -> F hi ho infixl 6 >=..< (>.=<) :: (TCommand -> TCommand) -> F hi ho -> F hi ho infixr 6 >.=< (>=.<) :: F hi ho -> (TEvent -> TEvent) -> F hi ho infixl 6 >=.< (>#==<) :: (F d f, Orientation) -> F e d -> F e f infixl 9 >#==< (>#+<) :: (F a b, Orientation) -> F c d -> F (Either a c) (Either b d) infixl 9 >#+< (>==#<) :: F a1 b -> (Distance, Orientation, F a a1) -> F a b infixl 9 >==#< (>+#<) :: F a b -> (Distance, Orientation, F c d) -> F (Either a c) (Either b d) infixl 9 >+#< changeBackPixel :: (Show a, ColorGen a) => a -> K i o -> K i o changeGetBackPixel :: (Show a, ColorGen a) => a -> (Pixel -> K i o) -> K i o getWindowPropertyK :: Int -> Atom -> Bool -> Atom -> Cont (K b c) (Atom, Int, Int, Int, String) getGeometryK :: Cont (K b c) (Rect, Int, Int) changeBg :: ColorName -> K a b -> K a b darkGreyBgK :: K hi ho -> K hi ho lightGreyBgK :: K hi ho -> K hi ho greyBgK :: K hi ho -> K hi ho knobBgK :: K hi ho -> K hi ho changeBackPixmap :: (ColorGen a, ColorGen a, Show a, Show a) => a -> a -> Size -> [DrawCommand] -> K i o -> K i o internAtomK :: String -> Bool -> Cont (K b c) Atom internAtomF :: String -> Bool -> Cont (F b c) Atom internAtom :: FudgetIO f => String -> Bool -> (Atom -> f hi ho) -> f hi ho atomNameK :: Atom -> Cont (K b c) (Maybe String) atomNameF :: Atom -> Cont (F b c) (Maybe String) atomName :: FudgetIO f => Atom -> (Maybe String -> f hi ho) -> f hi ho parK :: K a b -> K a b -> K a b compK :: K a b -> K c d -> K (Either a c) (Either b d) queryPointerK :: Cont (K b c) (Bool, Point, Point, ModState) quitK :: (K (Either String Bool) a -> K (Either String Bool) a) -> K hi ho wmK :: Maybe (K (Either String Bool) c -> K (Either String Bool) c) -> K (Either String Bool) c exitK :: p -> K hi ho unmapWindowK :: K i o -> K i o reportK :: K hi () -> K hi () wmDeleteWindowK :: (Atom -> K b c) -> K b c dynShapeK :: [GCAttributes ColorName FontName] -> (Size -> [DrawCommand]) -> K c d -> K (Either (Size -> [DrawCommand]) c) (Either b d) shapeK :: (Size -> [DrawCommand]) -> K a b -> K a b type Drawer = DrawCommand -> FRequest type Fms' a b c = MapState a (KEvent b) [KCommand c] type MapState a b c = a -> b -> (a, c) simpleF :: String -> (Drawer -> Drawer -> Fms' a c d) -> Size -> a -> F c d simpleWindowF :: (Drawer -> Drawer -> Fms' a a b) -> Size -> Bool -> Bool -> a -> F a b simpleK :: (Drawer -> Drawer -> Fms' a b c) -> Size -> a -> K b c queryTreeK :: Cont (K b c) (Window, Window, [Window]) queryTreeF :: Cont (F b c) (Window, Window, [Window]) defaultRootWindowK :: Cont (K b c) Window defaultRootWindowF :: Cont (F b c) Window defaultVisual :: FudgetIO f => (Visual -> f hi ho) -> f hi ho mapstateK :: (t -> KEvent hi -> (t, [KCommand ho])) -> t -> K hi ho autoLayoutF :: F a b -> F a b autoLayoutF' :: Bool -> Sizing -> F a b -> F a b nowait :: Bool idP :: Placer revP :: Placer -> Placer mapP :: (Placer1 -> Placer1) -> Placer -> Placer flipP :: Placer -> Placer permuteP :: [Int] -> Placer -> Placer type Alignment = Double aTop :: Alignment aBottom :: Alignment aLeft :: Alignment aRight :: Alignment aCenter :: Alignment data Orientation Above :: Orientation Below :: Orientation RightOf :: Orientation LeftOf :: Orientation data LayoutDir Horizontal :: LayoutDir Vertical :: LayoutDir xc :: LayoutDir -> Point -> Int yc :: LayoutDir -> Point -> Int fixh :: LayoutDir -> LayoutRequest -> Bool fixv :: LayoutDir -> LayoutRequest -> Bool mkp :: LayoutDir -> Int -> Int -> Point vswap :: LayoutDir -> (b, b) -> (b, b) colinear :: LayoutDir -> p -> p -> p orthogonal :: LayoutDir -> p -> p -> p serCompLF :: (F d f, Orientation) -> F e d -> F e f compLF :: (F a b, Orientation) -> F c d -> F (Either a c) (Either b d) listLF :: Eq a => Placer -> [(a, F b c)] -> F (a, b) (a, c) untaggedListLF :: Placer -> [F a b] -> F (Int, a) b nullLF :: F hi ho holeF :: F hi ho holeF' :: Size -> F hi ho lF :: Int -> LayoutDirection -> Placer -> F a b -> F a b data LayoutDirection Forward :: LayoutDirection Backward :: LayoutDirection orientP :: Orientation -> Placer data LayoutRequest Layout :: Size -> Bool -> (Int -> Size) -> [Point] -> Maybe (Point, Size, Alignment) -> LayoutRequest [minsize] :: LayoutRequest -> Size [fixedh, fixedv] :: LayoutRequest -> Bool [wAdj, hAdj] :: LayoutRequest -> Int -> Size [refpoints] :: LayoutRequest -> [Point] [wantedPos] :: LayoutRequest -> Maybe (Point, Size, Alignment) plainLayout :: Size -> Bool -> Bool -> LayoutRequest refpLayout :: Size -> Bool -> Bool -> [Point] -> LayoutRequest data LayoutMessage LayoutRequest :: LayoutRequest -> LayoutMessage LayoutMakeVisible :: Rect -> (Maybe Alignment, Maybe Alignment) -> LayoutMessage LayoutScrollStep :: Int -> LayoutMessage LayoutName :: String -> LayoutMessage LayoutPlacer :: Placer -> LayoutMessage LayoutSpacer :: Spacer -> LayoutMessage LayoutHint :: LayoutHint -> LayoutMessage LayoutDoNow :: LayoutMessage LayoutDestroy :: LayoutMessage LayoutReplaceSpacer :: Spacer -> LayoutMessage LayoutReplacePlacer :: Placer -> LayoutMessage data LayoutResponse LayoutPlace :: Rect -> LayoutResponse LayoutSize :: Size -> LayoutResponse LayoutPos :: Point -> LayoutResponse layoutMakeVisible :: Rect -> LayoutMessage newtype Placer P :: Placer1 -> Placer type Placer1 = ([LayoutRequest] -> Placer2) type Placer2 = (LayoutRequest, Rect -> [Rect]) unP :: Placer -> Placer1 newtype Spacer S :: Spacer1 -> Spacer type Spacer1 = (LayoutRequest -> Spacer2) type Spacer2 = (LayoutRequest, Rect -> Rect) unS :: Spacer -> Spacer1 type LayoutHint = String mapLayoutSize :: (Size -> Size) -> LayoutRequest -> LayoutRequest mapAdjLayoutSize :: (Size -> Size) -> (Int -> Int) -> (Int -> Int) -> LayoutRequest -> LayoutRequest mapLayoutRefs :: (Point -> Point) -> LayoutRequest -> LayoutRequest flipReq :: LayoutRequest -> LayoutRequest flipWanted :: (Point, Point, c) -> (Point, Point, c) flipRect :: Rect -> Rect flipPoint :: Point -> Point linearP :: LayoutDir -> Distance -> Placer verticalP :: Placer horizontalP :: Placer horizontalP' :: Distance -> Placer verticalP' :: Distance -> Placer matrixP :: Int -> Placer matrixP' :: Int -> LayoutDir -> Distance -> Placer marginHVAlignLs :: Distance -> Alignment -> Alignment -> Layout -> Layout hvAlignLs :: Alignment -> Alignment -> Layout -> Layout marginLs :: Distance -> Layout -> Layout sepLs :: Size -> Layout -> Layout hBoxLs' :: Distance -> [Layout] -> Layout vBoxLs' :: Distance -> [Layout] -> Layout placeLs :: Placer -> [Layout] -> Layout spaceLs :: Spacer -> Layout -> Layout revLs :: Layout -> Layout permLs :: [Int] -> Layout -> Layout leafLs :: Layout layoutF :: Layout -> F a b -> F a b data Layout tableP :: Int -> Placer tableP' :: Int -> LayoutDir -> Distance -> Placer tryLayoutK :: LayoutRequest -> Cont (K b c) Size type LName = String placeNL :: Placer -> [NameLayout] -> NameLayout spaceNL :: Spacer -> NameLayout -> NameLayout modNL :: (Placer -> Placer) -> NameLayout -> NameLayout marginNL :: Distance -> NameLayout -> NameLayout sepNL :: Size -> NameLayout -> NameLayout hvAlignNL :: Alignment -> Alignment -> NameLayout -> NameLayout marginHVAlignNL :: Distance -> Alignment -> Alignment -> NameLayout -> NameLayout nullNL :: NameLayout hBoxNL :: [NameLayout] -> NameLayout hBoxNL' :: Distance -> [NameLayout] -> NameLayout vBoxNL :: [NameLayout] -> NameLayout vBoxNL' :: Distance -> [NameLayout] -> NameLayout leafNL :: LName -> NameLayout data NameLayout nameF :: LName -> F a b -> F a b listNF :: (Eq a, Show a) => [(a, F b c)] -> F (a, b) (a, c) nameLayoutF :: NameLayout -> F a b -> F a b userLayoutF :: F a b -> F (Either (Path, Rect) a) (Either (Path, LayoutMessage) b) autoP :: Placer autoP' :: Size -> Placer dynListLF :: Placer -> F (Int, DynFMsg a b) (Int, b) placerF :: Placer -> F a b -> F a b spacerF :: Spacer -> F a b -> F a b spacer1F :: Spacer -> F a b -> F a b hBoxF :: F a b -> F a b vBoxF :: F a b -> F a b revHBoxF :: F a b -> F a b revVBoxF :: F a b -> F a b matrixF :: Int -> F a b -> F a b tableF :: Int -> F a b -> F a b marginHVAlignF :: Distance -> Alignment -> Alignment -> F a b -> F a b alignF :: Size -> Size -> Alignment -> Alignment -> F a b -> F a b layoutModifierF :: (LayoutRequest -> LayoutRequest) -> F a b -> F a b noStretchF :: Bool -> Bool -> F a b -> F a b sepF :: Size -> F a b -> F a b marginF :: Distance -> F a b -> F a b type Distance = Int type Distance = Int hMarginS :: Distance -> Distance -> Spacer vMarginS :: Distance -> Distance -> Spacer hvMarginS :: Size -> Size -> Spacer center :: Point -> Rect -> Rect center' :: Point -> Size -> Rect -> Rect sepS :: Size -> Spacer marginS :: Distance -> Spacer leftS :: Spacer hCenterS :: Spacer rightS :: Spacer vAlignS :: Alignment -> Spacer topS :: Spacer vCenterS :: Spacer bottomS :: Spacer hvAlignS :: Alignment -> Alignment -> Spacer centerS :: Spacer hAlignS :: Alignment -> Spacer marginHVAlignS :: Distance -> Alignment -> Alignment -> Spacer spacerP :: Spacer -> Placer -> Placer flipS :: Spacer -> Spacer mapS :: (Spacer1 -> Spacer1) -> Spacer -> Spacer idS :: Spacer compS :: Spacer -> Spacer -> Spacer sizeS :: Size -> Spacer maxSizeS :: Size -> Spacer minSizeS :: Size -> Spacer resizeS :: (Size -> Size) -> Spacer noStretchS :: Bool -> Bool -> Spacer mapLayout :: (Size -> Bool -> Bool -> (Int -> Size) -> (Int -> Size) -> [Point] -> Maybe (Point, Size, Alignment) -> t) -> LayoutRequest -> t layoutModifierS :: (LayoutRequest -> LayoutRequest) -> Spacer overlayP :: Placer verticalLeftP :: Placer verticalLeftP' :: Distance -> Placer horizontalCenterP :: Placer horizontalCenterP' :: Distance -> Placer dynSpacerF :: F c ho -> F (Either Spacer c) ho dynPlacerF :: F c ho -> F (Either Placer c) ho data Sizing Static :: Sizing Growing :: Sizing Dynamic :: Sizing newSize :: Sizing -> Point -> Point -> Point ifSizeP :: (Size -> Size -> Bool) -> Placer -> Placer -> Placer ifSizeS :: (Size -> Size -> Bool) -> Spacer -> Spacer -> Spacer stretchCaseS :: ((Bool, Bool) -> Spacer) -> Spacer alignFixedS :: Alignment -> Alignment -> Spacer alignFixedS' :: Alignment -> Alignment -> Spacer alignP :: Placer alignP' :: Distance -> Placer horizontalAlignP :: Placer horizontalAlignP' :: Distance -> Placer refMiddleS :: Spacer refMiddleS' :: LayoutRequest -> (LayoutRequest, a -> a) refEdgesS :: Spacer middleRefs :: Point -> (Point, Point) noRefsS :: Spacer moveRefsS :: Point -> Spacer spacersP :: Placer -> [Spacer] -> Placer overlayAlignP :: Placer paragraphP :: Placer paragraphP' :: Size -> Placer paragraphP'' :: (Int -> Placer) -> Size -> Placer atLeastOne :: ([a], [a]) -> ([a], [a]) type Cont c a = (a -> c) -> c conts :: (a -> Cont c b) -> [a] -> Cont c [b] tryM :: Cont c (Maybe a) -> c -> Cont c a cmdContF :: FRequest -> (FResponse -> Maybe a) -> Cont (F b c) a cmdContK :: FRequest -> (FResponse -> Maybe a) -> Cont (K b c) a cmdContK' :: KCommand ho -> (KEvent hi -> Maybe a) -> Cont (K hi ho) a waitForSP :: (a -> Maybe t) -> (t -> SP a b) -> SP a b waitForK :: (KEvent hi -> Maybe a) -> Cont (K hi ho) a waitForF :: (a -> Maybe b) -> Cont (F a c) b waitForFu :: (KEvent hi -> Maybe ans) -> Cont (F hi ho) ans cmdContSP :: a -> (b -> Maybe c) -> Cont (SP b a) c tryGet :: Cont c (Maybe a) -> Cont c a -> Cont c a getLeftSP :: (t -> SP (Either t b) b) -> SP (Either t b) b getRightSP :: (t -> SP (Either a1 t) b) -> SP (Either a1 t) b fContWrap :: Cont (FSP hi ho) a -> Cont (F hi ho) a kContWrap :: Cont (KSP hi ho) a -> Cont (K hi ho) a dropSP :: (t -> Maybe t) -> (t -> SP t b) -> SP t b contMap :: StreamProcIO sp => (i -> (o -> sp i o) -> sp i o) -> sp i o openDisplay :: DisplayName -> Cont (F b c) Display spIO :: SP (Path, Response) (Path, Request) -> IO () tagEventsSP :: F i o -> SP (Path, Response) (Path, Request) adjustBorderWidth :: Int -> Point -> Point border_width :: Int getBWidth :: [WindowChanges] -> Maybe Int kernelF :: K a b -> F a b toKernel :: [a] -> [Message (Path, a) b] kernelTag :: Path autumnize :: [a] -> [a] windowKF :: (Rect -> FRequest) -> Bool -> Bool -> [FRequest] -> Maybe Rect -> K a b -> F c d -> F (Either a c) (Either b d) xrequest :: FudgetIO f => XRequest -> (XResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho xrequestF :: XRequest -> (XResponse -> Maybe a) -> Cont (F b c) a xrequestK :: XRequest -> (XResponse -> Maybe a) -> Cont (K b c) a type Cont c a = (a -> c) -> c xcommand :: FudgetIO f => XCommand -> f hi ho -> f hi ho xcommandK :: XCommand -> K i o -> K i o xcommandF :: XCommand -> F i o -> F i o xcommands :: FudgetIO f => [XCommand] -> f hi ho -> f hi ho xcommandsK :: [XCommand] -> K i o -> K i o xcommandsF :: [XCommand] -> F i o -> F i o select :: FudgetIO f => [Descriptor] -> f hi ho -> f hi ho sIOsucc :: FudgetIO f => SocketRequest -> f hi ho -> f hi ho sIOstr :: FudgetIO f => SocketRequest -> (String -> f hi ho) -> f hi ho sIOerr :: FudgetIO f => SocketRequest -> (IOError -> f hi ho) -> (SocketResponse -> f hi ho) -> f hi ho sIO :: FudgetIO f => SocketRequest -> (SocketResponse -> f hi ho) -> f hi ho type Cont c a = (a -> c) -> c data Fudlogue fudlogue :: F a b -> IO () fudlogue' :: Customiser Fudlogue -> F a b -> IO () class HasCache xxx setCache :: HasCache xxx => Bool -> Customiser xxx getCache :: HasCache xxx => xxx -> Bool getCacheMaybe :: HasCache xxx => xxx -> Maybe Bool class FudgetIO f waitForMsg :: FudgetIO f => (KEvent hi -> Maybe ans) -> Cont (f hi ho) ans putMsg :: FudgetIO f => KCommand ho -> f hi ho -> f hi ho putMsgs :: (Foldable t, FudgetIO f) => t (KCommand ho) -> f hi ho -> f hi ho putHigh :: FudgetIO f => ho -> f hi ho -> f hi ho putLow :: FudgetIO f => FRequest -> f hi ho -> f hi ho putLows :: (Foldable t, FudgetIO f) => t FRequest -> f hi ho -> f hi ho getHigh :: FudgetIO f => (ans -> f ans ho) -> f ans ho getLow :: FudgetIO f => (FResponse -> f hi ho) -> f hi ho cmdContMsg :: FudgetIO f => KCommand ho -> (KEvent hi -> Maybe ans) -> (ans -> f hi ho) -> f hi ho cmdContLow :: FudgetIO f => FRequest -> (FResponse -> Maybe ans) -> (ans -> f hi ho) -> f hi ho data Direction L :: Direction R :: Direction Dno :: Int -> Direction move :: Move a => Point -> a -> a moveDrawCommands :: [DrawCommand] -> Point -> [DrawCommand] moveDrawCommand :: DrawCommand -> Point -> DrawCommand newtype K hi ho K :: KSP hi ho -> K hi ho newtype F hi ho F :: FSP hi ho -> F hi ho type KSP hi ho = SP (KEvent hi) (KCommand ho) type FSP hi ho = SP (FEvent hi) (FCommand ho) type Fudget a b = F a b type KCommand a = Message FRequest a type FCommand a = Message TCommand a type KEvent a = Message FResponse a type FEvent a = Message TEvent a type Fa a b c d = SP (Message a c) (Message b d) type TCommand = (Path, FRequest) type TEvent = (Path, FResponse) kk :: KSP hi ho -> K hi ho ff :: FSP hi ho -> F hi ho unK :: K hi ho -> KSP hi ho unF :: F hi ho -> FSP hi ho data SP a b data FRequest data FResponse data Message a b Low :: a -> Message a b High :: b -> Message a b type Path = [Direction] data Direction data Message a b Low :: a -> Message a b High :: b -> Message a b isHigh :: Message a b -> Bool isLow :: Message a b -> Bool stripHigh :: Message a a -> Maybe a stripLow :: Message a b -> Maybe a mapMessage :: (t -> a) -> (t -> b) -> Message t t -> Message a b message :: (t -> t) -> (t -> t) -> Message t t -> t aLow :: (t -> a) -> Message t b -> Message a b aHigh :: (t -> b) -> Message a t -> Message a b pushMsg :: Functor f => Message (f a) (f a) -> f (Message a a) showPath :: Path -> String subPath :: Path -> Path -> Bool absPath :: Path -> Path -> Path path :: Path -> (Direction, Path) turn :: Direction -> Path -> Path here :: Path type Path = [Direction] data Direction L :: Direction R :: Direction Dno :: Int -> Direction data PopupMsg a Popup :: Point -> a -> PopupMsg a Popdown :: PopupMsg a -- | Button clicks data Click Click :: Click -- | Output from dialog popups with OK and Cancel buttons data ConfirmMsg Confirm :: ConfirmMsg Cancel :: ConfirmMsg toConfirm :: Either a b -> ConfirmMsg fromConfirm :: ConfirmMsg -> Either Click Click data InputMsg a InputChange :: a -> InputMsg a InputDone :: KeySym -> a -> InputMsg a inputMsg :: a -> InputMsg a inputChange :: a -> InputMsg a inputButtonKey :: KeySym inputLeaveKey :: KeySym stripInputMsg :: InputMsg a -> a tstInp :: (t -> t) -> InputMsg t -> t mapInp :: (t -> a) -> InputMsg t -> InputMsg a inputDone :: InputMsg a -> Maybe a inputLeaveDone :: InputMsg a -> Maybe a data ListRequest a ReplaceItems :: Int -> Int -> [a] -> ListRequest a HighlightItems :: [Int] -> ListRequest a PickItem :: Int -> ListRequest a listEnd :: Int replaceAll :: [a] -> ListRequest a replaceAllFrom :: Int -> [a] -> ListRequest a deleteItems :: Int -> Int -> ListRequest a insertItems :: Int -> [a] -> ListRequest a appendItems :: [a] -> ListRequest a changeItems :: Int -> [a] -> ListRequest a replaceItems :: Int -> Int -> [a] -> ListRequest a highlightItems :: [Int] -> ListRequest a pickItem :: Int -> ListRequest a applyListRequest :: ListRequest a -> [a] -> [a] intersectRects :: [Rect] -> Rect -> [Rect] overlaps :: Rect -> Rect -> Bool boundingRect :: Rect -> Rect -> Rect diffRect :: Rect -> Rect -> [Rect] data FResponse XEvt :: XEvent -> FResponse LEvt :: LayoutResponse -> FResponse XResp :: XResponse -> FResponse SResp :: SocketResponse -> FResponse DResp :: Response -> FResponse data FRequest XCmd :: XCommand -> FRequest LCmd :: LayoutMessage -> FRequest XReq :: XRequest -> FRequest SReq :: SocketRequest -> FRequest DReq :: Request -> FRequest layoutRequestCmd :: LayoutRequest -> FRequest data XCommand data XEvent data XRequest data XResponse data SocketRequest data SocketResponse data LayoutMessage data LayoutResponse type DisplayName = String data BitmapData BitmapData :: Size -> Maybe Point -> [Int] -> BitmapData type Command = XCommand data XRequest OpenDisplay :: DisplayName -> XRequest CreateSimpleWindow :: Path -> Rect -> XRequest CreateRootWindow :: Rect -> String -> XRequest CreateGC :: Drawable -> GCId -> GCAttributeList -> XRequest LoadFont :: FontName -> XRequest CreateFontCursor :: Int -> XRequest GrabPointer :: Bool -> [EventMask] -> XRequest LMLQueryFont :: FontId -> XRequest AllocNamedColor :: ColormapId -> ColorName -> XRequest AllocColor :: ColormapId -> RGB -> XRequest CreatePixmap :: Size -> Depth -> XRequest ReadBitmapFile :: FilePath -> XRequest CreateBitmapFromData :: BitmapData -> XRequest RmGetStringDatabase :: String -> XRequest RmGetResource :: RmDatabase -> String -> String -> XRequest TranslateCoordinates :: XRequest InternAtom :: String -> Bool -> XRequest GetAtomName :: Atom -> XRequest GetWindowProperty :: Int -> Atom -> Bool -> Atom -> XRequest QueryPointer :: XRequest QueryFont :: FontId -> XRequest LoadQueryFont :: FontName -> XRequest QueryColor :: ColormapId -> Pixel -> XRequest QueryTree :: XRequest DefaultRootWindow :: XRequest GetGeometry :: XRequest DefaultVisual :: XRequest Sync :: Bool -> XRequest QueryTextExtents16 :: FontId -> String -> XRequest ListFonts :: FontName -> Int -> XRequest ListFontsWithInfo :: FontName -> Int -> XRequest GetResource :: RmSpec -> XRequest DbeQueryExtension :: XRequest DbeAllocateBackBufferName :: SwapAction -> XRequest DbeSwapBuffers :: SwapAction -> XRequest CreateMyWindow :: Rect -> XRequest data XCommand CloseDisplay :: Display -> XCommand DestroyWindow :: XCommand MapRaised :: XCommand LowerWindow :: XCommand UnmapWindow :: XCommand Draw :: Drawable -> GCId -> DrawCommand -> XCommand DrawMany :: Drawable -> [(GCId, [DrawCommand])] -> XCommand ClearArea :: Rect -> Bool -> XCommand ClearWindow :: XCommand ChangeGC :: GCId -> GCAttributeList -> XCommand FreeGC :: GCId -> XCommand ChangeWindowAttributes :: [WindowAttributes] -> XCommand ConfigureWindow :: [WindowChanges] -> XCommand StoreName :: String -> XCommand SetNormalHints :: Point -> XCommand SetWMHints :: Bool -> XCommand UngrabPointer :: XCommand GrabButton :: Bool -> Button -> ModState -> [EventMask] -> XCommand UngrabButton :: Button -> ModState -> XCommand Flush :: XCommand FreePixmap :: PixmapId -> XCommand ShapeCombineMask :: ShapeKind -> Point -> PixmapId -> ShapeOperation -> XCommand ShapeCombineRectangles :: ShapeKind -> Point -> [Rect] -> ShapeOperation -> Ordering' -> XCommand ShapeCombineShape :: ShapeKind -> Point -> PixmapId -> ShapeKind -> ShapeOperation -> XCommand RmDestroyDatabase :: RmDatabase -> XCommand RmCombineDatabase :: RmDatabase -> RmDatabase -> Bool -> XCommand RmPutLineResource :: RmDatabase -> String -> XCommand SetWMProtocols :: [Atom] -> XCommand SendEvent :: Window -> Bool -> [EventMask] -> XEvent -> XCommand SetSelectionOwner :: Bool -> Atom -> XCommand ConvertSelection :: Selection -> XCommand ChangeProperty :: Window -> Atom -> Atom -> Int -> PropertyMode -> String -> XCommand FreeColors :: ColormapId -> [Pixel] -> Pixel -> XCommand ReparentWindow :: Window -> XCommand WarpPointer :: Point -> XCommand SetRegion :: GCId -> Rect -> XCommand AddToSaveSet :: XCommand RemoveFromSaveSet :: XCommand Bell :: Int -> XCommand SetGCWarningHack :: PixmapId -> XCommand [gcon, gcoff] :: XCommand -> PixmapId GrabEvents :: Bool -> XCommand UngrabEvents :: XCommand TranslateEvent :: (XEvent -> Maybe XEvent) -> [EventMask] -> XCommand ReparentToMe :: Path -> Window -> XCommand GetWindowId :: XCommand SelectWindow :: Window -> XCommand MeButtonMachine :: XCommand moveWindow :: Point -> XCommand resizeWindow :: Point -> XCommand moveResizeWindow :: Rect -> XCommand clearWindowExpose :: XCommand data DrawCommand data Drawable MyWindow :: Drawable Pixmap :: PixmapId -> Drawable DbeBackBuffer :: DbeBackBufferId -> Drawable data BitmapReturn BitmapBad :: BitmapReturn BitmapReturn :: Size -> Maybe Point -> PixmapId -> BitmapReturn data XResponse DisplayOpened :: Display -> XResponse WindowCreated :: Window -> XResponse GCCreated :: GCId -> XResponse CursorCreated :: CursorId -> XResponse PointerGrabbed :: GrabPointerResult -> XResponse FontLoaded :: FontId -> XResponse LMLFontQueried :: FontStruct -> XResponse ColorAllocated :: Maybe Color -> XResponse PixmapCreated :: PixmapId -> XResponse BitmapRead :: BitmapReturn -> XResponse RmDatabaseCreated :: RmDatabase -> XResponse GotResource :: Maybe (String, RmValue) -> XResponse CoordinatesTranslated :: Point -> XResponse GotAtom :: Atom -> XResponse GotAtomName :: Maybe String -> XResponse GotEvent :: (Window, XEvent) -> XResponse GotWindowProperty :: Atom -> Int -> Int -> Int -> String -> XResponse PointerQueried :: Bool -> Point -> Point -> ModState -> XResponse FontQueried :: Maybe FontStructList -> XResponse ColorQueried :: Color -> XResponse TreeQueried :: Window -> Window -> [Window] -> XResponse GotDefaultRootWindow :: Window -> XResponse GotGeometry :: Rect -> Int -> Int -> XResponse GotVisual :: Visual -> XResponse Synced :: XResponse TextExtents16Queried :: Int -> Int -> CharStruct -> XResponse GotFontList :: [FontName] -> XResponse GotFontListWithInfo :: [(FontName, FontStructList)] -> XResponse DbeExtensionQueried :: Int -> Int -> Int -> XResponse DbeBuffersSwapped :: Int -> XResponse DbeBackBufferNameAllocated :: DbeBackBufferId -> XResponse type Event = XEvent data XEvent FocusIn :: Detail -> Mode -> XEvent [detail] :: XEvent -> Detail [mode] :: XEvent -> Mode FocusOut :: Detail -> Mode -> XEvent [detail] :: XEvent -> Detail [mode] :: XEvent -> Mode KeymapNotify :: XEvent GraphicsExpose :: Rect -> Int -> Int -> XEvent [rect] :: XEvent -> Rect [count] :: XEvent -> Int [major_code, minor_code] :: XEvent -> Int KeyEvent :: Time -> Point -> ModState -> Pressed -> KeyCode -> KeySym -> KeyLookup -> XEvent [time] :: XEvent -> Time [pos, rootPos] :: XEvent -> Point [state] :: XEvent -> ModState [type'] :: XEvent -> Pressed [keycode] :: XEvent -> KeyCode [keySym] :: XEvent -> KeySym [keyLookup] :: XEvent -> KeyLookup ButtonEvent :: Time -> Point -> ModState -> Pressed -> Button -> XEvent [time] :: XEvent -> Time [pos, rootPos] :: XEvent -> Point [state] :: XEvent -> ModState [type'] :: XEvent -> Pressed [button] :: XEvent -> Button MotionNotify :: Time -> Point -> ModState -> XEvent [time] :: XEvent -> Time [pos, rootPos] :: XEvent -> Point [state] :: XEvent -> ModState EnterNotify :: Time -> Point -> Detail -> Mode -> Bool -> XEvent [time] :: XEvent -> Time [pos, rootPos] :: XEvent -> Point [detail] :: XEvent -> Detail [mode] :: XEvent -> Mode [focus] :: XEvent -> Bool LeaveNotify :: Time -> Point -> Detail -> Mode -> Bool -> XEvent [time] :: XEvent -> Time [pos, rootPos] :: XEvent -> Point [detail] :: XEvent -> Detail [mode] :: XEvent -> Mode [focus] :: XEvent -> Bool Expose :: Rect -> Int -> XEvent [rect] :: XEvent -> Rect [count] :: XEvent -> Int NoExpose :: XEvent VisibilityNotify :: Visibility -> XEvent CreateNotify :: Window -> XEvent DestroyNotify :: Window -> XEvent UnmapNotify :: Window -> XEvent MapNotify :: Window -> XEvent MapRequest :: Window -> XEvent ReparentNotify :: XEvent ConfigureNotify :: Rect -> Int -> XEvent ConfigureRequest :: XEvent GravityNotify :: XEvent ResizeRequest :: Point -> XEvent CirculateNotify :: XEvent CirculateRequest :: XEvent PropertyNotify :: XEvent SelectionClear :: Atom -> XEvent SelectionRequest :: Time -> Window -> Selection -> XEvent SelectionNotify :: Time -> Selection -> XEvent ColormapNotify :: XEvent ClientMessage :: Atom -> ClientData -> XEvent MappingNotify :: XEvent YourWindowId :: Window -> XEvent MenuPopupMode :: Bool -> XEvent data ClientData Byte :: String -> ClientData Short :: [Int] -> ClientData Long :: [Int] -> ClientData data Visibility VisibilityUnobscured :: Visibility VisibilityPartiallyObscured :: Visibility VisibilityFullyObscured :: Visibility data Mode NotifyNormal :: Mode NotifyGrab :: Mode NotifyUngrab :: Mode NotifyWhileGrabbed :: Mode data Detail NotifyAncestor :: Detail NotifyVirtual :: Detail NotifyInferior :: Detail NotifyNonlinear :: Detail NotifyNonlinearVirtual :: Detail NotifyPointer :: Detail NotifyPointerRoot :: Detail NotifyDetailNothing :: Detail data Pressed Pressed :: Pressed Released :: Pressed MultiClick :: Int -> Pressed newtype KeyCode KeyCode :: Int -> KeyCode type FontStructList = FontStructF [CharStruct] type FontStruct = FontStructF (Array Char CharStruct) data DLValue newtype DLHandle DL :: DL -> DLHandle data AEvent SocketAccepted :: Socket -> Peer -> AEvent SocketRead :: String -> AEvent SocketReadBin :: ByteString -> AEvent SocketWritable :: AEvent TimerAlarm :: AEvent XEvent :: (WindowId, XEvent) -> AEvent data Descriptor LSocketDe :: LSocket -> Descriptor SocketDe :: Socket -> Descriptor BinSocketDe :: Socket -> Descriptor OutputSocketDe :: Socket -> Descriptor TimerDe :: Timer -> Descriptor DisplayDe :: Display -> Descriptor type AsyncInput = (Descriptor, AEvent) newtype Timer Ti :: Int -> Timer newtype LSocket LSo :: Int -> LSocket newtype Socket So :: Int -> Socket type Peer = Host type Host = String type Port = Int data SocketResponse LSocket :: LSocket -> SocketResponse Socket :: Socket -> SocketResponse Timer :: Timer -> SocketResponse ProcessSockets :: Maybe Socket -> Maybe Socket -> Maybe Socket -> SocketResponse DLHandle :: DLHandle -> SocketResponse DLVal :: DLValue -> SocketResponse Wrote :: Int -> SocketResponse data SocketRequest OpenLSocket :: Port -> SocketRequest OpenSocket :: Host -> Port -> SocketRequest WriteSocket :: Socket -> String -> SocketRequest CloseSocket :: Socket -> SocketRequest CloseLSocket :: LSocket -> SocketRequest GetStdinSocket :: SocketRequest CreateTimer :: Int -> Int -> SocketRequest DestroyTimer :: Timer -> SocketRequest GetLSocketName :: LSocket -> SocketRequest GetSocketName :: Socket -> SocketRequest StartProcess :: String -> Bool -> Bool -> Bool -> SocketRequest DLOpen :: String -> SocketRequest DLClose :: DLHandle -> SocketRequest DLSym :: DLHandle -> String -> SocketRequest OpenFileAsSocket :: String -> String -> SocketRequest WriteSocketPS :: Socket -> String -> SocketRequest GetStdoutSocket :: SocketRequest data SwapAction DbeUndefined :: SwapAction DbeBackground :: SwapAction DbeUntouched :: SwapAction DbeCopied :: SwapAction data StackMode StackAbove :: StackMode StackBelow :: StackMode TopIf :: StackMode BottomIf :: StackMode Opposite :: StackMode data WindowChanges CWX :: Int -> WindowChanges CWY :: Int -> WindowChanges CWWidth :: Int -> WindowChanges CWHeight :: Int -> WindowChanges CWBorderWidth :: Int -> WindowChanges CWStackMode :: StackMode -> WindowChanges data WindowAttributes CWEventMask :: [EventMask] -> WindowAttributes CWBackingStore :: BackingStore -> WindowAttributes CWSaveUnder :: Bool -> WindowAttributes CWDontPropagate :: [EventMask] -> WindowAttributes CWOverrideRedirect :: Bool -> WindowAttributes CWBackPixel :: Pixel -> WindowAttributes CWCursor :: CursorId -> WindowAttributes CWBitGravity :: Gravity -> WindowAttributes CWWinGravity :: Gravity -> WindowAttributes CWBackPixmap :: PixmapId -> WindowAttributes CWBorderPixmap :: PixmapId -> WindowAttributes CWBorderPixel :: Pixel -> WindowAttributes type GCAttributeList = [GCAttributes Pixel FontId] data GCAttributes a b GCFunction :: GCFunction -> GCAttributes a b GCForeground :: a -> GCAttributes a b GCBackground :: a -> GCAttributes a b GCLineWidth :: Width -> GCAttributes a b GCLineStyle :: GCLineStyle -> GCAttributes a b GCFont :: b -> GCAttributes a b GCCapStyle :: GCCapStyle -> GCAttributes a b GCSubwindowMode :: GCSubwindowMode -> GCAttributes a b GCGraphicsExposures :: Bool -> GCAttributes a b GCFillStyle :: GCFillStyle -> GCAttributes a b GCTile :: PixmapId -> GCAttributes a b GCStipple :: PixmapId -> GCAttributes a b GCJoinStyle :: GCJoinStyle -> GCAttributes a b data GCFillStyle FillSolid :: GCFillStyle FillTiled :: GCFillStyle FillStippled :: GCFillStyle FillOpaqueStippled :: GCFillStyle data GCSubwindowMode ClipByChildren :: GCSubwindowMode IncludeInferiors :: GCSubwindowMode data GCJoinStyle JoinMiter :: GCJoinStyle JoinRound :: GCJoinStyle JoinBevel :: GCJoinStyle data GCCapStyle CapNotLast :: GCCapStyle CapButt :: GCCapStyle CapRound :: GCCapStyle CapProjecting :: GCCapStyle data GCLineStyle LineSolid :: GCLineStyle LineDoubleDash :: GCLineStyle LineOnOffDash :: GCLineStyle data GCFunction GXclear :: GCFunction GXand :: GCFunction GXandReverse :: GCFunction GXcopy :: GCFunction GXandInverted :: GCFunction GXnoop :: GCFunction GXxor :: GCFunction GXor :: GCFunction GXnor :: GCFunction GXequiv :: GCFunction GXinvert :: GCFunction GXorReverse :: GCFunction GXCopyInverted :: GCFunction GXorInverted :: GCFunction GXnand :: GCFunction GXset :: GCFunction data GrabPointerResult GrabSuccess :: GrabPointerResult AlreadyGrabbed :: GrabPointerResult GrabInvalidTime :: GrabPointerResult GrabNotViewable :: GrabPointerResult GrabFrozen :: GrabPointerResult data BackingStore NotUseful :: BackingStore WhenMapped :: BackingStore Always :: BackingStore newtype PropertyMode PropertyMode :: Int -> PropertyMode data Selection Selection :: Atom -> Atom -> Atom -> Selection data Color Color :: Pixel -> RGB -> Color [colorPixel] :: Color -> Pixel [colorRGB] :: Color -> RGB data RGB RGB :: Int -> Int -> Int -> RGB type PlaneMask = Pixel newtype Pixel Pixel :: Word -> Pixel type Width = Int type KeyLookup = String type XDisplay = Display newtype Display Display :: Int -> Display noDisplay :: Display pixel0 :: Pixel pixel1 :: Pixel maxRGB :: Int grayRGB :: Int -> RGB whiteRGB :: RGB blackRGB :: RGB propModeReplace :: PropertyMode propModePrepend :: PropertyMode propModeAppend :: PropertyMode invertColorGCattrs :: Pixel -> Pixel -> [GCAttributes Pixel b] invcol :: Pixel -> Pixel -> Pixel data EventMask KeyPressMask :: EventMask KeyReleaseMask :: EventMask ButtonPressMask :: EventMask ButtonReleaseMask :: EventMask EnterWindowMask :: EventMask LeaveWindowMask :: EventMask PointerMotionMask :: EventMask PointerMotionHintMask :: EventMask Button1MotionMask :: EventMask Button2MotionMask :: EventMask Button3MotionMask :: EventMask Button4MotionMask :: EventMask Button5MotionMask :: EventMask ButtonMotionMask :: EventMask KeymapStateMask :: EventMask ExposureMask :: EventMask VisibilityChangeMask :: EventMask StructureNotifyMask :: EventMask ResizeRedirectMask :: EventMask SubstructureNotifyMask :: EventMask SubstructureRedirectMask :: EventMask FocusChangeMask :: EventMask PropertyChangeMask :: EventMask ColormapChangeMask :: EventMask OwnerGrabButtonMask :: EventMask clEventMask :: [EventMask] data Gravity ForgetGravity :: Gravity NorthWestGravity :: Gravity NorthGravity :: Gravity NorthEastGravity :: Gravity WestGravity :: Gravity CenterGravity :: Gravity EastGravity :: Gravity SouthWestGravity :: Gravity SouthGravity :: Gravity SouthEastGravity :: Gravity StaticGravity :: Gravity data ShapeKind ShapeBounding :: ShapeKind ShapeClip :: ShapeKind data ShapeOperation ShapeSet :: ShapeOperation ShapeUnion :: ShapeOperation ShapeIntersect :: ShapeOperation ShapeSubtract :: ShapeOperation ShapeInvert :: ShapeOperation data Ordering' Unsorted :: Ordering' YSorted :: Ordering' YXSorted :: Ordering' YXBanded :: Ordering' type RmClass = String type RmName = String type RmQuery = (RmClass, RmName) type RmSpec = [RmQuery] type RmValue = String type RmDatabase = Int rmNothing :: Int data Modifiers Shift :: Modifiers Lock :: Modifiers Control :: Modifiers Mod1 :: Modifiers Mod2 :: Modifiers Mod3 :: Modifiers Mod4 :: Modifiers Mod5 :: Modifiers Button1 :: Modifiers Button2 :: Modifiers Button3 :: Modifiers Button4 :: Modifiers Button5 :: Modifiers Mod13 :: Modifiers Mod14 :: Modifiers Any :: Modifiers clModifiers :: [Modifiers] data Button AnyButton :: Button Button :: Int -> Button type ModState = [Modifiers] type KeySym = String newtype XID XID :: Int -> XID newtype WindowId WindowId :: XID -> WindowId type Window = WindowId type XWId = WindowId rootWindow :: WindowId noWindow :: WindowId windowNone :: WindowId newtype PixmapId PixmapId :: XID -> PixmapId newtype DbeBackBufferId DbeBackBufferId :: XID -> DbeBackBufferId newtype FontId FontId :: XID -> FontId newtype GCId GCId :: Int -> GCId newtype CursorId CursorId :: XID -> CursorId newtype ColormapId ColormapId :: XID -> ColormapId defaultColormap :: ColormapId cursorNone :: CursorId newtype Atom Atom :: Int -> Atom type ColorName = String type FontName = String type Time = Int currentTime :: Time type Depth = Int copyFromParent :: Depth parentRelative :: PixmapId none :: PixmapId rootGC :: GCId newtype ImageFormat ImageFormat :: Int -> ImageFormat xyBitmap :: ImageFormat xyPixmap :: ImageFormat zPixmap :: ImageFormat data DisplayClass StaticGray :: DisplayClass GrayScale :: DisplayClass StaticColor :: DisplayClass PseudoColor :: DisplayClass TrueColor :: DisplayClass DirectColor :: DisplayClass newtype VisualID VisualID :: Int -> VisualID data Visual Visual :: VisualID -> DisplayClass -> Word -> Int -> Int -> Visual [visualid] :: Visual -> VisualID [visualClass] :: Visual -> DisplayClass [red_mask, green_mask, blue_mask] :: Visual -> Word [bits_per_rgb] :: Visual -> Int [map_entries] :: Visual -> Int data DrawCommand DrawLine :: Line -> DrawCommand DrawImageString :: Point -> String -> DrawCommand DrawString :: Point -> String -> DrawCommand DrawRectangle :: Rect -> DrawCommand FillRectangle :: Rect -> DrawCommand FillPolygon :: Shape -> CoordMode -> [Point] -> DrawCommand DrawArc :: Rect -> Int -> Int -> DrawCommand FillArc :: Rect -> Int -> Int -> DrawCommand CopyArea :: Drawable -> Rect -> Point -> DrawCommand CopyPlane :: Drawable -> Rect -> Point -> Int -> DrawCommand DrawPoint :: Point -> DrawCommand CreatePutImage :: Rect -> ImageFormat -> [Pixel] -> DrawCommand DrawLines :: CoordMode -> [Point] -> DrawCommand DrawImageString16 :: Point -> String -> DrawCommand DrawString16 :: Point -> String -> DrawCommand data Drawable MyWindow :: Drawable Pixmap :: PixmapId -> Drawable DbeBackBuffer :: DbeBackBufferId -> Drawable data CoordMode CoordModeOrigin :: CoordMode CoordModePrevious :: CoordMode data Shape Complex :: Shape Nonconvex :: Shape Convex :: Shape draw :: Drawable -> GCId -> DrawCommand -> FRequest drawMany :: Drawable -> [(GCId, [DrawCommand])] -> FRequest wDraw :: GCId -> DrawCommand -> FRequest wDrawMany :: [(GCId, [DrawCommand])] -> FRequest pmDraw :: PixmapId -> GCId -> DrawCommand -> FRequest pmDrawMany :: PixmapId -> [(GCId, [DrawCommand])] -> FRequest clearArea :: Rect -> Bool -> FRequest clearWindow :: FRequest fillCircle :: Point -> Int -> DrawCommand drawCircle :: Point -> Int -> DrawCommand pmDrawLine :: PixmapId -> GCId -> Line -> FRequest pmDrawLines :: PixmapId -> GCId -> CoordMode -> [Point] -> FRequest pmDrawImageString :: PixmapId -> GCId -> Point -> String -> FRequest pmDrawString :: PixmapId -> GCId -> Point -> String -> FRequest pmDrawImageString16 :: PixmapId -> GCId -> Point -> String -> FRequest pmDrawString16 :: PixmapId -> GCId -> Point -> String -> FRequest pmDrawRectangle :: PixmapId -> GCId -> Rect -> FRequest pmFillRectangle :: PixmapId -> GCId -> Rect -> FRequest pmFillPolygon :: PixmapId -> GCId -> Shape -> CoordMode -> [Point] -> FRequest pmDrawArc :: PixmapId -> GCId -> Rect -> Int -> Int -> FRequest pmFillArc :: PixmapId -> GCId -> Rect -> Int -> Int -> FRequest pmCopyArea :: PixmapId -> GCId -> Drawable -> Rect -> Point -> FRequest pmCopyPlane :: PixmapId -> GCId -> Drawable -> Rect -> Point -> Int -> FRequest pmDrawPoint :: PixmapId -> GCId -> Point -> FRequest pmCreatePutImage :: PixmapId -> GCId -> Rect -> ImageFormat -> [Pixel] -> FRequest wDrawLine :: GCId -> Line -> FRequest wDrawLines :: GCId -> CoordMode -> [Point] -> FRequest wDrawImageString :: GCId -> Point -> String -> FRequest wDrawString :: GCId -> Point -> String -> FRequest wDrawImageString16 :: GCId -> Point -> String -> FRequest wDrawString16 :: GCId -> Point -> String -> FRequest wDrawRectangle :: GCId -> Rect -> FRequest wFillRectangle :: GCId -> Rect -> FRequest wFillPolygon :: GCId -> Shape -> CoordMode -> [Point] -> FRequest wDrawArc :: GCId -> Rect -> Int -> Int -> FRequest wFillArc :: GCId -> Rect -> Int -> Int -> FRequest wDrawCircle :: GCId -> Point -> Int -> FRequest wFillCircle :: GCId -> Point -> Int -> FRequest wCopyArea :: GCId -> Drawable -> Rect -> Point -> FRequest wCopyPlane :: GCId -> Drawable -> Rect -> Point -> Int -> FRequest wDrawPoint :: GCId -> Point -> FRequest wCreatePutImage :: GCId -> Rect -> ImageFormat -> [Pixel] -> FRequest look3d :: Bool new3d :: Bool edgeWidth :: Int defaultSep :: Num a => a paperColor :: ColorName fgColor :: ColorName bgColor :: ColorName inputFg :: ColorName inputBg :: ColorName shadowColor :: ColorName shineColor :: ColorName defaultPosition :: Maybe Point defaultSize :: Maybe Point defaultFont :: FontName menuFont :: FontName buttonFont :: FontName labelFont :: FontName -- | This should be modifier corresponding to Meta_L & Meta_R (see -- xmodmap). It is usually Mod1, but in XQuartz it appears to be Mod2 -- instead... metaKey :: Modifiers options :: [([Char], [Char])] progName :: String resourceName :: String args :: [[Char]] argKey :: [Char] -> [Char] -> [Char] argReadKey :: (Read p, Show p) => [Char] -> p -> p argFlag :: [Char] -> Bool -> Bool argKeyList :: [Char] -> [[Char]] -> [[Char]] data AFilePath rootPath :: AFilePath aFilePath :: FilePath -> AFilePath filePath :: AFilePath -> FilePath compactPath :: AFilePath -> AFilePath isAbsolute :: AFilePath -> Bool joinPaths :: AFilePath -> AFilePath -> AFilePath pathRelativeTo :: AFilePath -> AFilePath -> AFilePath extendPath :: AFilePath -> String -> AFilePath pathTail :: AFilePath -> String pathHead :: AFilePath -> AFilePath pathLength :: AFilePath -> Int class Move a move :: Move a => Point -> a -> a fmove :: (Functor f, Move a) => Point -> f a -> f a data Point Point :: Int -> Point [xcoord, ycoord] :: Point -> Int type Size = Point data Line Line :: Point -> Point -> Line data Rect Rect :: Point -> Size -> Rect [rectpos] :: Rect -> Point [rectsize] :: Rect -> Size origin :: Point pP :: Int -> Int -> Point lL :: Int -> Int -> Int -> Int -> Line rR :: Int -> Int -> Int -> Int -> Rect diag :: Int -> Point padd :: Point -> Point -> Point psub :: Point -> Point -> Point rsub :: Rect -> Rect -> Point posrect :: Rect -> Point -> Rect moverect :: Rect -> Point -> Rect sizerect :: Rect -> Size -> Rect growrect :: Rect -> Point -> Rect moveline :: Line -> Point -> Line rect2line :: Rect -> Line line2rect :: Line -> Rect (=.>) :: Point -> Point -> Bool inRect :: Point -> Rect -> Bool scale :: (RealFrac a, Integral b, Integral a) => a -> a -> b scalePoint :: RealFrac a => a -> Point -> Point rectMiddle :: Rect -> Point freedom :: Rect -> Rect -> Point pmin :: Point -> Point -> Point pmax :: Point -> Point -> Point pMin :: [Point] -> Point pMax :: [Point] -> Point plim :: Point -> Point -> Point -> Point -- | confine outer inner: moves an shrinks inner to fit within outer confine :: Rect -> Rect -> Rect -- | rmax gives an enclosing rect rmax :: Rect -> Rect -> Rect mapLow :: (t -> [a]) -> SP (Message t b) (Message a b) mapHigh :: (t -> [a]) -> SP (Message a t) (Message a a) mapstateLow :: (t -> t -> (t, [a])) -> t -> SP (Message t b) (Message a b) mapstateHigh :: (t -> t -> (t, [b])) -> t -> SP (Message a t) (Message a b) type Cont c a = (a -> c) -> c plookup :: Foldable t => (b -> Bool) -> t (b, b) -> Maybe b stripLeft :: Either a b -> Maybe a stripRight :: Either a a -> Maybe a stripEither :: Either a a -> a filterLeft :: [Either b b] -> [b] filterRight :: [Either a b] -> [b] isLeft :: Either a b -> Bool isRight :: Either a b -> Bool mapEither :: (t -> a) -> (t -> b) -> Either t t -> Either a b swapEither :: Either b a -> Either a b splitEitherList :: [Either a a] -> ([a], [a]) fromLeft :: Either a b -> a fromRight :: Either a b -> b expandTabs :: Int -> [Char] -> [Char] rmBS :: [Char] -> String wrapLine :: Int -> [a] -> [[a]] aboth :: (t -> b) -> (t, t) -> (b, b) mapPair :: (t -> a, t -> b) -> (t, t) -> (a, b) pairwith :: (t -> b) -> t -> (t, b) swap :: (b, a) -> (a, b) pair :: a -> b -> (a, b) setFst :: (a, b) -> a -> (a, b) setSnd :: (a, b) -> b -> (a, b) oo :: (t -> t) -> (t -> t -> t) -> t -> t -> t -- | Apply a function to the nth element of a list anth :: Int -> (a -> a) -> [a] -> [a] number :: Int -> [a] -> [(Int, a)] loop :: (t -> t) -> t ifC :: (a -> a) -> Bool -> a -> a infixl 1 `ifC` thenC :: Bool -> (a -> a) -> a -> a infixr 1 `thenC` gmap :: Foldable t => (t -> [a] -> [a]) -> (t -> t) -> t t -> [a] unionmap :: (Foldable t, Eq a) => (t -> [a]) -> t t -> [a] -- | Remove the first occurence remove :: Eq t => t -> [t] -> [t] -- | Replace the first occurence replace :: Eq a => (a, b) -> [(a, b)] -> [(a, b)] unconcat :: [Int] -> [a] -> [[a]] -- | lunconcat xss ys = unconcat (map length xss) ys lunconcat :: [[a]] -> [a] -> [[a]] -- | lhead xs ys = take (length xs) ys, but the rhs is stricter lhead :: [a] -> [a] -> [a] -- | ltail xs ys = drop (length xs) ys, but the rhs is stricter ltail :: [a] -> [a] -> [a] -- | lsplit xs ys = (lhead xs ys,ltail xs ys), but without the space leak, -- -fpbu lsplit :: [a] -> [a] -> ([a], [a]) -- | JSP 920928 part :: (a -> Bool) -> [a] -> ([a], [a]) issubset :: (Foldable t, Foldable t, Eq a) => t a -> t a -> Bool -- | To avoid problems caused by poor type inference for constructor -- classes in Haskell 1.3: mapList :: (a -> b) -> [a] -> [b] -- |
--   chopList (breakAt c) == segments (/=c)
--   
segments :: (a -> Bool) -> [a] -> [[a]] version :: String -- | only for documentation, use version instead version_0_18_4 :: String prepostMapSP :: (t -> a) -> (t -> b) -> SP a t -> SP t b postMapSP :: (t -> b) -> SP a t -> SP a b preMapSP :: SP a b -> (t -> a) -> SP t b idRightSP :: SP a a -> SP (Either a b) (Either a b) idLeftSP :: SP a b -> SP (Either a a) (Either a b) idHighSP :: SP a a -> SP (Message a b) (Message a b) idLowSP :: SP a b -> SP (Message a a) (Message a b) compMsgSP :: SP a a -> SP a b -> SP (Message a a) (Message a b) compSP :: SP a a -> SP a b -> SP (Either a a) (Either a b) compEitherSP :: SP a a -> SP a b -> SP (Either a a) (Either a b) serCompSP :: SP a b -> SP a a -> SP a b data DynMsg a b DynCreate :: b -> DynMsg a b DynDestroy :: DynMsg a b DynMsg :: a -> DynMsg a b type DynSPMsg a b = DynMsg a (SP a b) dynforkmerge :: Eq a => SP (a, DynSPMsg b c) (a, c) loopLeftSP :: SP (Either a b) (Either a b) -> SP b b loopSP :: SP a a -> SP a a loopOnlySP :: SP a a -> SP a b loopThroughRightSP :: SP (Either a b) (Either a b) -> SP a a -> SP b b seqSP :: SP a b -> SP a b -> SP a b parSP :: SP a b -> SP a b -> SP a b data SP a b type SPm i o ans = Mk (SP i o) ans putsSPm :: [o] -> SPm i o () putSPm :: o -> SPm i o () getSPm :: SPm i o i nullSPm :: SPm i o () monadSP :: SPm i o () -> SP i o toSPm :: SP i o -> SPm i o () type SPms i o s ans = Ms (SP i o) s ans putsSPms :: [o] -> SPms i o s () putSPms :: o -> SPms i o s () getSPms :: SPms i o s i nullSPms :: SPms i o s () loadSPms :: SPms i o s s storeSPms :: s -> SPms i o s () stateMonadSP :: s -> SPms i o s ans -> (ans -> SP i o) -> SP i o interpSP :: (t -> t -> t) -> ((a -> t) -> t) -> t -> SP a t -> t nullSP :: SP a b putsSP :: [b] -> SP a b -> SP a b putSP :: b -> SP a b -> SP a b appendStartSP :: [b] -> SP a b -> SP a b stepSP :: [b] -> Cont (SP a b) a getSP :: Cont (SP a b) a walkSP :: SP a a -> a -> ([a], SP a a) pullSP :: SP a a -> ([a], SP a a) runSP :: SP a a -> [a] -> [a] feedSP :: a -> [a] -> SP a b -> SP a b startupSP :: [a] -> SP a b -> SP a b delaySP :: SP a b -> SP a b mapSP :: (t -> b) -> SP t b idSP :: SP b b concatMapSP :: (t -> [b]) -> SP t b concmapSP :: (t -> [b]) -> SP t b concatMapAccumlSP :: (t -> a -> (t, [b])) -> t -> SP a b mapstateSP :: (t -> a -> (t, [b])) -> t -> SP a b mapAccumlSP :: (t -> a -> (t, b)) -> t -> SP a b concatSP :: SP [b] b concSP :: SP [b] b zipSP :: [a] -> SP b (a, b) filterSP :: (b -> Bool) -> SP b b splitAtElemSP :: (a -> Bool) -> Cont (SP a b) [a] chopSP :: ((b -> SP a b) -> SP a b) -> SP a b type Cont c a = (a -> c) -> c mapFilterSP :: (t -> Maybe b) -> SP t b filterLeftSP :: SP (Either b b) b filterRightSP :: SP (Either a1 b) b filterJustSP :: SP (Maybe b) b splitSP :: SP (a, b) (Either a b) toBothSP :: SP b (Either b b) idempotSP :: Eq a => SP a a class StreamProcIO sp put :: StreamProcIO sp => o -> sp i o -> sp i o get :: StreamProcIO sp => (i -> sp i o) -> sp i o end :: StreamProcIO sp => sp i o puts :: (Foldable t, StreamProcIO sp) => t a -> sp i a -> sp i a inputPairSP :: SP (Either (InputMsg a) (InputMsg b)) (InputMsg (a, b)) inputListSP :: Eq p => [p] -> SP (p, InputMsg p) (InputMsg [(p, p)]) stripInputSP :: SP (InputMsg b) b inputDoneSP :: SP (InputMsg b) b inputLeaveDoneSP :: SP (InputMsg b) b hIOSucc :: FudgetIO f => Request -> f hi ho -> f hi ho hIOerr :: FudgetIO f => Request -> (IOError -> f hi ho) -> (Response -> f hi ho) -> f hi ho haskellIO :: FudgetIO f => Request -> (Response -> f hi ho) -> f hi ho hIO :: FudgetIO f => Request -> (Response -> f hi ho) -> f hi ho haskellIOF :: Request -> (Response -> F a b) -> F a b hIOerrF :: Request -> (IOError -> F a b) -> (Response -> F a b) -> F a b hIOF :: Request -> (Response -> F a b) -> F a b hIOSuccF :: Request -> F a b -> F a b linesSP :: SP Char [Char] inputLinesSP :: SP [Char] [Char] echoK :: FudgetIO f => [Char] -> f hi ho -> f hi ho echoStderrK :: FudgetIO f => [Char] -> f hi ho -> f hi ho appendChanK :: FudgetIO f => String -> String -> f hi ho -> f hi ho appendStdoutK :: FudgetIO f => String -> f hi ho -> f hi ho appendStderrK :: FudgetIO f => String -> f hi ho -> f hi ho outputF :: String -> F String a stdioF :: F String String stderrF :: F String a stdoutF :: F String a stdinF :: F hi String ioF :: K a b -> F a b transmitterF' :: Socket -> F [Char] () receiverF' :: Socket -> F hi String openSocketF :: FudgetIO f => Host -> Port -> (Socket -> f hi ho) -> f hi ho openSocketErrF :: FudgetIO f => Host -> Port -> (IOError -> f hi ho) -> (Socket -> f hi ho) -> f hi ho openLSocketF :: FudgetIO f => Port -> (LSocket -> f hi ho) -> f hi ho openLSocketErrF :: FudgetIO f => Port -> (IOError -> f hi ho) -> (LSocket -> f hi ho) -> f hi ho openFileAsSocketF :: FudgetIO f => String -> String -> (Socket -> f hi ho) -> f hi ho openFileAsSocketErrF :: FudgetIO f => String -> String -> (IOError -> f hi ho) -> (Socket -> f hi ho) -> f hi ho transmitterF :: Socket -> F [Char] b receiverF :: Socket -> F e String transceiverF :: Socket -> F [Char] String asyncTransceiverF :: Socket -> F String String asyncTransmitterF :: Socket -> F String b asyncTransmitterF' :: Socket -> F String () closerF :: Socket -> F ans ho timerF :: F (Maybe (Int, Int)) Tick data Tick Tick :: Tick readFileF :: F String (String, Either IOError String) readBinaryFileF :: F String (String, Either IOError String) readXdgFileF :: XdgDirectory -> F String (String, Either IOError String) readDirF :: F String (String, Either IOError [String]) writeFileF :: F (String, String) (String, Either IOError ()) writeXdgFileF :: XdgDirectory -> F (String, String) (String, Either IOError ()) writeFileF' :: (a -> t -> Request) -> F (a, t) (a, Either IOError ()) appStorageF :: (Read a, Show a) => String -> a -> F a a readM :: Read a => String -> Maybe a subProcessF :: String -> F [Char] (Either String String) unsafeGetDLValue :: DLValue -> a getTime :: FudgetIO f => (ClockTime -> f hi ho) -> f hi ho getLocalTime :: FudgetIO f => (CalendarTime -> f hi ho) -> f hi ho getCurrentTime :: FudgetIO f => (UTCTime -> f hi ho) -> f hi ho getZonedTime :: FudgetIO f => (ZonedTime -> f hi ho) -> f hi ho getModificationTime :: FudgetIO f => FilePath -> (IOError -> f hi ho) -> (ClockTime -> f hi ho) -> f hi ho class HasSizing xxx setSizing :: HasSizing xxx => Sizing -> Customiser xxx getSizing :: HasSizing xxx => xxx -> Sizing getSizingMaybe :: HasSizing xxx => xxx -> Maybe Sizing class HasInitText xxx setInitText :: HasInitText xxx => [String] -> Customiser xxx getInitText :: HasInitText xxx => xxx -> [String] getInitTextMaybe :: HasInitText xxx => xxx -> Maybe [String] class HasStretchable xxx setStretchable :: HasStretchable xxx => (Bool, Bool) -> Customiser xxx getStretchable :: HasStretchable xxx => xxx -> (Bool, Bool) getStretchableMaybe :: HasStretchable xxx => xxx -> Maybe (Bool, Bool) class HasInitDisp xxx setInitDisp :: HasInitDisp xxx => a -> Customiser (xxx a) getInitDispMaybe :: HasInitDisp xxx => xxx a -> Maybe a getInitDisp :: HasInitDisp xxx => xxx a -> a class HasInitSize xxx setInitSize :: HasInitSize xxx => a -> Customiser (xxx a) getInitSizeMaybe :: HasInitSize xxx => xxx a -> Maybe a getInitSize :: HasInitSize xxx => xxx a -> a class HasAlign xxx setAlign :: HasAlign xxx => Alignment -> Customiser xxx getAlign :: HasAlign xxx => xxx -> Alignment getAlignMaybe :: HasAlign xxx => xxx -> Maybe Alignment class HasMargin xxx setMargin :: HasMargin xxx => Int -> Customiser xxx getMargin :: HasMargin xxx => xxx -> Int getMarginMaybe :: HasMargin xxx => xxx -> Maybe Int class HasFgColorSpec xxx setFgColorSpec :: HasFgColorSpec xxx => ColorSpec -> Customiser xxx getFgColorSpec :: HasFgColorSpec xxx => xxx -> ColorSpec getFgColorSpecMaybe :: HasFgColorSpec xxx => xxx -> Maybe ColorSpec class HasBgColorSpec xxx setBgColorSpec :: HasBgColorSpec xxx => ColorSpec -> Customiser xxx getBgColorSpec :: HasBgColorSpec xxx => xxx -> ColorSpec getBgColorSpecMaybe :: HasBgColorSpec xxx => xxx -> Maybe ColorSpec class HasBorderWidth xxx setBorderWidth :: HasBorderWidth xxx => Int -> Customiser xxx getBorderWidth :: HasBorderWidth xxx => xxx -> Int getBorderWidthMaybe :: HasBorderWidth xxx => xxx -> Maybe Int class HasWinAttr xxx setWinAttr :: HasWinAttr xxx => [WindowAttributes] -> Customiser xxx getWinAttr :: HasWinAttr xxx => xxx -> [WindowAttributes] getWinAttrMaybe :: HasWinAttr xxx => xxx -> Maybe [WindowAttributes] class HasKeys xxx setKeys :: HasKeys xxx => [(ModState, KeySym)] -> Customiser xxx getKeys :: HasKeys xxx => xxx -> [(ModState, KeySym)] getKeysMaybe :: HasKeys xxx => xxx -> Maybe [(ModState, KeySym)] class HasFontSpec xxx setFontSpec :: HasFontSpec xxx => FontSpec -> Customiser xxx getFontSpec :: HasFontSpec xxx => xxx -> FontSpec getFontSpecMaybe :: HasFontSpec xxx => xxx -> Maybe FontSpec type PK p a b = K (Either (Customiser p) a) b type PF p a b = F (Either (Customiser p) a) b type Customiser a = a -> a cust :: (a -> a) -> Customiser a getpar :: (t -> Maybe c) -> [t] -> c getparMaybe :: (t -> Maybe a) -> [t] -> Maybe a noPF :: PF p a b -> F a b standard :: Customiser a setFont :: (HasFontSpec xxx, Show a, FontGen a) => a -> Customiser xxx setBgColor :: (HasBgColorSpec xxx, Show p, ColorGen p) => p -> Customiser xxx setFgColor :: (HasFgColorSpec xxx, Show p, ColorGen p) => p -> Customiser xxx type Alignment = Double -- | The fromMaybe function takes a default value and a Maybe -- value. If the Maybe is Nothing, it returns the default -- value; otherwise, it returns the value contained in the Maybe. -- --

Examples

-- -- Basic usage: -- --
--   >>> fromMaybe "" (Just "Hello, World!")
--   "Hello, World!"
--   
-- --
--   >>> fromMaybe "" Nothing
--   ""
--   
-- -- Read an integer from a string using readMaybe. If we fail to -- parse an integer, we want to return 0 by default: -- --
--   >>> import Text.Read ( readMaybe )
--   
--   >>> fromMaybe 0 (readMaybe "5")
--   5
--   
--   >>> fromMaybe 0 (readMaybe "")
--   0
--   
fromMaybe :: a -> Maybe a -> a module SuperMenuF superMenuF :: Eq a => Maybe Rect -> FontName -> String -> [MenuItem a] -> (a -> String) -> F String a data MenuItem a Item :: a -> MenuItem a Submenu :: (String, [MenuItem a]) -> MenuItem a instance GHC.Show.Show a => GHC.Show.Show (SuperMenuF.MenuItem a) instance GHC.Classes.Ord a => GHC.Classes.Ord (SuperMenuF.MenuItem a) instance GHC.Classes.Eq a => GHC.Classes.Eq (SuperMenuF.MenuItem a) instance GHC.Classes.Ord a => GHC.Classes.Ord (SuperMenuF.MenuTag a) instance GHC.Classes.Eq a => GHC.Classes.Eq (SuperMenuF.MenuTag a) module HyperGraphicsF2 hyperGraphicsF2 :: (Graphic leaf, Ord k) => Drawing k leaf -> F (GfxCommand k (Drawing k leaf)) (GfxEvent k) hyperGraphicsF2' :: (Graphic leaf, Ord k) => (GraphicsF (Drawing k leaf) -> GraphicsF (Drawing k leaf)) -> Drawing k leaf -> F (GfxCommand k (Drawing k leaf)) (GfxEvent k) mouseClicksSP :: SP (GfxEvent b) b isMouseClick :: GfxEvent a -> Maybe a mapGfxCommandPath :: (a -> path) -> GfxCommand a gfx -> GfxCommand path gfx mapGfxEventPath :: (t -> Maybe path) -> GfxEvent t -> GfxEvent path nullPath :: GfxEvent path -> Bool gfxEventPaths :: GfxEvent path -> Maybe [(path, (Point, Rect))] isGfxButtonEvent :: GfxEvent path -> Maybe Button data GfxCommand path gfx ChangeGfx :: [(path, GfxChange gfx)] -> GfxCommand path gfx ChangeGfxBg :: ColorSpec -> GfxCommand path gfx ChangeGfxBgPixmap :: PixmapId -> Bool -> GfxCommand path gfx ChangeGfxBgGfx :: bg -> GfxCommand path gfx ChangeGfxCursor :: CursorId -> GfxCommand path gfx ChangeGfxFontCursor :: Int -> GfxCommand path gfx ShowGfx :: path -> (Maybe Alignment, Maybe Alignment) -> GfxCommand path gfx BellGfx :: Int -> GfxCommand path gfx GetGfxPlaces :: [path] -> GfxCommand path gfx data GfxChange gfx GfxReplace :: (Bool, Maybe gfx) -> GfxChange gfx GfxGroup :: Int -> Int -> GfxChange gfx GfxUngroup :: Int -> GfxChange gfx data GfxEvent path GfxButtonEvent :: Time -> ModState -> Pressed -> Button -> [(path, (Point, Rect))] -> GfxEvent path [gfxTime] :: GfxEvent path -> Time [gfxState] :: GfxEvent path -> ModState [gfxType] :: GfxEvent path -> Pressed [gfxButton] :: GfxEvent path -> Button [gfxPaths] :: GfxEvent path -> [(path, (Point, Rect))] GfxMotionEvent :: Time -> ModState -> [(path, (Point, Rect))] -> GfxEvent path [gfxTime] :: GfxEvent path -> Time [gfxState] :: GfxEvent path -> ModState [gfxPaths] :: GfxEvent path -> [(path, (Point, Rect))] GfxKeyEvent :: Time -> ModState -> KeySym -> KeyLookup -> GfxEvent path [gfxTime] :: GfxEvent path -> Time [gfxState] :: GfxEvent path -> ModState [gfxKeySym] :: GfxEvent path -> KeySym [gfxKeyLookup] :: GfxEvent path -> KeyLookup GfxFocusEvent :: Bool -> GfxEvent path [gfxHasFocus] :: GfxEvent path -> Bool GfxPlaces :: [Rect] -> GfxEvent path GfxResized :: Size -> GfxEvent path replaceGfx :: path -> gfx -> GfxCommand path gfx highlightGfx :: path -> Bool -> GfxCommand path gfx -- | Programmers' index. There is very little documentation here. See the -- Fudget Library Reference Manual instead. module Fudgets buttonF :: Graphic lbl => lbl -> F Click Click border3dF :: Bool -> Int -> F a b -> F (Either Bool a) b buttonBorderF :: Int -> F a b -> F (Either Bool a) b pushButtonF :: [(ModState, KeySym)] -> F a b -> F a (Either b Click) data BMevents BMNormal :: BMevents BMInverted :: BMevents BMClick :: BMevents popupMenuF :: (Eq b1, Graphic b1) => [(a, b1)] -> F c b2 -> F (Either [(a, b1)] c) (Either a b2) -- | Button clicks data Click Click :: Click radioGroupF :: (Graphic lbl, Eq alt) => [(alt, lbl)] -> alt -> F alt alt radioGroupF' :: (Graphic lbl, Eq alt) => Customiser RadioGroupF -> [(alt, lbl)] -> alt -> F alt alt intF :: F Int (InputMsg Int) passwdF :: F String (InputMsg String) stringF :: F String (InputMsg String) intInputF :: F Int Int stringInputF :: F String String passwdInputF :: F String String intInputF' :: Customiser StringF -> F Int Int stringInputF' :: Customiser StringF -> F String String passwdInputF' :: (StringF -> StringF) -> F String String toggleButtonF :: Graphic lbl => lbl -> F Bool Bool inputPopupOptF :: String -> InF a b -> Maybe b -> F (Maybe String, Maybe a) ((Maybe String, Maybe a), Maybe b) inputPopupF :: String -> InF a c -> Maybe c -> F (Maybe String, Maybe a) ((Maybe String, Maybe a), c) passwdPopupOptF :: String -> F (Maybe String, Maybe String) ((Maybe String, Maybe String), Maybe String) passwdPopupF :: String -> F (Maybe String, Maybe String) ((Maybe String, Maybe String), String) stringPopupOptF :: String -> F (Maybe String, Maybe String) ((Maybe String, Maybe String), Maybe String) stringPopupF :: String -> F (Maybe String, Maybe String) ((Maybe String, Maybe String), String) confirmPopupF :: Graphic msg => F msg (msg, ConfirmMsg) -- | Output from dialog popups with OK and Cancel buttons data ConfirmMsg Confirm :: ConfirmMsg Cancel :: ConfirmMsg oldConfirmPopupF :: F String (String, ConfirmMsg) oldMessagePopupF :: F String (String, Click) messagePopupF :: Graphic msg => F msg (msg, Click) intDispF :: F Int b displayF :: Graphic g => F g void labelF :: Graphic a1 => a1 -> F a2 b data EditStop EditStopFn :: EditStopFn -> EditStop EditPoint :: Point -> EditStop EditLine :: EDirection -> EditStop editF :: FontSpec -> F EditCmd EditEvt data EditEvt EditText :: String -> EditEvt EditField :: (String, String, String) -> EditEvt EditCursor :: Rect -> EditEvt EditChange :: InputMsg String -> EditEvt data EditCmd EditShowCursor :: Bool -> EditCmd EditMove :: EditStop -> IsSelect -> EditCmd EditReplace :: String -> EditCmd EditGetText :: EditCmd EditGetField :: EditCmd EditGetSelection :: EditCmd EditUndo :: EditCmd EditRedo :: EditCmd editorF :: F EditCmd EditEvt editorF' :: Customiser EditorF -> F EditCmd EditEvt selectall :: [EditCmd] loadEditor :: String -> [EditCmd] newline :: Char data EDirection ELeft :: EDirection ERight :: EDirection inputEditorF :: F String (InputMsg String) inputEditorF' :: Customiser EditorF -> F String (InputMsg String) data EditorF type EditStopFn = String -> String -> EditStopChoice data EditStopChoice EdGo :: EDirection -> EditStopFn -> EditStopChoice EdStop :: EditStopChoice type IsSelect = Bool setEditorCursorPos :: (Int, Int) -> [EditCmd] oldFilePickF :: F FilePath (InputMsg String) type PickListRequest a = ListRequest a textF :: F TextRequest (InputMsg (Int, String)) textF' :: Customiser TextF -> F TextRequest (InputMsg (Int, String)) type TextRequest = ListRequest String data TextF class HasInitText xxx setInitText :: HasInitText xxx => [String] -> Customiser xxx getInitText :: HasInitText xxx => xxx -> [String] getInitTextMaybe :: HasInitText xxx => xxx -> Maybe [String] class HasSizing xxx setSizing :: HasSizing xxx => Sizing -> Customiser xxx getSizing :: HasSizing xxx => xxx -> Sizing getSizingMaybe :: HasSizing xxx => xxx -> Maybe Sizing data Sizing Static :: Sizing Growing :: Sizing Dynamic :: Sizing data ListRequest a ReplaceItems :: Int -> Int -> [a] -> ListRequest a HighlightItems :: [Int] -> ListRequest a PickItem :: Int -> ListRequest a replaceAll :: [a] -> ListRequest a replaceAllFrom :: Int -> [a] -> ListRequest a deleteItems :: Int -> Int -> ListRequest a insertItems :: Int -> [a] -> ListRequest a appendItems :: [a] -> ListRequest a changeItems :: Int -> [a] -> ListRequest a replaceItems :: Int -> Int -> [a] -> ListRequest a highlightItems :: [Int] -> ListRequest a pickItem :: Int -> ListRequest a applyListRequest :: ListRequest a -> [a] -> [a] smallPickListF :: (d -> String) -> F [d] d labRightOfF :: Graphic p => p -> F c d -> F c d labLeftOfF :: Graphic p => p -> F c d -> F c d labBelowF :: Graphic p => p -> F c d -> F c d labAboveF :: Graphic p => p -> F c d -> F c d tieLabelF :: Graphic p => Orientation -> Alignment -> p -> F c d -> F c d menuF :: (Graphic mlbl, Graphic albl) => mlbl -> [(alt, albl)] -> F alt alt data PopupMenu PopupMenu :: Point -> XEvent -> PopupMenu PopupMenuStick :: PopupMenu PopdownMenu :: PopupMenu menuPopupF :: F b d -> F (Either PopupMenu b) d pickListF :: (a -> String) -> F (PickListRequest a) (InputMsg (Int, a)) moreShellF :: String -> F [String] (InputMsg (Int, String)) pickListF' :: Customiser TextF -> (a -> String) -> F (PickListRequest a) (InputMsg (Int, a)) moreShellF' :: Customiser TextF -> String -> F [String] (InputMsg (Int, String)) moreFileShellF :: F String (InputMsg (Int, String)) moreFileF :: F String (InputMsg (Int, String)) moreF :: F [String] (InputMsg (Int, String)) moreF' :: Customiser TextF -> F [String] (InputMsg (Int, String)) terminalF :: FontName -> Int -> Int -> F String a cmdTerminalF :: FontName -> Int -> Int -> F TerminalCmd a data TerminalCmd TermText :: String -> TerminalCmd TermAppend :: String -> TerminalCmd TermClear :: TerminalCmd hyperGraphicsF :: (Eq d, Graphic leaf) => Drawing d leaf -> F (Either (Drawing d leaf) (d, Drawing d leaf)) d hyperGraphicsF' :: (Eq d, Graphic leaf) => (GraphicsF (Drawing d leaf) -> GraphicsF (Drawing d leaf)) -> Drawing d leaf -> F (Either (Drawing d leaf) (d, Drawing d leaf)) d data GraphicsF gfx setAdjustSize :: Bool -> Customiser (GraphicsF gfx) contDynF :: F a b -> Cont (F a d) b type Fudget a b = F a b data F hi ho listF :: Eq a => [(a, F b c)] -> F (a, b) (a, c) untaggedListF :: [F a b] -> F a b loopCompF :: F (Either (Either r2l inl) (Either l2r inr)) (Either (Either l2r outl) (Either r2l outr)) -> F (Either inl inr) (Either outl outr) loopCompSP :: SP (Either (Either a1 b1) (Either a2 b2)) (Either (Either a2 a3) (Either a1 b3)) -> SP (Either b1 b2) (Either a3 b3) loopF :: F a a -> F a a loopLeftF :: F (Either a b) (Either a c) -> F b c loopRightF :: F (Either a b) (Either c b) -> F a c loopOnlyF :: F a a -> F a b loopThroughRightF :: F (Either a b) (Either c d) -> F c a -> F b d loopCompThroughLeftF :: F (Either a (Either b c)) (Either b (Either a d)) -> F c d loopCompThroughRightF :: F (Either (Either a b) c) (Either (Either c d) a) -> F b d loopThroughBothF :: F (Either r2l inl) (Either l2r outl) -> F (Either l2r inr) (Either r2l outr) -> F (Either inl inr) (Either outl outr) delayF :: F hi ho -> F hi ho getF :: Cont (F a ho) a putF :: ho -> F hi ho -> F hi ho putsF :: [b] -> F a b -> F a b startupF :: [hi] -> F hi ho -> F hi ho appendStartF :: [ho] -> F hi ho -> F hi ho nullF :: F hi ho parF :: F c ho -> F c ho -> F c ho prodF :: F a b -> F c d -> F (a, c) (Either b d) absF :: SP a b -> F a b bypassF :: F a a -> F a a concatMapF :: (a -> [b]) -> F a b idF :: F b b idLeftF :: F c d -> F (Either b c) (Either b d) idRightF :: F a b -> F (Either a c) (Either b c) mapF :: (a -> b) -> F a b mapstateF :: (t -> a -> (t, [b])) -> t -> F a b serCompLeftToRightF :: F (Either a b) (Either b c) -> F a c serCompRightToLeftF :: F (Either a b) (Either c a) -> F b c stubF :: F a b -> F c d throughF :: F c b -> F c (Either b c) toBothF :: F b (Either b b) (>*<) :: F c ho -> F c ho -> F c ho infixl 5 >*< (>+<) :: F a b -> F c d -> F (Either a c) (Either b d) infixl 5 >+< (>=^<) :: F c d -> (e -> c) -> F e d infixl 6 >=^< (>=^^<) :: F c d -> SP e c -> F e d infixl 6 >=^^< (>#+<) :: (F a b, Orientation) -> F c d -> F (Either a c) (Either b d) infixl 9 >#+< (>#==<) :: (F d f, Orientation) -> F e d -> F e f infixl 9 >#==< (>==<) :: F a1 b -> F a2 a1 -> F a2 b infixr 4 >==< (>^=<) :: (a -> b) -> F e a -> F e b infixr 7 >^=< (>^^=<) :: SP a b -> F e a -> F e b infixr 7 >^^=< prepostMapHigh :: (hi -> b) -> (c -> ho) -> F b c -> F hi ho quitIdF :: (ho -> Bool) -> F ho ho quitF :: F ans ho type DynFMsg a b = DynMsg a (F a b) dynF :: F a b -> F (Either (F a b) a) b dynListF :: F (Int, DynFMsg a b) (Int, b) data DynMsg a b DynCreate :: b -> DynMsg a b DynDestroy :: DynMsg a b DynMsg :: a -> DynMsg a b class FudgetIO f waitForMsg :: FudgetIO f => (KEvent hi -> Maybe ans) -> Cont (f hi ho) ans putMsg :: FudgetIO f => KCommand ho -> f hi ho -> f hi ho type InF a b = F a (InputMsg b) data InputMsg a InputChange :: a -> InputMsg a InputDone :: KeySym -> a -> InputMsg a inputDoneSP :: SP (InputMsg b) b inputLeaveDoneSP :: SP (InputMsg b) b inputListSP :: Eq p1 => [p1] -> SP (p1, InputMsg p2) (InputMsg [(p1, p2)]) inputPairSP :: SP (Either (InputMsg a) (InputMsg b)) (InputMsg (a, b)) inputThroughF :: InF a a -> InF a a inputPairF :: InF a1 b1 -> InF a2 b2 -> InF (a1, a2) (b1, b2) inputListF :: Eq a => [(a, InF b c)] -> InF [(a, b)] [(a, c)] inputChange :: a -> InputMsg a inputListLF :: Eq a => Placer -> [(a, InF b c)] -> F [(a, b)] (InputMsg [(a, c)]) inputPairLF :: Orientation -> InF a1 b1 -> InF a2 b2 -> F (a1, a2) (InputMsg (b1, b2)) stripInputSP :: SP (InputMsg b) b inputButtonKey :: KeySym inputLeaveKey :: KeySym inputMsg :: a -> InputMsg a mapInp :: (t -> a) -> InputMsg t -> InputMsg a stripInputMsg :: InputMsg a -> a inputDone :: InputMsg a -> Maybe a inputLeaveDone :: InputMsg a -> Maybe a tstInp :: (t1 -> t2) -> InputMsg t1 -> t2 data Orientation Above :: Orientation Below :: Orientation RightOf :: Orientation LeftOf :: Orientation alignF :: Size -> Size -> Alignment -> Alignment -> F a b -> F a b marginHVAlignF :: Distance -> Alignment -> Alignment -> F a b -> F a b layoutModifierF :: (LayoutRequest -> LayoutRequest) -> F a b -> F a b noStretchF :: Bool -> Bool -> F a b -> F a b marginF :: Distance -> F a b -> F a b sepF :: Size -> F a b -> F a b autoP :: Placer flipP :: Placer -> Placer permuteP :: [Int] -> Placer -> Placer revP :: Placer -> Placer idP :: Placer type Alignment = Double aBottom :: Alignment aCenter :: Alignment aLeft :: Alignment aRight :: Alignment aTop :: Alignment dynListLF :: Placer -> F (Int, DynFMsg a b) (Int, b) data LayoutDir Horizontal :: LayoutDir Vertical :: LayoutDir listLF :: Eq a => Placer -> [(a, F b c)] -> F (a, b) (a, c) nullLF :: F hi ho holeF :: F hi ho untaggedListLF :: Placer -> [F a b] -> F (Int, a) b data LayoutRequest data Placer center :: Point -> Rect -> Rect center' :: Point -> Size -> Rect -> Rect fixedh :: LayoutRequest -> Bool fixedv :: LayoutRequest -> Bool flipPoint :: Point -> Point flipRect :: Rect -> Rect flipReq :: LayoutRequest -> LayoutRequest data NameLayout type LName = String hvAlignNL :: Alignment -> Alignment -> NameLayout -> NameLayout marginHVAlignNL :: Distance -> Alignment -> Alignment -> NameLayout -> NameLayout hBoxNL :: [NameLayout] -> NameLayout hBoxNL' :: Distance -> [NameLayout] -> NameLayout nullNL :: NameLayout leafNL :: LName -> NameLayout spaceNL :: Spacer -> NameLayout -> NameLayout placeNL :: Placer -> [NameLayout] -> NameLayout listNF :: (Eq a, Show a) => [(a, F b c)] -> F (a, b) (a, c) modNL :: (Placer -> Placer) -> NameLayout -> NameLayout nameF :: LName -> F a b -> F a b nameLayoutF :: NameLayout -> F a b -> F a b sepNL :: Size -> NameLayout -> NameLayout marginNL :: Distance -> NameLayout -> NameLayout vBoxNL :: [NameLayout] -> NameLayout vBoxNL' :: Distance -> [NameLayout] -> NameLayout hBoxF :: F a b -> F a b matrixF :: Int -> F a b -> F a b placerF :: Placer -> F a b -> F a b spacerF :: Spacer -> F a b -> F a b spacer1F :: Spacer -> F a b -> F a b revHBoxF :: F a b -> F a b revVBoxF :: F a b -> F a b spacerP :: Spacer -> Placer -> Placer tableF :: Int -> F a b -> F a b vBoxF :: F a b -> F a b horizontalP :: Placer horizontalP' :: Distance -> Placer matrixP :: Int -> Placer matrixP' :: Int -> LayoutDir -> Distance -> Placer verticalP :: Placer verticalP' :: Distance -> Placer paragraphP :: Placer paragraphP' :: Size -> Placer paragraphP'' :: (Int -> Placer) -> Size -> Placer dynPlacerF :: F c ho -> F (Either Placer c) ho dynSpacerF :: F c ho -> F (Either Spacer c) ho type Distance = Int data Spacer bottomS :: Spacer centerS :: Spacer compS :: Spacer -> Spacer -> Spacer flipS :: Spacer -> Spacer hAlignS :: Alignment -> Spacer sizeS :: Size -> Spacer maxSizeS :: Size -> Spacer minSizeS :: Size -> Spacer hCenterS :: Spacer hMarginS :: Distance -> Distance -> Spacer marginHVAlignS :: Distance -> Alignment -> Alignment -> Spacer hvAlignS :: Alignment -> Alignment -> Spacer hvMarginS :: Size -> Size -> Spacer idS :: Spacer leftS :: Spacer marginS :: Distance -> Spacer sepS :: Size -> Spacer noStretchS :: Bool -> Bool -> Spacer rightS :: Spacer topS :: Spacer vAlignS :: Alignment -> Spacer vCenterS :: Spacer vMarginS :: Distance -> Distance -> Spacer tableP :: Int -> Placer tableP' :: Int -> LayoutDir -> Distance -> Placer bubbleF :: F a b -> F a b bubblePopupF :: F b2 d2 -> F (PopupMsg b2) d2 bubbleRootPopupF :: F b2 d2 -> F (PopupMsg b2) d2 shellF :: String -> F c d -> F c d data PotRequest ResizePot :: Int -> Int -> PotRequest MovePot :: Int -> PotRequest PotMkVisible :: Int -> Int -> Maybe Alignment -> PotRequest PotInput :: (ModState, KeySym) -> PotRequest type PotState = (Int, Int, Int) containerGroupF :: Rect -> Rect -> Int -> Button -> ModState -> F c b -> F (Either (Rect, Rect) c) (Either Rect b) hPotF :: F PotRequest PotState vPotF :: F PotRequest PotState popupShellF :: String -> Maybe Point -> F a b -> F a (a, b) popupShellF' :: Customiser ShellF -> String -> Maybe Point -> F a b -> F a (a, b) data PopupMsg a Popup :: Point -> a -> PopupMsg a Popdown :: PopupMsg a posPopupShellF :: String -> [WindowAttributes] -> F c a -> F (c, Maybe Point) (c, a) hScrollF :: F b d -> F b d scrollF :: F b d -> F b d scrollShellF :: String -> (Point, Point) -> F c d -> F c d vScrollF :: F b d -> F b d data ESelCmd a OwnSel :: ESelCmd a SelCmd :: SelCmd a -> ESelCmd a data ESelEvt a WantSel :: ESelEvt a SelEvt :: SelEvt a -> ESelEvt a data SelCmd a Sel :: a -> SelCmd a ClearSel :: SelCmd a PasteSel :: SelCmd a data SelEvt a LostSel :: SelEvt a SelNotify :: a -> SelEvt a eselectionF :: F (ESelCmd String) (ESelEvt String) selectionF :: F (SelCmd String) (SelEvt String) allcacheF :: F i o -> F i o doubleClickF :: Time -> F a b -> F a b type Time = Int (-+-) :: SP a1 a2 -> SP a3 b -> SP (Either a1 a3) (Either a2 b) infixr 8 -+- (-*-) :: SP a b -> SP a b -> SP a b infixr 8 -*- (-==-) :: SP a1 b -> SP a2 a1 -> SP a2 b infixr 8 -==- compEitherSP :: SP a1 a2 -> SP a3 b -> SP (Either a1 a3) (Either a2 b) idLeftSP :: SP a1 b -> SP (Either a2 a1) (Either a2 b) idRightSP :: SP a1 a2 -> SP (Either a1 b) (Either a2 b) postMapSP :: (t -> b) -> SP a t -> SP a b preMapSP :: SP a b -> (t -> a) -> SP t b prepostMapSP :: (t1 -> a) -> (t2 -> b) -> SP a t2 -> SP t1 b serCompSP :: SP a1 b -> SP a2 a1 -> SP a2 b loopLeftSP :: SP (Either a b1) (Either a b2) -> SP b1 b2 loopSP :: SP a a -> SP a a loopOnlySP :: SP a a -> SP a b loopThroughRightSP :: SP (Either a1 b1) (Either a2 b2) -> SP a2 a1 -> SP b1 b2 loopThroughBothSP :: SP (Either a1 b1) (Either a2 a3) -> SP (Either a2 b2) (Either a1 b3) -> SP (Either b1 b2) (Either a3 b3) parSP :: SP a b -> SP a b -> SP a b seqSP :: SP a b -> SP a b -> SP a b data SP a b nullSP :: SP a b putSP :: b -> SP a b -> SP a b putsSP :: [b] -> SP a b -> SP a b getSP :: Cont (SP a b) a class StreamProcIO sp put :: StreamProcIO sp => o -> sp i o -> sp i o get :: StreamProcIO sp => (i -> sp i o) -> sp i o end :: StreamProcIO sp => sp i o runSP :: SP a1 a2 -> [a1] -> [a2] walkSP :: SP a1 a2 -> a1 -> ([a2], SP a1 a2) pullSP :: SP a1 a2 -> ([a2], SP a1 a2) idSP :: SP b b filterSP :: (b -> Bool) -> SP b b filterJustSP :: SP (Maybe b) b filterLeftSP :: SP (Either b1 b2) b1 filterRightSP :: SP (Either a1 b) b mapFilterSP :: (t -> Maybe b) -> SP t b splitSP :: SP (a, b) (Either a b) toBothSP :: SP b (Either b b) concatSP :: SP [b] b concSP :: SP [b] b mapSP :: (t -> b) -> SP t b concatMapSP :: (t -> [b]) -> SP t b concmapSP :: (t -> [b]) -> SP t b concatMapAccumlSP :: (t -> a -> (t, [b])) -> t -> SP a b mapstateSP :: (t -> a -> (t, [b])) -> t -> SP a b mapAccumlSP :: (t -> a -> (t, b)) -> t -> SP a b zipSP :: [a] -> SP b (a, b) type Cont c a = (a -> c) -> c appendStartSP :: [b] -> SP a b -> SP a b chopSP :: ((b -> SP a b) -> SP a b) -> SP a b delaySP :: SP a b -> SP a b feedSP :: a -> [a] -> SP a b -> SP a b splitAtElemSP :: (a -> Bool) -> Cont (SP a b) [a] startupSP :: [a] -> SP a b -> SP a b stepSP :: [b] -> Cont (SP a b) a cmdContSP :: a -> (b -> Maybe c) -> Cont (SP b a) c conts :: (a -> Cont c b) -> [a] -> Cont c [b] getLeftSP :: (t -> SP (Either t b1) b2) -> SP (Either t b1) b2 getRightSP :: (t -> SP (Either a1 t) b) -> SP (Either a1 t) b waitForSP :: (a -> Maybe t) -> (t -> SP a b) -> SP a b waitForF :: (a -> Maybe b) -> Cont (F a c) b dropSP :: (t1 -> Maybe t2) -> (t2 -> SP t1 b) -> SP t1 b contMap :: StreamProcIO sp => (i -> (o -> sp i o) -> sp i o) -> sp i o hIOF :: Request -> (Response -> F a b) -> F a b hIOSuccF :: Request -> F a b -> F a b hIOerrF :: Request -> (IOError -> F a b) -> (Response -> F a b) -> F a b haskellIOF :: Request -> (Response -> F a b) -> F a b inputLinesSP :: SP [Char] [Char] linesSP :: SP Char [Char] outputF :: String -> F String a stderrF :: F String a stdinF :: F hi String stdioF :: F String String stdoutF :: F String a subProcessF :: String -> F [Char] (Either String String) appStorageF :: (Read a, Show a) => String -> a -> F a a readDirF :: F String (String, Either IOError [String]) readFileF :: F String (String, Either IOError String) writeFileF :: F (String, String) (String, Either IOError ()) type Host = String newtype LSocket LSo :: Int -> LSocket type Peer = Host type Port = Int newtype Socket So :: Int -> Socket openLSocketF :: FudgetIO f => Port -> (LSocket -> f hi ho) -> f hi ho openSocketF :: FudgetIO f => Host -> Port -> (Socket -> f hi ho) -> f hi ho receiverF :: Socket -> F e String transceiverF :: Socket -> F [Char] String transmitterF :: Socket -> F [Char] b asyncTransmitterF :: Socket -> F String b asyncTransceiverF :: Socket -> F String String data Tick Tick :: Tick timerF :: F (Maybe (Int, Int)) Tick fudlogue :: F a b -> IO () fudlogue' :: Customiser Fudlogue -> F a b -> IO () data Fudlogue argFlag :: [Char] -> Bool -> Bool argKey :: [Char] -> [Char] -> [Char] argReadKey :: (Read p, Show p) => [Char] -> p -> p argKeyList :: [Char] -> [[Char]] -> [[Char]] args :: [[Char]] progName :: String bgColor :: ColorName buttonFont :: FontName defaultFont :: FontName defaultSize :: Maybe Point defaultPosition :: Maybe Point defaultSep :: Num a => a edgeWidth :: Int fgColor :: ColorName labelFont :: FontName look3d :: Bool menuFont :: FontName options :: [([Char], [Char])] paperColor :: ColorName shadowColor :: ColorName shineColor :: ColorName filterLeft :: [Either b1 b2] -> [b1] filterRight :: [Either a b] -> [b] isLeft :: Either a b -> Bool isRight :: Either a b -> Bool mapEither :: (t1 -> a) -> (t2 -> b) -> Either t1 t2 -> Either a b fromLeft :: Either a b -> a fromRight :: Either a b -> b plookup :: Foldable t => (b1 -> Bool) -> t (b1, b2) -> Maybe b2 splitEitherList :: [Either a1 a2] -> ([a1], [a2]) stripEither :: Either a a -> a stripLeft :: Either a b -> Maybe a stripRight :: Either a1 a2 -> Maybe a2 swapEither :: Either b a -> Either a b (=.>) :: Point -> Point -> Bool data Line Line :: Point -> Point -> Line data Point Point :: Int -> Point [xcoord, ycoord] :: Point -> Int data Rect Rect :: Point -> Size -> Rect [rectpos] :: Rect -> Point [rectsize] :: Rect -> Size type Size = Point class Move a move :: Move a => Point -> a -> a -- | confine outer inner: moves an shrinks inner to fit within outer confine :: Rect -> Rect -> Rect diag :: Int -> Point freedom :: Rect -> Rect -> Point growrect :: Rect -> Point -> Rect inRect :: Point -> Rect -> Bool lL :: Int -> Int -> Int -> Int -> Line line2rect :: Line -> Rect moveline :: Line -> Point -> Line moverect :: Rect -> Point -> Rect origin :: Point pMax :: [Point] -> Point pMin :: [Point] -> Point pP :: Int -> Int -> Point padd :: Point -> Point -> Point plim :: Point -> Point -> Point -> Point pmax :: Point -> Point -> Point pmin :: Point -> Point -> Point posrect :: Rect -> Point -> Rect psub :: Point -> Point -> Point rR :: Int -> Int -> Int -> Int -> Rect rect2line :: Rect -> Line rectMiddle :: Rect -> Point -- | rmax gives an enclosing rect rmax :: Rect -> Rect -> Rect rsub :: Rect -> Rect -> Point scale :: (RealFrac a1, Integral b, Integral a2) => a1 -> a2 -> b scalePoint :: RealFrac a => a -> Point -> Point sizerect :: Rect -> Size -> Rect aboth :: (t -> b) -> (t, t) -> (b, b) -- | Apply a function to the nth element of a list anth :: Int -> (a -> a) -> [a] -> [a] gmap :: Foldable t1 => (t2 -> [a] -> [a]) -> (t3 -> t2) -> t1 t3 -> [a] issubset :: (Foldable t1, Foldable t2, Eq a) => t1 a -> t2 a -> Bool -- | lhead xs ys = take (length xs) ys, but the rhs is stricter lhead :: [a1] -> [a2] -> [a2] loop :: (t -> t) -> t -- | lsplit xs ys = (lhead xs ys,ltail xs ys), but without the space leak, -- -fpbu lsplit :: [a1] -> [a2] -> ([a2], [a2]) -- | ltail xs ys = drop (length xs) ys, but the rhs is stricter ltail :: [a1] -> [a2] -> [a2] mapPair :: (t1 -> a, t2 -> b) -> (t1, t2) -> (a, b) number :: Int -> [a] -> [(Int, a)] oo :: (t1 -> t2) -> (t3 -> t4 -> t1) -> t3 -> t4 -> t2 pair :: a -> b -> (a, b) pairwith :: (t -> b) -> t -> (t, b) -- | JSP 920928 part :: (a -> Bool) -> [a] -> ([a], [a]) -- | Remove the first occurence remove :: Eq t => t -> [t] -> [t] -- | Replace the first occurence replace :: Eq a => (a, b) -> [(a, b)] -> [(a, b)] swap :: (b, a) -> (a, b) unionmap :: (Foldable t1, Eq a) => (t2 -> [a]) -> t1 t2 -> [a] version :: String -- | only for documentation, use version instead version_0_18_4 :: String data XCommand data XEvent type Path = [Direction] data Button AnyButton :: Button Button :: Int -> Button type ColorName = String type FontName = String type KeySym = String type FontStruct = FontStructF (Array Char CharStruct) data RGB RGB :: Int -> Int -> Int -> RGB data WindowAttributes type ModState = [Modifiers] data Modifiers Shift :: Modifiers Lock :: Modifiers Control :: Modifiers Mod1 :: Modifiers Mod2 :: Modifiers Mod3 :: Modifiers Mod4 :: Modifiers Mod5 :: Modifiers Button1 :: Modifiers Button2 :: Modifiers Button3 :: Modifiers Button4 :: Modifiers Button5 :: Modifiers Mod13 :: Modifiers Mod14 :: Modifiers Any :: Modifiers data CoordMode CoordModeOrigin :: CoordMode CoordModePrevious :: CoordMode data Shape Complex :: Shape Nonconvex :: Shape Convex :: Shape data DrawCommand DrawLine :: Line -> DrawCommand DrawImageString :: Point -> String -> DrawCommand DrawString :: Point -> String -> DrawCommand DrawRectangle :: Rect -> DrawCommand FillRectangle :: Rect -> DrawCommand FillPolygon :: Shape -> CoordMode -> [Point] -> DrawCommand DrawArc :: Rect -> Int -> Int -> DrawCommand FillArc :: Rect -> Int -> Int -> DrawCommand CopyArea :: Drawable -> Rect -> Point -> DrawCommand CopyPlane :: Drawable -> Rect -> Point -> Int -> DrawCommand DrawPoint :: Point -> DrawCommand CreatePutImage :: Rect -> ImageFormat -> [Pixel] -> DrawCommand DrawLines :: CoordMode -> [Point] -> DrawCommand DrawImageString16 :: Point -> String -> DrawCommand DrawString16 :: Point -> String -> DrawCommand fillCircle :: Point -> Int -> DrawCommand drawCircle :: Point -> Int -> DrawCommand class Graphic a measureGraphicK :: (Graphic a, FudgetIO k) => a -> GCtx -> Cont (k i o) MeasuredGraphics measureGraphicListK :: (Graphic a, FudgetIO k) => [a] -> GCtx -> Cont (k i o) MeasuredGraphics data Drawing lbl leaf AtomicD :: leaf -> Drawing lbl leaf LabelD :: lbl -> Drawing lbl leaf -> Drawing lbl leaf AttribD :: GCSpec -> Drawing lbl leaf -> Drawing lbl leaf SpacedD :: Spacer -> Drawing lbl leaf -> Drawing lbl leaf PlacedD :: Placer -> Drawing lbl leaf -> Drawing lbl leaf -- | Int=how many visible components ComposedD :: Int -> [Drawing lbl leaf] -> Drawing lbl leaf CreateHardAttribD :: GCtx -> [GCAttributes ColorSpec FontSpec] -> (GCtx -> Drawing lbl leaf) -> Drawing lbl leaf atomicD :: leaf -> Drawing lbl leaf labelD :: lbl -> Drawing lbl leaf -> Drawing lbl leaf up :: DPath -> DPath boxD :: [Drawing lbl leaf] -> Drawing lbl leaf hboxD :: [Drawing lbl leaf] -> Drawing lbl leaf hboxD' :: Distance -> [Drawing lbl leaf] -> Drawing lbl leaf vboxD :: [Drawing lbl leaf] -> Drawing lbl leaf vboxD' :: Distance -> [Drawing lbl leaf] -> Drawing lbl leaf tableD :: Int -> [Drawing lbl leaf] -> Drawing lbl leaf tableD' :: Distance -> Int -> [Drawing lbl leaf] -> Drawing lbl leaf hboxcD :: [Drawing lbl leaf] -> Drawing lbl leaf hboxcD' :: Distance -> [Drawing lbl leaf] -> Drawing lbl leaf vboxlD :: [Drawing lbl leaf] -> Drawing lbl leaf vboxlD' :: Distance -> [Drawing lbl leaf] -> Drawing lbl leaf matrixD :: Int -> [Drawing lbl leaf] -> Drawing lbl leaf matrixD' :: Distance -> Int -> [Drawing lbl leaf] -> Drawing lbl leaf attribD :: GCSpec -> Drawing lbl leaf -> Drawing lbl leaf softAttribD :: [GCAttributes ColorSpec FontSpec] -> Drawing lbl leaf -> Drawing lbl leaf hardAttribD :: GCtx -> Drawing lbl leaf -> Drawing lbl leaf fontD :: (Show a, FontGen a) => a -> Drawing lbl leaf -> Drawing lbl leaf fgD :: (Show a, ColorGen a) => a -> Drawing lbl leaf -> Drawing lbl leaf stackD :: [Drawing lbl leaf] -> Drawing lbl leaf spacedD :: Spacer -> Drawing lbl leaf -> Drawing lbl leaf placedD :: Placer -> Drawing lbl leaf -> Drawing lbl leaf blankD :: Size -> Drawing lbl Gfx filledRectD :: Size -> Drawing lbl Gfx rectD :: Size -> Drawing lbl Gfx type DPath = [Int] data Gfx g :: Graphic a => a -> Drawing lbl Gfx data FixedDrawing FixD :: Size -> [DrawCommand] -> FixedDrawing data FixedColorDrawing FixCD :: Size -> [(GCId, [DrawCommand])] -> FixedColorDrawing gctx2gc :: GCtx -> GCId data FlexibleDrawing FlexD :: Size -> Bool -> Bool -> (Rect -> [DrawCommand]) -> FlexibleDrawing flex :: (Rect -> [DrawCommand]) -> FlexibleDrawing flex' :: Size -> (Rect -> [DrawCommand]) -> FlexibleDrawing filler :: Bool -> Bool -> Int -> FlexibleDrawing hFiller :: Int -> FlexibleDrawing vFiller :: Int -> FlexibleDrawing frame :: FlexibleDrawing frame' :: Size -> FlexibleDrawing ellipse :: FlexibleDrawing ellipse' :: Size -> FlexibleDrawing arc :: Int -> Int -> FlexibleDrawing arc' :: Size -> Int -> Int -> FlexibleDrawing filledEllipse :: FlexibleDrawing filledEllipse' :: Size -> FlexibleDrawing filledarc :: Int -> Int -> FlexibleDrawing filledarc' :: Size -> Int -> Int -> FlexibleDrawing lpar :: FlexibleDrawing rpar :: FlexibleDrawing lbrack :: FlexibleDrawing rbrack :: FlexibleDrawing lbrace :: FlexibleDrawing rbrace :: FlexibleDrawing triangleUp :: FlexibleDrawing triangleDown :: FlexibleDrawing filledTriangleUp :: FlexibleDrawing filledTriangleDown :: FlexibleDrawing data BitmapFile BitmapFile :: String -> BitmapFile class ColorGen a tryConvColorK :: (ColorGen a, FudgetIO f) => a -> Cont (f i o) (Maybe Pixel) convColorListK :: (ColorGen a, FudgetIO f) => [a] -> Cont (f i o) (Maybe Pixel) class FontGen a tryConvFontK :: (FontGen a, FudgetIO f) => a -> Cont (f i o) (Maybe FontData) convFontListK :: (FontGen a, FudgetIO f) => [a] -> Cont (f i o) (Maybe FontData) data FontSpec data ColorSpec colorSpec :: (Show a, ColorGen a) => a -> ColorSpec fontSpec :: (Show a, FontGen a) => a -> FontSpec data GCtx rootGCtx :: GCtx wCreateGCtx :: (ColorGen a1, FudgetIO f, FontGen a2, Show a1, Show a2) => GCtx -> [GCAttributes a1 a2] -> (GCtx -> f i o) -> f i o createGCtx :: (ColorGen a1, FudgetIO f, FontGen a2, Show a1, Show a2) => Drawable -> GCtx -> [GCAttributes a1 a2] -> (GCtx -> f i o) -> f i o gcFgA :: c -> [GCAttributes c FontSpec] gcBgA :: c -> [GCAttributes c FontSpec] gcFontA :: f -> [GCAttributes ColorSpec f] data GCAttributes a b GCFunction :: GCFunction -> GCAttributes a b GCForeground :: a -> GCAttributes a b GCBackground :: a -> GCAttributes a b GCLineWidth :: Width -> GCAttributes a b GCLineStyle :: GCLineStyle -> GCAttributes a b GCFont :: b -> GCAttributes a b GCCapStyle :: GCCapStyle -> GCAttributes a b GCSubwindowMode :: GCSubwindowMode -> GCAttributes a b GCGraphicsExposures :: Bool -> GCAttributes a b GCFillStyle :: GCFillStyle -> GCAttributes a b GCTile :: PixmapId -> GCAttributes a b GCStipple :: PixmapId -> GCAttributes a b GCJoinStyle :: GCJoinStyle -> GCAttributes a b data GCFillStyle FillSolid :: GCFillStyle FillTiled :: GCFillStyle FillStippled :: GCFillStyle FillOpaqueStippled :: GCFillStyle data GCCapStyle CapNotLast :: GCCapStyle CapButt :: GCCapStyle CapRound :: GCCapStyle CapProjecting :: GCCapStyle data GCLineStyle LineSolid :: GCLineStyle LineDoubleDash :: GCLineStyle LineOnOffDash :: GCLineStyle data GCFunction GXclear :: GCFunction GXand :: GCFunction GXandReverse :: GCFunction GXcopy :: GCFunction GXandInverted :: GCFunction GXnoop :: GCFunction GXxor :: GCFunction GXor :: GCFunction GXnor :: GCFunction GXequiv :: GCFunction GXinvert :: GCFunction GXorReverse :: GCFunction GXCopyInverted :: GCFunction GXorInverted :: GCFunction GXnand :: GCFunction GXset :: GCFunction type Width = Int type Customiser a = a -> a type PF p a b = F (Either (Customiser p) a) b standard :: Customiser a class HasClickToType xxx setClickToType :: HasClickToType xxx => Bool -> Customiser xxx getClickToType :: HasClickToType xxx => xxx -> Bool getClickToTypeMaybe :: HasClickToType xxx => xxx -> Maybe Bool class HasVisible xxx setVisible :: HasVisible xxx => Bool -> Customiser xxx getVisible :: HasVisible xxx => xxx -> Bool getVisibleMaybe :: HasVisible xxx => xxx -> Maybe Bool class HasFontSpec xxx setFontSpec :: HasFontSpec xxx => FontSpec -> Customiser xxx getFontSpec :: HasFontSpec xxx => xxx -> FontSpec getFontSpecMaybe :: HasFontSpec xxx => xxx -> Maybe FontSpec setFont :: (HasFontSpec xxx, Show a, FontGen a) => a -> Customiser xxx class HasKeys xxx setKeys :: HasKeys xxx => [(ModState, KeySym)] -> Customiser xxx getKeys :: HasKeys xxx => xxx -> [(ModState, KeySym)] getKeysMaybe :: HasKeys xxx => xxx -> Maybe [(ModState, KeySym)] class HasWinAttr xxx setWinAttr :: HasWinAttr xxx => [WindowAttributes] -> Customiser xxx getWinAttr :: HasWinAttr xxx => xxx -> [WindowAttributes] getWinAttrMaybe :: HasWinAttr xxx => xxx -> Maybe [WindowAttributes] class HasBorderWidth xxx setBorderWidth :: HasBorderWidth xxx => Int -> Customiser xxx getBorderWidth :: HasBorderWidth xxx => xxx -> Int getBorderWidthMaybe :: HasBorderWidth xxx => xxx -> Maybe Int class HasBgColorSpec xxx setBgColorSpec :: HasBgColorSpec xxx => ColorSpec -> Customiser xxx getBgColorSpec :: HasBgColorSpec xxx => xxx -> ColorSpec getBgColorSpecMaybe :: HasBgColorSpec xxx => xxx -> Maybe ColorSpec class HasFgColorSpec xxx setFgColorSpec :: HasFgColorSpec xxx => ColorSpec -> Customiser xxx getFgColorSpec :: HasFgColorSpec xxx => xxx -> ColorSpec getFgColorSpecMaybe :: HasFgColorSpec xxx => xxx -> Maybe ColorSpec class HasMargin xxx setMargin :: HasMargin xxx => Int -> Customiser xxx getMargin :: HasMargin xxx => xxx -> Int getMarginMaybe :: HasMargin xxx => xxx -> Maybe Int setBgColor :: (HasBgColorSpec xxx, Show p, ColorGen p) => p -> Customiser xxx setFgColor :: (HasFgColorSpec xxx, Show p, ColorGen p) => p -> Customiser xxx class HasAlign xxx setAlign :: HasAlign xxx => Alignment -> Customiser xxx getAlign :: HasAlign xxx => xxx -> Alignment getAlignMaybe :: HasAlign xxx => xxx -> Maybe Alignment setAllowedChar :: (Char -> Bool) -> Customiser StringF setShowString :: (String -> String) -> Customiser StringF setCursorPos :: Int -> Customiser StringF class HasCache xxx setCache :: HasCache xxx => Bool -> Customiser xxx getCache :: HasCache xxx => xxx -> Bool getCacheMaybe :: HasCache xxx => xxx -> Maybe Bool setDeleteQuit :: Bool -> Customiser ShellF setDeleteWindowAction :: Maybe DeleteWindowAction -> Customiser ShellF data DeleteWindowAction DeleteQuit :: DeleteWindowAction DeleteUnmap :: DeleteWindowAction class HasInitSize xxx setInitSize :: HasInitSize xxx => a -> Customiser (xxx a) getInitSizeMaybe :: HasInitSize xxx => xxx a -> Maybe a getInitSize :: HasInitSize xxx => xxx a -> a class HasInitDisp xxx setInitDisp :: HasInitDisp xxx => a -> Customiser (xxx a) getInitDispMaybe :: HasInitDisp xxx => xxx a -> Maybe a getInitDisp :: HasInitDisp xxx => xxx a -> a setSpacer :: Spacer -> Customiser (DisplayF a) class HasStretchable xxx setStretchable :: HasStretchable xxx => (Bool, Bool) -> Customiser xxx getStretchable :: HasStretchable xxx => xxx -> (Bool, Bool) getStretchableMaybe :: HasStretchable xxx => xxx -> Maybe (Bool, Bool) class HasLabelInside xxx setLabelInside :: HasLabelInside xxx => Bool -> Customiser xxx getLabelInside :: HasLabelInside xxx => xxx -> Bool getLabelInsideMaybe :: HasLabelInside xxx => xxx -> Maybe Bool setPlacer :: Placer -> Customiser RadioGroupF data ShellF shellF' :: Customiser ShellF -> String -> F c d -> F c d setInitPos :: Maybe Point -> Customiser ShellF unmappedSimpleShellF :: String -> F i o -> F i o unmappedSimpleShellF' :: Customiser ShellF -> String -> F i o -> F i o data ButtonF lbl buttonF' :: Graphic lbl => Customiser (ButtonF lbl) -> lbl -> F Click Click buttonF'' :: Graphic lbl => Customiser (ButtonF lbl) -> lbl -> PF (ButtonF lbl) Click Click setLabel :: lbl -> Customiser (ButtonF lbl) data DisplayF a displayF' :: Graphic a => Customiser (DisplayF a) -> F a b labelF' :: Graphic a1 => Customiser (DisplayF a1) -> a1 -> F a2 b data StringF stringF' :: Customiser StringF -> F String (InputMsg String) stringF'' :: Customiser StringF -> PF StringF String (InputMsg String) setInitString :: String -> Customiser StringF setInitStringSize :: String -> Customiser StringF passwdF' :: (StringF -> StringF) -> F String (InputMsg String) passwdF'' :: (StringF -> StringF) -> PF StringF String (InputMsg String) intF' :: Customiser StringF -> F Int (InputMsg Int) intF'' :: Customiser StringF -> PF StringF Int (InputMsg Int) intDispF' :: Customiser (DisplayF Int) -> F Int b gcWarningF :: F a b bellF :: F ho ho getTime :: FudgetIO f => (ClockTime -> f hi ho) -> f hi ho getLocalTime :: FudgetIO f => (CalendarTime -> f hi ho) -> f hi ho getCurrentTime :: FudgetIO f => (UTCTime -> f hi ho) -> f hi ho getZonedTime :: FudgetIO f => (ZonedTime -> f hi ho) -> f hi ho spyF :: (Show b, Show a1) => F a1 b -> F a1 b teeF :: (b -> [Char]) -> [Char] -> F b b ctrace :: Show a1 => [Char] -> a1 -> a2 -> a2 showCommandF :: String -> F a b -> F a b -- | Type-safe network sockets, as described in Client/Server -- Applications with Fudgets. module TypedSockets data TPort a b tPort :: (Show a, Read a, Show b, Read b) => Port -> TPort a b tSocketServerF :: (Read c, Show s) => TPort c s -> (Peer -> F s (SocketMsg c) -> F a (SocketMsg b)) -> F (Int, a) (Int, ClientMsg b) data TServerAddress c s tServerAddress :: Host -> TPort c s -> TServerAddress c s tTransceiverF :: (Show c, Read s) => TServerAddress c s -> F c (SocketMsg s) data ClientMsg a ClientMsg :: a -> ClientMsg a ClientEOS :: ClientMsg a ClientNew :: ClientMsg a data SocketMsg a SocketMsg :: a -> SocketMsg a SocketEOS :: SocketMsg a -- | Program stateful abstract fudgets in a monadic style module ReactiveF reactiveF :: (a -> ReactionM t b a2) -> t -> F a b reactiveSP :: (a -> ReactionM t b a2) -> t -> SP a b module TreeBrowser data Tree leaf node Leaf :: leaf -> Tree leaf node Node :: node -> [Tree leaf node] -> Tree leaf node treeBrowserF' :: (Graphic node, Graphic leaf) => Tree leaf node -> F (Tree leaf node) (Tree leaf node) treeDisplayF' :: (Graphic node, Graphic leaf) => Tree leaf node -> F (Tree leaf node) (Tree leaf node) instance (GHC.Show.Show leaf, GHC.Show.Show node) => GHC.Show.Show (TreeBrowser.Tree leaf node) module ConnectF tagF :: (o -> h) -> F i o -> TagF i o h (FUN 'Many i :: TYPE LiftedRep -> Type) data TagF i o h t TagF :: F i o -> (o -> h) -> t i -> TagF i o h t (>&<) :: forall {f2 :: Type -> Type} {f1 :: Type -> Type} {i} {a} {h} {b} {b}. (Tag f2, Tag f1) => TagF i a h f1 -> TagF b b h f2 -> TagF (Either i b) (Either a b) h (Tags f1 f2) infixl 9 >&< compTagF :: forall {f2 :: Type -> Type} {f1 :: Type -> Type} {i} {a} {b} {b} {h}. (Tag f2, Tag f1) => (F i a -> F b b -> F (Either i b) (Either a b)) -> TagF i a h f1 -> TagF b b h f2 -> TagF (Either i b) (Either a b) h (Tags f1 f2) mapTF :: forall {i} {o} {h} {t :: Type -> Type}. (F i o -> F i o) -> TagF i o h t -> TagF i o h t ltr :: forall {f2 :: Type -> Type} {b} {c} {b} {a} {b}. Tag f2 => (b -> c) -> TagF b a c f2 -> (F b a, Either a b -> c, Tags (FUN 'Many b :: TYPE LiftedRep -> Type) f2 (Either b b)) class Tag f extend :: Tag f => (b -> c) -> f b -> f c data Tags f1 f2 a (:&:) :: f1 a -> f2 a -> Tags f1 f2 a infixl 9 :&: no :: p -> Maybe a yes :: a -> Maybe a left :: (a -> Maybe a) -> Either a b -> Maybe a right :: (b -> Maybe a) -> Either a b -> Maybe a leftleft :: (a -> Maybe a) -> Either (Either a b) b -> Maybe a leftyes :: Either a b -> Maybe a instance (ConnectF.Tag f1, ConnectF.Tag f2) => ConnectF.Tag (ConnectF.Tags f1 f2) instance ConnectF.Tag ((->) a) -- | Contributed add-ons to the Fudget Library module ContribFudgets bitmapButtonF :: [(ModState, KeySym)] -> FilePath -> F BitmapReturn Click bitmapDispF :: FilePath -> F BitmapReturn a bitmapDispBorderF :: Int -> FilePath -> F BitmapReturn a radioF1 :: Eq a => RadioButtonBorderType -> FontName -> [(a, String)] -> a -> F a a radioGroupF1 :: Eq a => RadioButtonBorderType -> FontName -> [a] -> a -> (a -> String) -> F a a toggleF1 :: RBBT -> [(ModState, KeySym)] -> F a b -> F (Either Bool a) (Either Bool b) toggleButtonF1 :: RadioButtonBorderType -> String -> [(ModState, KeySym)] -> String -> F Bool Bool data RBBT Circle :: RBBT Square :: RBBT Triangle :: RBBT titleShellF :: String -> F c d -> F (Either String c) d titleShellF' :: (ShellF -> ShellF) -> String -> F c d -> F (Either String c) d wmShellF :: String -> F c d -> F (Either (Either String Bool) c) (Either () d) wmShellF' :: (ShellF -> ShellF) -> String -> F c d -> F (Either (Either String Bool) c) (Either () d) auxShellF :: String -> F c b -> F (Either Bool c) (Either Bool b) delayedAuxShellF :: String -> F c b -> F (Either Bool c) (Either Bool b) delayedAuxShellF' :: (ShellF -> ShellF) -> String -> F c b -> F (Either Bool c) (Either Bool b) auxShellF' :: (ShellF -> ShellF) -> String -> F c b -> F (Either Bool c) (Either Bool b) data SmileyMode Sad :: SmileyMode Indifferent :: SmileyMode Happy :: SmileyMode smileyF :: F SmileyMode void smileyF' :: Customiser (DisplayF SmileyMode) -> F SmileyMode void smileyD :: SmileyMode -> FixedDrawing menuF :: Eq a => Menu a -> F a a menuBarF :: Eq a => Menu a -> F a a type MenuBar a = Menu a type Menu a = [MenuItem' a] type MenuItem' a = Item (MenuItem a) data Item a item :: Graphic a => a -> a -> Item a item' :: Graphic a => Keys -> a -> a -> Item a key :: Item a -> [Char] -> Item a itemValue :: Item a -> a cmdItem :: Graphic a => p -> a -> Item (MenuItem p) subMenuItem :: (Graphic a, Eq b) => Transl b a -> Menu b -> a -> Item (MenuItem a) toggleItem :: Graphic a => Transl Bool a -> Bool -> a -> Item (MenuItem a) sepItem :: Item (MenuItem a) radioGroupItem :: (Graphic a, Eq a) => Transl a a -> [Item a] -> a -> a -> Item (MenuItem a) dynRadioGroupItem :: (Graphic a, Eq a) => Transl ([Item a], a) a -> [Item a] -> a -> a -> Item (MenuItem a) delayedSubMenuItem :: (Graphic a, Eq b) => Transl b a -> Menu b -> a -> Item (MenuItem a) data MenuItem a MenuCommand :: a -> MenuItem a MenuToggle :: Transl Bool a -> Bool -> MenuItem a MenuRadioGroup :: Transl b a -> [Item b] -> b -> MenuItem a MenuDynRadioGroup :: Transl ([Item b], b) a -> [Item b] -> b -> MenuItem a SubMenu :: Bool -> Transl b a -> Menu b -> MenuItem a MenuLabel :: MenuItem a menu :: Eq b => Transl b a -> Menu b -> MenuItem a data Transl l g Transl :: (l -> g) -> (g -> Maybe l) -> Transl l g idT :: Transl g g compT :: Transl b g -> Transl l b -> Transl l g menuIcon :: FixedDrawing helpBubbleF :: Graphic a1 => a1 -> F c d -> F c d fileShellF :: (c -> String, String -> Either String c, Maybe c) -> [Char] -> F c (InputMsg c) -> F c d fileShellF' :: (ShellF -> ShellF) -> (c -> String, String -> Either String c, Maybe c) -> [Char] -> F c (InputMsg c) -> F c d textFileShellF :: [Char] -> F String (InputMsg String) -> F c d textFileShellF' :: (ShellF -> ShellF) -> [Char] -> F String (InputMsg String) -> F c d showReadFileShellF :: (Show c, Read c) => Maybe c -> [Char] -> F c (InputMsg c) -> F c d showReadFileShellF' :: (Show c, Read c) => (ShellF -> ShellF) -> Maybe c -> [Char] -> F c (InputMsg c) -> F c d filePickF :: F (String, Maybe FilePath) (Maybe FilePath) filePickF' :: Graphic t3 => [(AFilePath -> AFilePath, KeySym, t3)] -> F (String, Maybe FilePath) (Maybe FilePath) filePickPopupF :: F (a, (String, Maybe FilePath)) ((a, (String, Maybe FilePath)), FilePath) filePickPopupF' :: Graphic t3 => [(AFilePath -> AFilePath, KeySym, t3)] -> F (a, (String, Maybe FilePath)) ((a, (String, Maybe FilePath)), FilePath) filePickPopupOptF :: F (a, (String, Maybe FilePath)) ((a, (String, Maybe FilePath)), Maybe FilePath) filePickPopupOptF' :: Graphic t3 => [(AFilePath -> AFilePath, KeySym, t3)] -> F (a, (String, Maybe FilePath)) ((a, (String, Maybe FilePath)), Maybe FilePath) startDir :: FilePath aFilePath :: FilePath -> AFilePath popup :: (String, Maybe a) stdcc :: Char completeFromList :: Eq a => [[a]] -> [a] -> [([a], [a])] completionStringF :: F (Either ([Char] -> [(a, [Char])]) [Char]) (Either [(a, [Char])] (InputMsg [Char])) completionStringF' :: Char -> Customiser StringF -> F (Either ([Char] -> [(a, [Char])]) [Char]) (Either [(a, [Char])] (InputMsg [Char])) completionStringF'' :: Char -> Customiser StringF -> F (Either ([Char] -> [(a, [Char])]) (Either (Customiser StringF) [Char])) (Either [(a, [Char])] (InputMsg [Char])) endButtonsF :: F (Either Click Click) (Either Click Click) endButtonsF' :: F String (Either Click Click) meterF :: RealFrac v => InF v (Ratio Int) meterF' :: RealFrac e => (GraphicsF FlexibleDrawing -> GraphicsF FlexibleDrawing) -> F e (InputMsg (Ratio Int)) meterD :: RealFrac p => p -> FlexibleDrawing meterFg :: ColorSpec meterBg :: ColorSpec hSplitF :: F a a -> F b b -> F (Either a b) (Either a b) vSplitF :: F a a -> F b b -> F (Either a b) (Either a b) hSplitF' :: Alignment -> F a a -> F b b -> F (Either a b) (Either a b) vSplitF' :: Alignment -> F a a -> F b b -> F (Either a b) (Either a b) splitF' :: LayoutDir -> Alignment -> F a a -> F b b -> F (Either a b) (Either a b) data ClientMsg a ClientMsg :: a -> ClientMsg a ClientEOS :: ClientMsg a ClientNew :: ClientMsg a data SocketMsg a SocketMsg :: a -> SocketMsg a SocketEOS :: SocketMsg a mapSocketMsg :: (t -> a) -> SocketMsg t -> SocketMsg a socketServerF :: Port -> (Socket -> Peer -> F a (SocketMsg a)) -> F (Int, a) (Int, ClientMsg a)