vty 5.21 → 5.22
raw patch · 4 files changed
+273/−13 lines, 4 files
Files
- CHANGELOG.md +5/−0
- src/Graphics/Vty.hs +18/−12
- src/Graphics/Vty/Attributes/Color240.hs +249/−0
- vty.cabal +1/−1
CHANGELOG.md view
@@ -1,3 +1,8 @@+5.22+ - Added Graphics.Vty.Attributes.Color240.color240CodeToRGB function+ (thanks Brent Carmer)+ - Added nextEventNonblocking function (field) to Vty type (#87)+ 5.21 - Picture and Background now provide Eq instances (thanks Jaro Reinders) - #145: vty builds with microlens 0.4.9 (thanks Daniel Wagner)
src/Graphics/Vty.hs view
@@ -78,18 +78,17 @@ data Vty = Vty { -- | Outputs the given 'Picture'. update :: Picture -> IO ()- -- | Get one 'Event' object, blocking if none are available. This- -- will refresh the terminal if the event is a 'EvResize'.+ -- | Return the next 'Event' or block until one becomes available. , nextEvent :: IO Event+ -- | Non-blocking version of 'nextEvent'.+ , nextEventNonblocking :: IO (Maybe Event) -- | The input interface. See 'Input'. , inputIface :: Input -- | The output interface. See 'Output'. , outputIface :: Output- -- | Refresh the display. 'nextEvent' will refresh the display if- -- a resize occurs, but this can be used to refresh the display- -- explicitly. If other programs output to the terminal and mess- -- up the display then the application might want to force a- -- refresh using this function.+ -- | Refresh the display. If other programs output to the terminal+ -- and mess up the display then the application might want to+ -- force a refresh using this function. , refresh :: IO () -- | Clean up after vty. A call to this function is necessary to -- cleanly restore the terminal state before application exit. The@@ -151,14 +150,21 @@ mPic <- readIORef lastPicRef maybe (return ()) innerUpdate mPic - let gkey = do k <- atomically $ readTChan $ _eventChannel input- case k of- (EvResize _ _) -> displayBounds out- >>= return . (\(w,h)-> EvResize w h)- _ -> return k+ let mkResize = uncurry EvResize <$> displayBounds out+ gkey = do+ k <- atomically $ readTChan $ _eventChannel input+ case k of+ (EvResize _ _) -> mkResize+ _ -> return k+ gkey' = do+ k <- atomically $ tryReadTChan $ _eventChannel input+ case k of+ (Just (EvResize _ _)) -> Just <$> mkResize+ _ -> return k return $ Vty { update = innerUpdate , nextEvent = gkey+ , nextEventNonblocking = gkey' , inputIface = input , outputIface = out , refresh = innerRefresh
src/Graphics/Vty/Attributes/Color240.hs view
@@ -1,17 +1,21 @@ -- This header file was generated by ./256colres.pl module Graphics.Vty.Attributes.Color240 ( rgbColor+ , color240CodeToRGB ) where import Graphics.Vty.Attributes.Color +import Data.Word (Word8) import Text.Printf -- Note: rgbColor's mapping from RGB to 240 colors was generated from -- 256colres.pl which is forked from xterm 256colres.pl. -- | Create a Vty 'Color' (in the 240 color set) from an RGB triple.+-- This function is lossy in the sense that we only internally support 240 colors but the+-- #RRGGBB format supports 16^3 colors. rgbColor :: Integral i => i -> i -> i -> Color rgbColor r g b | r < 0 && g < 0 && b < 0 = error "rgbColor with negative color component intensity"@@ -259,3 +263,248 @@ (fromIntegral r :: Int) (fromIntegral g :: Int) (fromIntegral b :: Int))++-- | Create a RGB triple from a value in the Color240 set.+color240CodeToRGB :: Word8 -> Maybe (Int, Int, Int)+color240CodeToRGB n = case n of+ 0 -> Just (0, 0, 0)+ 1 -> Just (0, 0, 95)+ 2 -> Just (0, 0, 135)+ 3 -> Just (0, 0, 175)+ 4 -> Just (0, 0, 215)+ 5 -> Just (0, 0, 255)+ 6 -> Just (0, 95, 0)+ 7 -> Just (0, 95, 95)+ 8 -> Just (0, 95, 135)+ 9 -> Just (0, 95, 175)+ 10 -> Just (0, 95, 215)+ 11 -> Just (0, 95, 255)+ 12 -> Just (0, 135, 0)+ 13 -> Just (0, 135, 95)+ 14 -> Just (0, 135, 135)+ 15 -> Just (0, 135, 175)+ 16 -> Just (0, 135, 215)+ 17 -> Just (0, 135, 255)+ 18 -> Just (0, 175, 0)+ 19 -> Just (0, 175, 95)+ 20 -> Just (0, 175, 135)+ 21 -> Just (0, 175, 175)+ 22 -> Just (0, 175, 215)+ 23 -> Just (0, 175, 255)+ 24 -> Just (0, 215, 0)+ 25 -> Just (0, 215, 95)+ 26 -> Just (0, 215, 135)+ 27 -> Just (0, 215, 175)+ 28 -> Just (0, 215, 215)+ 29 -> Just (0, 215, 255)+ 30 -> Just (0, 255, 0)+ 31 -> Just (0, 255, 95)+ 32 -> Just (0, 255, 135)+ 33 -> Just (0, 255, 175)+ 34 -> Just (0, 255, 215)+ 35 -> Just (0, 255, 255)+ 36 -> Just (95, 0, 0)+ 37 -> Just (95, 0, 95)+ 38 -> Just (95, 0, 135)+ 39 -> Just (95, 0, 175)+ 40 -> Just (95, 0, 215)+ 41 -> Just (95, 0, 255)+ 42 -> Just (95, 95, 0)+ 43 -> Just (95, 95, 95)+ 44 -> Just (95, 95, 135)+ 45 -> Just (95, 95, 175)+ 46 -> Just (95, 95, 215)+ 47 -> Just (95, 95, 255)+ 48 -> Just (95, 135, 0)+ 49 -> Just (95, 135, 95)+ 50 -> Just (95, 135, 135)+ 51 -> Just (95, 135, 175)+ 52 -> Just (95, 135, 215)+ 53 -> Just (95, 135, 255)+ 54 -> Just (95, 175, 0)+ 55 -> Just (95, 175, 95)+ 56 -> Just (95, 175, 135)+ 57 -> Just (95, 175, 175)+ 58 -> Just (95, 175, 215)+ 59 -> Just (95, 175, 255)+ 60 -> Just (95, 215, 0)+ 61 -> Just (95, 215, 95)+ 62 -> Just (95, 215, 135)+ 63 -> Just (95, 215, 175)+ 64 -> Just (95, 215, 215)+ 65 -> Just (95, 215, 255)+ 66 -> Just (95, 255, 0)+ 67 -> Just (95, 255, 95)+ 68 -> Just (95, 255, 135)+ 69 -> Just (95, 255, 175)+ 70 -> Just (95, 255, 215)+ 71 -> Just (95, 255, 255)+ 72 -> Just (135, 0, 0)+ 73 -> Just (135, 0, 95)+ 74 -> Just (135, 0, 135)+ 75 -> Just (135, 0, 175)+ 76 -> Just (135, 0, 215)+ 77 -> Just (135, 0, 255)+ 78 -> Just (135, 95, 0)+ 79 -> Just (135, 95, 95)+ 80 -> Just (135, 95, 135)+ 81 -> Just (135, 95, 175)+ 82 -> Just (135, 95, 215)+ 83 -> Just (135, 95, 255)+ 84 -> Just (135, 135, 0)+ 85 -> Just (135, 135, 95)+ 86 -> Just (135, 135, 135)+ 87 -> Just (135, 135, 175)+ 88 -> Just (135, 135, 215)+ 89 -> Just (135, 135, 255)+ 90 -> Just (135, 175, 0)+ 91 -> Just (135, 175, 95)+ 92 -> Just (135, 175, 135)+ 93 -> Just (135, 175, 175)+ 94 -> Just (135, 175, 215)+ 95 -> Just (135, 175, 255)+ 96 -> Just (135, 215, 0)+ 97 -> Just (135, 215, 95)+ 98 -> Just (135, 215, 135)+ 99 -> Just (135, 215, 175)+ 100 -> Just (135, 215, 215)+ 101 -> Just (135, 215, 255)+ 102 -> Just (135, 255, 0)+ 103 -> Just (135, 255, 95)+ 104 -> Just (135, 255, 135)+ 105 -> Just (135, 255, 175)+ 106 -> Just (135, 255, 215)+ 107 -> Just (135, 255, 255)+ 108 -> Just (175, 0, 0)+ 109 -> Just (175, 0, 95)+ 110 -> Just (175, 0, 135)+ 111 -> Just (175, 0, 175)+ 112 -> Just (175, 0, 215)+ 113 -> Just (175, 0, 255)+ 114 -> Just (175, 95, 0)+ 115 -> Just (175, 95, 95)+ 116 -> Just (175, 95, 135)+ 117 -> Just (175, 95, 175)+ 118 -> Just (175, 95, 215)+ 119 -> Just (175, 95, 255)+ 120 -> Just (175, 135, 0)+ 121 -> Just (175, 135, 95)+ 122 -> Just (175, 135, 135)+ 123 -> Just (175, 135, 175)+ 124 -> Just (175, 135, 215)+ 125 -> Just (175, 135, 255)+ 126 -> Just (175, 175, 0)+ 127 -> Just (175, 175, 95)+ 128 -> Just (175, 175, 135)+ 129 -> Just (175, 175, 175)+ 130 -> Just (175, 175, 215)+ 131 -> Just (175, 175, 255)+ 132 -> Just (175, 215, 0)+ 133 -> Just (175, 215, 95)+ 134 -> Just (175, 215, 135)+ 135 -> Just (175, 215, 175)+ 136 -> Just (175, 215, 215)+ 137 -> Just (175, 215, 255)+ 138 -> Just (175, 255, 0)+ 139 -> Just (175, 255, 95)+ 140 -> Just (175, 255, 135)+ 141 -> Just (175, 255, 175)+ 142 -> Just (175, 255, 215)+ 143 -> Just (175, 255, 255)+ 144 -> Just (215, 0, 0)+ 145 -> Just (215, 0, 95)+ 146 -> Just (215, 0, 135)+ 147 -> Just (215, 0, 175)+ 148 -> Just (215, 0, 215)+ 149 -> Just (215, 0, 255)+ 150 -> Just (215, 95, 0)+ 151 -> Just (215, 95, 95)+ 152 -> Just (215, 95, 135)+ 153 -> Just (215, 95, 175)+ 154 -> Just (215, 95, 215)+ 155 -> Just (215, 95, 255)+ 156 -> Just (215, 135, 0)+ 157 -> Just (215, 135, 95)+ 158 -> Just (215, 135, 135)+ 159 -> Just (215, 135, 175)+ 160 -> Just (215, 135, 215)+ 161 -> Just (215, 135, 255)+ 162 -> Just (215, 175, 0)+ 163 -> Just (215, 175, 95)+ 164 -> Just (215, 175, 135)+ 165 -> Just (215, 175, 175)+ 166 -> Just (215, 175, 215)+ 167 -> Just (215, 175, 255)+ 168 -> Just (215, 215, 0)+ 169 -> Just (215, 215, 95)+ 170 -> Just (215, 215, 135)+ 171 -> Just (215, 215, 175)+ 172 -> Just (215, 215, 215)+ 173 -> Just (215, 215, 255)+ 174 -> Just (215, 255, 0)+ 175 -> Just (215, 255, 95)+ 176 -> Just (215, 255, 135)+ 177 -> Just (215, 255, 175)+ 178 -> Just (215, 255, 215)+ 179 -> Just (215, 255, 255)+ 180 -> Just (255, 0, 0)+ 181 -> Just (255, 0, 95)+ 182 -> Just (255, 0, 135)+ 183 -> Just (255, 0, 175)+ 184 -> Just (255, 0, 215)+ 185 -> Just (255, 0, 255)+ 186 -> Just (255, 95, 0)+ 187 -> Just (255, 95, 95)+ 188 -> Just (255, 95, 135)+ 189 -> Just (255, 95, 175)+ 190 -> Just (255, 95, 215)+ 191 -> Just (255, 95, 255)+ 192 -> Just (255, 135, 0)+ 193 -> Just (255, 135, 95)+ 194 -> Just (255, 135, 135)+ 195 -> Just (255, 135, 175)+ 196 -> Just (255, 135, 215)+ 197 -> Just (255, 135, 255)+ 198 -> Just (255, 175, 0)+ 199 -> Just (255, 175, 95)+ 200 -> Just (255, 175, 135)+ 201 -> Just (255, 175, 175)+ 202 -> Just (255, 175, 215)+ 203 -> Just (255, 175, 255)+ 204 -> Just (255, 215, 0)+ 205 -> Just (255, 215, 95)+ 206 -> Just (255, 215, 135)+ 207 -> Just (255, 215, 175)+ 208 -> Just (255, 215, 215)+ 209 -> Just (255, 215, 255)+ 210 -> Just (255, 255, 0)+ 211 -> Just (255, 255, 95)+ 212 -> Just (255, 255, 135)+ 213 -> Just (255, 255, 175)+ 214 -> Just (255, 255, 215)+ 215 -> Just (255, 255, 255)+ 216 -> Just (8, 8, 8)+ 217 -> Just (18, 18, 18)+ 218 -> Just (28, 28, 28)+ 219 -> Just (38, 38, 38)+ 220 -> Just (48, 48, 48)+ 221 -> Just (58, 58, 58)+ 222 -> Just (68, 68, 68)+ 223 -> Just (78, 78, 78)+ 224 -> Just (88, 88, 88)+ 225 -> Just (98, 98, 98)+ 226 -> Just (108, 108, 108)+ 227 -> Just (118, 118, 118)+ 228 -> Just (128, 128, 128)+ 229 -> Just (138, 138, 138)+ 230 -> Just (148, 148, 148)+ 231 -> Just (158, 158, 158)+ 232 -> Just (168, 168, 168)+ 233 -> Just (178, 178, 178)+ 234 -> Just (188, 188, 188)+ 235 -> Just (198, 198, 198)+ 236 -> Just (208, 208, 208)+ 237 -> Just (218, 218, 218)+ 238 -> Just (228, 228, 228)+ 239 -> Just (238, 238, 238)+ _ -> Nothing
vty.cabal view
@@ -1,5 +1,5 @@ name: vty-version: 5.21+version: 5.22 license: BSD3 license-file: LICENSE author: AUTHORS