carettah 0.0.4 → 0.0.5
raw patch · 4 files changed
+31/−15 lines, 4 files
Files
- Carettah.hs +22/−11
- Config.hs +7/−2
- carettah.cabal +2/−2
- data/turtle.png binary
Carettah.hs view
@@ -113,11 +113,14 @@ , Option "t" ["time"] (OptArg ((\ f opts -> opts { optTime = Just $ read f }) . fromMaybe "5") "TIME(minute)")- "set presentation time with minute"+ "set presentation time with minutes"+ , Option "i" ["info"]+ (NoArg (\ opts -> opts { optSlideInfo = True }))+ "show slide infomation" ] -compilerOpts :: [String] -> IO (Options, [String])-compilerOpts argv =+carettahOpts :: [String] -> IO (Options, [String])+carettahOpts argv = let header = "\ncarettah version " ++ showVersion wrapVersion ++ "\n" ++ "Usage: carettah [OPTION...] FILE" in case getOpt Permute options argv of@@ -155,9 +158,11 @@ "q" -> G.widgetDestroy window "j" -> nextPage >> G.widgetQueueDraw canvas "k" -> prevPage >> G.widgetQueueDraw canvas+ "g" -> topPage >> G.widgetQueueDraw canvas+ "G" -> endPage >> G.widgetQueueDraw canvas "r" -> do md <- queryCarettahState markdownFname loadMarkdown md- nextPage >> prevPage >> G.widgetQueueDraw canvas+ curPage >> G.widgetQueueDraw canvas _ -> return () _ <- G.onDestroy window G.mainQuit _ <- G.onExpose canvas $ const (updateCanvas canvas >> return True)@@ -197,12 +202,18 @@ -- init updateStartTime updateRenderdTime- -- opts- (Options {optWiimote = wiiOn, optPdfOutput = pdfFilen, optTime = Just presenTime}, filen:_) <-- compilerOpts =<< getArgs+ -- getopts+ (opts, filen:_) <- carettahOpts =<< getArgs+ -- setup slide updateMarkdownFname $ const filen- -- parse markdown loadMarkdown filen- case pdfFilen of- Just pdf -> outputPDF pdf- Nothing -> startPresentation wiiOn presenTime+ -- start+ case opts of+ (Options {optSlideInfo = True}) ->+ do s <- queryCarettahState slides+ putStrLn $ "Page: " ++ show (length s)+ (Options {optPdfOutput = Just pdf}) ->+ outputPDF pdf+ (Options {optWiimote = wiiOn, optTime = Just presenTime}) ->+ startPresentation wiiOn presenTime+ _ -> error "NOTREACHED"
Config.hs view
@@ -1,6 +1,6 @@ module Config (Config(..), Options(..), CarettahState(..), gCfg, defaultOptions,- nextPage, prevPage, topPage, endPage,+ curPage, nextPage, prevPage, topPage, endPage, setWiiHandle, updateWiiBtnFlag, updateSlides, queryCarettahState, updateStartTime, updateRenderdTime, elapsedSecFromStart,@@ -16,12 +16,14 @@ data Options = Options { optWiimote :: Bool , optPdfOutput :: Maybe FilePath , optTime :: Maybe Double+ , optSlideInfo :: Bool } deriving Show defaultOptions :: Options defaultOptions = Options { optWiimote = False , optPdfOutput = Nothing , optTime = Just 5+ , optSlideInfo = False } data WiiHandle = NoWiiHandle | WiiHandle CWiidWiimote@@ -48,7 +50,10 @@ updatePage :: MonadIO m => (Int -> Int) -> m () updatePage fn = updateCarettahState (\s -> s { page = fn $ page s }) -nextPage, prevPage, topPage, endPage :: MonadIO m => m ()+curPage, nextPage, prevPage, topPage, endPage :: MonadIO m => m ()+curPage = do s <- queryCarettahState slides+ let maxpage = length s - 1+ updatePage (\p -> if p >= maxpage then maxpage else p) nextPage = do s <- queryCarettahState slides let maxpage = length s - 1 updatePage (\p -> if p >= maxpage then maxpage else p + 1)
carettah.cabal view
@@ -1,5 +1,5 @@ Name: carettah-Version: 0.0.4+Version: 0.0.5 Author: Kiwamu Okabe <kiwamu@debian.or.jp> Maintainer: Kiwamu Okabe <kiwamu@debian.or.jp> License: GPL-2@@ -10,7 +10,7 @@ Stability: Experimental Cabal-Version: >= 1.6 Build-Type: Simple-Homepage: https://gitorious.org/carettah+Homepage: http://carettah.masterq.net/ Tested-with: GHC == 7.0.4 data-files: data/turtle.png
data/turtle.png view
binary file changed (49524 → 54453 bytes)