moffy-samples-gtk4-run 0.2.0.0 → 0.2.1.0
raw patch · 2 files changed
+26/−2 lines, 2 files
Files
moffy-samples-gtk4-run.cabal view
@@ -5,7 +5,7 @@ -- see: https://github.com/sol/hpack name: moffy-samples-gtk4-run-version: 0.2.0.0+version: 0.2.1.0 synopsis: Package to run moffy samples - Gtk4 version description: Please see the README on GitHub at <https://github.com/YoshikuniJujo/moffy-samples-gtk4-run#readme> category: Control
src/Control/Moffy/Samples/Followbox/Run/Gtk4.hs view
@@ -5,8 +5,10 @@ {-# LANGUAGE PatternSynonyms #-} {-# OPTIONS_GHC -Wall -fno-warn-tabs #-} -module Control.Moffy.Samples.Followbox.Run.Gtk4 (runFollowbox) where+module Control.Moffy.Samples.Followbox.Run.Gtk4 (+ runFollowbox, runFollowbox' ) where +import Control.Arrow import Control.Concurrent import Control.Moffy import Control.Moffy.Samples.Event.CalcTextExtents@@ -38,6 +40,9 @@ runFollowbox :: String -> Sig s FollowboxEv T.View () -> IO () runFollowbox brws sig = runFollowbox_ brws Nothing $ viewToView <$%> sig +runFollowbox' :: String -> Sig s FollowboxEv ([(Int, Area)], T.View) () -> IO ()+runFollowbox' brws sig = runFollowbox_' brws Nothing $ (second viewToView) <$%> sig+ runFollowbox_ :: String -> Maybe GithubNameToken -> Sig s FollowboxEv View () -> IO () runFollowbox_ brws tkn sig = do va <- atomically $ newTVar M.empty@@ -46,12 +51,31 @@ _ <- forkIO $ runFollowboxGen cer ceo va brws tkn cv (sig >> emit Stopped) runSingleWin cer ceo cv +runFollowbox_' :: String -> Maybe GithubNameToken -> Sig s FollowboxEv ([(Int, Area)], View) () -> IO ()+runFollowbox_' brws tkn sig = do+ va <- atomically $ newTVar M.empty+ (cer, ceo, cv) <- atomically $+ (,,) <$> newTChan <*> newTChan <*> newTChan+ _ <- forkIO $ runFollowboxGen' cer ceo va brws tkn cv (sig >> emit ([], Stopped))+ runSingleWin cer ceo cv+ runFollowboxGen :: TChan (EvReqs (CalcTextExtents :- GuiEv)) -> TChan (EvOccs (CalcTextExtents :- GuiEv)) -> TVar (M.Map Int (A.Point, A.Point)) -> String -> Maybe GithubNameToken -> TChan x -> Sig s FollowboxEv x r -> IO r runFollowboxGen cr c va brs mgnt c' s = do (r, _) <- interpretSt (handleFollowbox va (cr, c) brs mgnt) c' s (initialFollowboxState $ mkStdGen 8)+ pure r++type Area = (Point, Point)++runFollowboxGen' ::+ TChan (EvReqs (CalcTextExtents :- GuiEv)) -> TChan (EvOccs (CalcTextExtents :- GuiEv)) ->+ TVar (M.Map Int (A.Point, A.Point)) -> String ->+ Maybe GithubNameToken -> TChan x ->+ Sig s FollowboxEv ([(Int, Area)], x) r -> IO r+runFollowboxGen' cr c va brs mgnt c' s = do+ (r, _) <- interpretSt' (handleFollowbox va (cr, c) brs mgnt) va c' s (initialFollowboxState $ mkStdGen 8) pure r handleFollowbox :: TVar (M.Map Int (A.Point, A.Point)) ->