From 41b53ca04b6d52457f331930e8fea68416498882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Benencia?= Date: Thu, 5 Sep 2013 19:36:33 -0300 Subject: New project tree structure --- Types.hs | 121 --------------------------------------------------------------- 1 file changed, 121 deletions(-) delete mode 100644 Types.hs (limited to 'Types.hs') diff --git a/Types.hs b/Types.hs deleted file mode 100644 index 07c9144..0000000 --- a/Types.hs +++ /dev/null @@ -1,121 +0,0 @@ -{- Common types of Lazymail - - - - Copyright 2013 Raúl Benencia - - - - Licensed under the GNU GPL version 3 or higher - -} - -module Types where - -import Codec.MIME.Type(MIMEValue(..)) -import Control.Monad.Reader(ReaderT) -import Control.Monad.State(StateT) -import Data.DateTime(DateTime) -import System.FilePath(FilePath) -import System.IO(Handle) -import UI.NCurses(Curses, Update, Color(..), ColorID) - -type LazymailUpdate = ReaderT LazymailConfig (StateT LazymailState Update) -type LazymailCurses = ReaderT LazymailConfig (StateT LazymailState Curses) - -{- Lazymail monad is a ReaderT around a StateT with IO at the bottom of the - - stack. - -} -type Lazymail = ReaderT LazymailConfig (StateT LazymailState IO) - -data LazymailConfig = LazymailConfig { - baseColor :: (Color, Color) -- (foreground, background) - , selectionColor :: (Color, Color) - , statusBarColor :: (Color, Color) - , headerColor :: (Color, Color) - , newEmailColor :: (Color, Color) - , showStatusBar :: Bool - , initialPath :: FilePath - , filterMaildirsHook :: [FilePath] -> IO [FilePath] - , indexDateFormat :: String - , headersToShow :: [String] -} - -data Email = Email { - emailValue :: MIMEValue - , emailDate :: DateTime - , emailPath :: FilePath - , emailHandle :: Handle -} - -instance Eq Email where - (Email _ _ fp1 _) == (Email _ _ fp2 _) = fp1 == fp2 - -instance Ord Email where - (Email _ d1 _ _) `compare` (Email _ d2 _ _) = d1 `compare` d2 - -data Mode = MaildirMode | IndexMode | EmailMode | ComposeMode - deriving (Show, Eq) - -type Maildir = FilePath - -data Flag = NEW - | SEEN - | ANSWERED - | FLAGGED - | DELETED - | DRAFT - | FORWARDED - | OTHERFLAG String - deriving (Eq) - -type Flags = [Flag] - -data LazymailState = LazymailState { - mode :: Mode - , basePath :: FilePath - , screenRows :: Int - , screenColumns :: Int - , currentRow :: Int - , columnPadding :: Int - , exitRequested :: Bool - , statusBar :: Bool - , maildirState :: MaildirState - , indexState :: IndexState - , emailState :: EmailState - , composeState :: ComposeState - , colorStyle :: ColorStyle -} - -data MaildirState = MaildirState { - selectedRowMD :: Int - , selectedMD :: String - , detectedMDs :: [(FilePath, String)] - , scrollRowMD :: Int - , scrollBufferMD :: [(FilePath, String)] - , triggerUpdateMD :: Bool -} - -data IndexState = IndexState { - selectedRowIn :: Int - , selectedEmailPath :: FilePath - , selectedEmails :: [Email] - , scrollRowIn :: Int - , currentInLen :: Int - , scrollBufferIn :: [(FilePath, String)] - , triggerUpdateIn :: Bool -} - -data ComposeState = ComposeState { - composition :: Maybe String -} - -data EmailState = EmailState { - scrollRowEm :: Int - , bodyStartRow :: Int - , emailLines :: [String] - , currentEmail :: MIMEValue -} - -data ColorStyle = ColorStyle { - baseColorID :: ColorID - , selectionColorID :: ColorID - , statusBarColorID :: ColorID - , headerColorID :: ColorID - , newEmailColorID :: ColorID -} -- cgit v1.2.3