-- Author: Andy Stewart -- Maintainer: Andy Stewart -- -- Copyright (C) 2010 Andy Stewart, all rights reserved. -- -- This program is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program. If not, see . {-# LANGUAGE DeriveDataTypeable #-} module Manatee.Extension.Terminal.TerminalBuffer where import Control.Applicative import Control.Concurrent.STM import DBus.Client hiding (Signal) import Data.Typeable import Manatee.Core.Types import Manatee.Extension.Terminal.PageMode data TerminalBuffer = TerminalBuffer {terminalBufferDirectory :: TVar String ,terminalBufferClient :: Client ,terminalBufferPageId :: PageId ,terminalBufferMode :: PageMode} deriving Typeable -- | New terminal buffer. terminalBufferNew :: String -> [String] -> Client -> PageId -> CustomizeWrap -> IO TerminalBuffer terminalBufferNew dir _ client pageId _ = TerminalBuffer <$> newTVarIO dir <*> pure client <*> pure pageId <*> pure terminalMode