packages feed

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)) ->