From 3bd3fd2c6eae2f36f69f247403421e8cf8226394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Benencia?= Date: Thu, 5 Sep 2013 19:57:02 -0300 Subject: Moved all code to src/ --- Lazymail/State.hs | 126 ------------------------------------------------------ 1 file changed, 126 deletions(-) delete mode 100644 Lazymail/State.hs (limited to 'Lazymail/State.hs') diff --git a/Lazymail/State.hs b/Lazymail/State.hs deleted file mode 100644 index 06353da..0000000 --- a/Lazymail/State.hs +++ /dev/null @@ -1,126 +0,0 @@ -{- Lazymail state, and operations on it. - - - - Copyright 2013 Raúl Benencia - - - - Licensed under the GNU GPL version 3 or higher - - - -} - -module Lazymail.State where - -import Codec.MIME.Type(MIMEValue, nullMIMEValue) -import Text.ParserCombinators.Parsec.Rfc2822(Message, GenericMessage(..)) -import UI.NCurses(ColorID(..), defaultColorID) -import Network.Email.Mailbox(Flag(..), Flags) -import System.FilePath - -import Lazymail.Types - -initialState = LazymailState { - mode = MaildirMode - , basePath = "" - , screenRows = 0 - , screenColumns = 0 - , currentRow = 0 - , columnPadding = 0 - , exitRequested = False - , statusBar = True - , maildirState = initialMaildirState - , indexState = initialIndexState - , composeState = initialComposeState - , emailState = initialEmailState - , colorStyle = initialColorStyle -} - -initialMaildirState = MaildirState { - selectedRowMD = 0 - , selectedMD = "" - , detectedMDs = [] - , scrollRowMD = 0 - , scrollBufferMD = [] - , triggerUpdateMD = False -} - -initialIndexState = IndexState { - selectedRowIn = 0 - , selectedEmailPath = "" - , selectedEmails = [] - , scrollRowIn = 0 - , currentInLen = 0 - , scrollBufferIn = [] - , triggerUpdateIn = False -} - -initialEmailState = EmailState { - scrollRowEm = 0 - , bodyStartRow = 0 - , emailLines = [] - , currentEmail = nullMIMEValue -} - -initialComposeState = ComposeState { - composition = Nothing -} - -initialColorStyle = ColorStyle { - baseColorID = defaultColorID - , selectionColorID = defaultColorID - , statusBarColorID = defaultColorID - , headerColorID = defaultColorID - , newEmailColorID = defaultColorID -} - -scrColsAsInteger st = toInteger $ screenColumns st -scrRowsAsInteger st = toInteger $ screenRows st -curRowAsInteger st = toInteger $ currentRow st -colPadAsInteger st = toInteger $ columnPadding st - - -incrementSelectedRow st | (selectedRow st) < limit = - case (mode st) of - MaildirMode -> - let - sr = (selectedRowMD . maildirState) st - maildirState' = (maildirState st) { selectedRowMD = sr + 1 } - in - st { maildirState = maildirState' } - IndexMode -> - let - sr = (selectedRowIn . indexState) st - indexState' = (indexState st) { selectedRowIn = sr + 1 } - in - st { indexState = indexState' } - _ -> st - | otherwise = st - where - scrRows = screenRows st - curInLen = length $ selectedEmails . indexState $ st - curMDLen = length $ detectedMDs . maildirState $ st - limit' = case (mode st) of - MaildirMode -> if curMDLen < scrRows then curMDLen - 1 else scrRows - IndexMode -> if curInLen < scrRows then curInLen - 1 else scrRows - limit = if (statusBar st) && (limit' == scrRows) - then fromIntegral $ limit' - 2 - else fromIntegral limit' - -decrementSelectedRow st | (selectedRow st) > 0 = - case (mode st) of - MaildirMode -> - let - sr = (selectedRowMD . maildirState) st - maildirState' = (maildirState st) { selectedRowMD = sr - 1 } - in - st { maildirState = maildirState' } - IndexMode -> - let - sr = (selectedRowIn . indexState) st - indexState' = (indexState st) { selectedRowIn = sr - 1 } - in - st { indexState = indexState' } - _ -> st - | otherwise = st - -selectedRow st = case (mode st) of - MaildirMode -> selectedRowMD . maildirState $ st - IndexMode -> selectedRowIn . indexState $ st - -- cgit v1.2.3