on develop help sign in
connect HasTheme class constraint in Widget
214bfb1pdlla
src/Reflex/Vty/Widget.hs+14−6
@@ -35,6 +35,7 @@ mainWidgetWithHandle
35 , HasDisplayRegion t m
35 , HasDisplayRegion t m
36 , HasFocusReader t m
36 , HasFocusReader t m
37 , HasInput t m
37 , HasInput t m
38+ , HasTheme t m
38 ) => m (Event t ()))
39 ) => m (Event t ()))
39 -> IO ()
40 -> IO ()
40mainWidgetWithHandle vty child =
41mainWidgetWithHandle vty child =
@@ -45,12 +46,14 @@ mainWidgetWithHandle vty child =
45 let inp' = fforMaybe inp $ \case
46 let inp' = fforMaybe inp $ \case
46 V.EvResize {} -> Nothing
47 V.EvResize {} -> Nothing
47 x -> Just x
48 x -> Just x
49+ (shutdown, images) <- runThemeReader (constant V.defAttr) $
50+ runFocusReader (pure True) $
48− (shutdown, images) <- runFocusReader (pure True) $ runDisplayRegion (fmap (\(w, h) -> Region 0 0 w h) size) $
51+ runDisplayRegion (fmap (\(w, h) -> Region 0 0 w h) size) $
49− runImageWriter $
52+ runImageWriter $
50− runNodeIdT $
53+ runNodeIdT $
51− runInput inp' $ do
54+ runInput inp' $ do
52− tellImages . ffor (current size) $ \(w, h) -> [V.charFill V.defAttr ' ' w h]
55+ tellImages . ffor (current size) $ \(w, h) -> [V.charFill V.defAttr ' ' w h]
53− child
56+ child
54 return $ VtyResult
57 return $ VtyResult
55 { _vtyResult_picture = fmap (V.picForLayers . reverse) images
58 { _vtyResult_picture = fmap (V.picForLayers . reverse) images
56 , _vtyResult_shutdown = shutdown
59 , _vtyResult_shutdown = shutdown
@@ -69,6 +72,7 @@ mainWidget
69 , MonadNodeId m
72 , MonadNodeId m
70 , HasDisplayRegion t m
73 , HasDisplayRegion t m
71 , HasFocusReader t m
74 , HasFocusReader t m
75+ , HasTheme t m
72 , HasInput t m
76 , HasInput t m
73 ) => m (Event t ()))
77 ) => m (Event t ()))
74 -> IO ()
78 -> IO ()
@@ -457,6 +461,10 @@ instance HasTheme t m => HasTheme t (BehaviorWriterT t x m)
457instance HasTheme t m => HasTheme t (DynamicWriterT t x m)
461instance HasTheme t m => HasTheme t (DynamicWriterT t x m)
458instance HasTheme t m => HasTheme t (EventWriterT t x m)
462instance HasTheme t m => HasTheme t (EventWriterT t x m)
459instance HasTheme t m => HasTheme t (NodeIdT m)
463instance HasTheme t m => HasTheme t (NodeIdT m)
464+instance HasTheme t m => HasTheme t (Input t m)
465+instance HasTheme t m => HasTheme t (ImageWriter t m)
466+instance HasTheme t m => HasTheme t (DisplayRegion t m)
467+instance HasTheme t m => HasTheme t (FocusReader t m)
460
468
461-- | A widget that has access to information about whether it is focused
469-- | A widget that has access to information about whether it is focused
462newtype ThemeReader t m a = ThemeReader
470newtype ThemeReader t m a = ThemeReader