From 8228312e2cdacbcec493482c02be42f5b56b8a91 Mon Sep 17 00:00:00 2001 From: Spencer Janssen Date: Mon, 4 Jun 2007 08:25:01 +0200 Subject: Add integrate darcs-hash:20070604062501-a5988-52b9c72b3f989ac55438677442db48d0cf5d06e7.gz --- StackSet.hs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/StackSet.hs b/StackSet.hs index 7374da3..1f6db7e 100644 --- a/StackSet.hs +++ b/StackSet.hs @@ -76,7 +76,7 @@ -- module StackSet ( StackSet(..), Workspace(..), Screen(..), Stack(..), RationalRect(..), - new, view, lookupWorkspace, peek, index, focusUp, focusDown, + new, view, lookupWorkspace, peek, index, integrate, focusUp, focusDown, focusWindow, member, findIndex, insertUp, delete, shift, swapMaster, swapUp, swapDown, modify, float, sink -- needed by users ) where @@ -243,6 +243,13 @@ modify d f s = s { current = (current s) peek :: StackSet i a s -> Maybe a peek = with Nothing (return . focus) +-- +-- /O(n)/. Flatten a Stack into a list. +-- +integrate :: Stack a -> [a] +integrate Empty = [] +integrate (Node x l r) = reverse l ++ x : r + -- -- /O(s)/. Extract the stack on the current workspace, as a list. -- The order of the stack is determined by the master window -- it will be -- cgit v1.2.3