Copyright | (c) 2011-2015 Ian-Woo Kim |
---|---|
License | BSD3 |
Maintainer | Ian-Woo Kim <ianwookim@gmail.com> |
Stability | experimental |
Portability | GHC |
Safe Haskell | None |
Language | Haskell98 |
- addPDraw :: CanvasId -> PenInfo -> RHoodle -> PageNum -> Seq (Double, Double, Double) -> MainCoroutine (RHoodle, BBox)
- createTempRender :: CanvasGeometry -> a -> MainCoroutine (TempRender a)
- penPageSwitch :: PageNum -> MainCoroutine CanvasInfoBox
- commonPenStart :: forall b. (forall a. CanvasInfo a -> PageNum -> CanvasGeometry -> (Double, Double) -> UTCTime -> MainCoroutine b) -> CanvasId -> PointerCoord -> MainCoroutine (Maybe b)
- penStart :: CanvasId -> PointerCoord -> MainCoroutine (Maybe (Maybe (Maybe ())))
- penProcess :: CanvasId -> PageNum -> CanvasGeometry -> TempRender (Seq (Double, Double, Double)) -> ((Double, Double), Double) -> UTCTime -> MainCoroutine (Maybe (Seq (Double, Double, Double)))
- skipIfNotInSamePage :: Monad m => PageNum -> CanvasGeometry -> PointerCoord -> m a -> ((PointerCoord, (Double, Double)) -> m a) -> m a
- switchActionEnteringDiffPage :: Monad m => PageNum -> CanvasGeometry -> PointerCoord -> m a -> (PageNum -> (PageNum, PageCoordinate) -> m a) -> (PageNum -> (PageNum, PageCoordinate) -> m a) -> m a
- penMoveAndUpOnly :: Monad m => UserEvent -> PageNum -> CanvasGeometry -> m a -> ((PointerCoord, (Double, Double)) -> m a) -> (PointerCoord -> m a) -> m a
- penMoveAndUpInterPage :: Monad m => UserEvent -> PageNum -> CanvasGeometry -> m a -> (PageNum -> (PageNum, PageCoordinate) -> m a) -> (PointerCoord -> m a) -> m a
- processWithTimeInterval :: (Monad m, MonadIO m) => NominalDiffTime -> (UTCTime -> m a) -> (UTCTime -> m a) -> UTCTime -> m a
- processWithDefTimeInterval :: (Monad m, MonadIO m) => (UTCTime -> m a) -> (UTCTime -> m a) -> UTCTime -> m a
Documentation
createTempRender :: CanvasGeometry -> a -> MainCoroutine (TempRender a) Source #
penPageSwitch :: PageNum -> MainCoroutine CanvasInfoBox Source #
page switch if pen click a page different than the current page
commonPenStart :: forall b. (forall a. CanvasInfo a -> PageNum -> CanvasGeometry -> (Double, Double) -> UTCTime -> MainCoroutine b) -> CanvasId -> PointerCoord -> MainCoroutine (Maybe b) Source #
Common Pen Work starting point
penStart :: CanvasId -> PointerCoord -> MainCoroutine (Maybe (Maybe (Maybe ()))) Source #
enter pen drawing mode
penProcess :: CanvasId -> PageNum -> CanvasGeometry -> TempRender (Seq (Double, Double, Double)) -> ((Double, Double), Double) -> UTCTime -> MainCoroutine (Maybe (Seq (Double, Double, Double))) Source #
main pen coordinate adding process | now being changed
skipIfNotInSamePage :: Monad m => PageNum -> CanvasGeometry -> PointerCoord -> m a -> ((PointerCoord, (Double, Double)) -> m a) -> m a Source #
switchActionEnteringDiffPage :: Monad m => PageNum -> CanvasGeometry -> PointerCoord -> m a -> (PageNum -> (PageNum, PageCoordinate) -> m a) -> (PageNum -> (PageNum, PageCoordinate) -> m a) -> m a Source #
penMoveAndUpOnly :: Monad m => UserEvent -> PageNum -> CanvasGeometry -> m a -> ((PointerCoord, (Double, Double)) -> m a) -> (PointerCoord -> m a) -> m a Source #
in page action
penMoveAndUpInterPage :: Monad m => UserEvent -> PageNum -> CanvasGeometry -> m a -> (PageNum -> (PageNum, PageCoordinate) -> m a) -> (PointerCoord -> m a) -> m a Source #
processWithTimeInterval Source #
:: (Monad m, MonadIO m) | |
=> NominalDiffTime | time diff |
-> (UTCTime -> m a) | not larger than time diff bound |
-> (UTCTime -> m a) | larger than time diff bound |
-> UTCTime | last updated time |
-> m a |
process action when last time was before time diff limit, otherwise just do default action.