packages feed

vty 4.7.3 → 4.7.4

raw patch · 5 files changed

+325/−49 lines, 5 files

Files

CHANGELOG view
@@ -1,3 +1,6 @@+4.7.4+  * backported rgb_color from 5.0. Maps from 8 bit integer RGB to Color+ 4.7.0.0     * API changes:        * Added Graphics.Vty.Image.crop: Ensure an image is no larger than the specified size.
src/Graphics/Vty/Attributes.hs view
@@ -34,9 +34,15 @@ --  Then the foreground color encoded into 8 bits. --  Then the background color encoded into 8 bits. ---module Graphics.Vty.Attributes+module Graphics.Vty.Attributes ( module Graphics.Vty.Attributes+                               , module Graphics.Vty.Attributes.Color+                               , module Graphics.Vty.Attributes.Color240+                               )     where +import Graphics.Vty.Attributes.Color+import Graphics.Vty.Attributes.Color240+ import Data.Bits import Data.Monoid import Data.Word@@ -90,53 +96,6 @@     mappend ( SetTo _v ) Default = Default     mappend ( SetTo v ) KeepCurrent = SetTo v     mappend ( SetTo _ ) ( SetTo v ) = SetTo v---- | Abstract data type representing a color.---  --- Currently the foreground and background color are specified as points in either a:------  * 16 color palette. Where the first 8 colors are equal to the 8 colors of the ISO 6429 (ANSI) 8---  color palette and the second 8 colors are bright/vivid versions of the first 8 colors.------  * 240 color palette. This palette is a regular sampling of the full RGB colorspace. --- --- The 8 ISO 6429 (ANSI) colors are as follows:------      0. black------      1. red------      2. green------      3. yellow------      4. blue------      5. magenta------      6. cyan------      7. white------ The mapping from points in the 240 color palette to colors actually displayable by the terminal--- depends on the number of colors the terminal claims to support. Which is usually determined by--- the terminfo "colors" property. If this property is not being accurately reported then the color--- reproduction will be incorrect.------ If the terminal reports <= 16 colors then the 240 color palette points are only mapped to the 8--- color pallete. I'm not sure of the RGB points for the "bright" colors which is why they are not--- addressable via the 240 color palette. ------ If the terminal reports > 16 colors then the 240 color palette points are mapped to the nearest--- points in a ("color count" - 16) subsampling of the 240 color palette.------ All of this assumes the terminals are behaving similarly to xterm and rxvt when handling colors.--- And that the individual colors have not been remapped by the user. There may be a way to verify--- this through terminfo but I don't know it.------ Seriously, terminal color support is INSANE.-data Color = ISOColor !Word8 | Color240 !Word8-    deriving ( Eq, Show )  -- | Standard 8-color ANSI terminal color codes. black, red, green, yellow, blue, magenta, cyan, white :: Color
+ src/Graphics/Vty/Attributes/Color.hs view
@@ -0,0 +1,51 @@+module Graphics.Vty.Attributes.Color where+import Data.Word++-- | Abstract data type representing a color.+--  +-- Currently the foreground and background color are specified as points in either a:+--+--  * 16 color palette. Where the first 8 colors are equal to the 8 colors of the ISO 6429 (ANSI) 8+--  color palette and the second 8 colors are bright/vivid versions of the first 8 colors.+--+--  * 240 color palette. This palette is a regular sampling of the full RGB colorspace for the first+--  224 colors. The remaining 16 colors is a greyscale palette.+-- +-- The 8 ISO 6429 (ANSI) colors are as follows:+--+--      0. black+--+--      1. red+--+--      2. green+--+--      3. yellow+--+--      4. blue+--+--      5. magenta+--+--      6. cyan+--+--      7. white+--+-- The mapping from points in the 240 color palette to colors actually displayable by the terminal+-- depends on the number of colors the terminal claims to support. Which is usually determined by+-- the terminfo "colors" property. If this property is not being accurately reported then the color+-- reproduction will be incorrect.+--+-- If the terminal reports <= 16 colors then the 240 color palette points are only mapped to the 8+-- color pallete. I'm not sure of the RGB points for the "bright" colors which is why they are not+-- addressable via the 240 color palette. +--+-- If the terminal reports > 16 colors then the 240 color palette points are mapped to the nearest+-- points in a ("color count" - 16) subsampling of the 240 color palette.+--+-- All of this assumes the terminals are behaving similarly to xterm and rxvt when handling colors.+-- And that the individual colors have not been remapped by the user. There may be a way to verify+-- this through terminfo but I don't know it.+--+-- Seriously, terminal color support is INSANE.+data Color = ISOColor !Word8 | Color240 !Word8+    deriving ( Eq, Show )+
+ src/Graphics/Vty/Attributes/Color240.hs view
@@ -0,0 +1,261 @@+{-+ - This header file was generated by ./256colres.pl+ -}+module Graphics.Vty.Attributes.Color240 where++import Graphics.Vty.Attributes.Color++import Text.Printf++-- | 8 bit RGB color to 240 color palette.+--+-- generated from 256colres.pl which is forked from xterm 256colres.pl+-- todo: all values get clamped high.+rgb_color :: Integral i => i -> i -> i -> Color+rgb_color r g b+    | r < 0 && g < 0 && b < 0 = error "rgb_color with negative color component intensity"+    | r == 8 && g == 8 && b == 8 = Color240 216+    | r == 18 && g == 18 && b == 18 = Color240 217+    | r == 28 && g == 28 && b == 28 = Color240 218+    | r == 38 && g == 38 && b == 38 = Color240 219+    | r == 48 && g == 48 && b == 48 = Color240 220+    | r == 58 && g == 58 && b == 58 = Color240 221+    | r == 68 && g == 68 && b == 68 = Color240 222+    | r == 78 && g == 78 && b == 78 = Color240 223+    | r == 88 && g == 88 && b == 88 = Color240 224+    | r == 98 && g == 98 && b == 98 = Color240 225+    | r == 108 && g == 108 && b == 108 = Color240 226+    | r == 118 && g == 118 && b == 118 = Color240 227+    | r == 128 && g == 128 && b == 128 = Color240 228+    | r == 138 && g == 138 && b == 138 = Color240 229+    | r == 148 && g == 148 && b == 148 = Color240 230+    | r == 158 && g == 158 && b == 158 = Color240 231+    | r == 168 && g == 168 && b == 168 = Color240 232+    | r == 178 && g == 178 && b == 178 = Color240 233+    | r == 188 && g == 188 && b == 188 = Color240 234+    | r == 198 && g == 198 && b == 198 = Color240 235+    | r == 208 && g == 208 && b == 208 = Color240 236+    | r == 218 && g == 218 && b == 218 = Color240 237+    | r == 228 && g == 228 && b == 228 = Color240 238+    | r == 238 && g == 238 && b == 238 = Color240 239+    | r <= 0 && g <= 0 && b <= 0 = Color240 0+    | r <= 0 && g <= 0 && b <= 95 = Color240 1+    | r <= 0 && g <= 0 && b <= 135 = Color240 2+    | r <= 0 && g <= 0 && b <= 175 = Color240 3+    | r <= 0 && g <= 0 && b <= 215 = Color240 4+    | r <= 0 && g <= 0 && b <= 255 = Color240 5+    | r <= 0 && g <= 95 && b <= 0 = Color240 6+    | r <= 0 && g <= 95 && b <= 95 = Color240 7+    | r <= 0 && g <= 95 && b <= 135 = Color240 8+    | r <= 0 && g <= 95 && b <= 175 = Color240 9+    | r <= 0 && g <= 95 && b <= 215 = Color240 10+    | r <= 0 && g <= 95 && b <= 255 = Color240 11+    | r <= 0 && g <= 135 && b <= 0 = Color240 12+    | r <= 0 && g <= 135 && b <= 95 = Color240 13+    | r <= 0 && g <= 135 && b <= 135 = Color240 14+    | r <= 0 && g <= 135 && b <= 175 = Color240 15+    | r <= 0 && g <= 135 && b <= 215 = Color240 16+    | r <= 0 && g <= 135 && b <= 255 = Color240 17+    | r <= 0 && g <= 175 && b <= 0 = Color240 18+    | r <= 0 && g <= 175 && b <= 95 = Color240 19+    | r <= 0 && g <= 175 && b <= 135 = Color240 20+    | r <= 0 && g <= 175 && b <= 175 = Color240 21+    | r <= 0 && g <= 175 && b <= 215 = Color240 22+    | r <= 0 && g <= 175 && b <= 255 = Color240 23+    | r <= 0 && g <= 215 && b <= 0 = Color240 24+    | r <= 0 && g <= 215 && b <= 95 = Color240 25+    | r <= 0 && g <= 215 && b <= 135 = Color240 26+    | r <= 0 && g <= 215 && b <= 175 = Color240 27+    | r <= 0 && g <= 215 && b <= 215 = Color240 28+    | r <= 0 && g <= 215 && b <= 255 = Color240 29+    | r <= 0 && g <= 255 && b <= 0 = Color240 30+    | r <= 0 && g <= 255 && b <= 95 = Color240 31+    | r <= 0 && g <= 255 && b <= 135 = Color240 32+    | r <= 0 && g <= 255 && b <= 175 = Color240 33+    | r <= 0 && g <= 255 && b <= 215 = Color240 34+    | r <= 0 && g <= 255 && b <= 255 = Color240 35+    | r <= 95 && g <= 0 && b <= 0 = Color240 36+    | r <= 95 && g <= 0 && b <= 95 = Color240 37+    | r <= 95 && g <= 0 && b <= 135 = Color240 38+    | r <= 95 && g <= 0 && b <= 175 = Color240 39+    | r <= 95 && g <= 0 && b <= 215 = Color240 40+    | r <= 95 && g <= 0 && b <= 255 = Color240 41+    | r <= 95 && g <= 95 && b <= 0 = Color240 42+    | r <= 95 && g <= 95 && b <= 95 = Color240 43+    | r <= 95 && g <= 95 && b <= 135 = Color240 44+    | r <= 95 && g <= 95 && b <= 175 = Color240 45+    | r <= 95 && g <= 95 && b <= 215 = Color240 46+    | r <= 95 && g <= 95 && b <= 255 = Color240 47+    | r <= 95 && g <= 135 && b <= 0 = Color240 48+    | r <= 95 && g <= 135 && b <= 95 = Color240 49+    | r <= 95 && g <= 135 && b <= 135 = Color240 50+    | r <= 95 && g <= 135 && b <= 175 = Color240 51+    | r <= 95 && g <= 135 && b <= 215 = Color240 52+    | r <= 95 && g <= 135 && b <= 255 = Color240 53+    | r <= 95 && g <= 175 && b <= 0 = Color240 54+    | r <= 95 && g <= 175 && b <= 95 = Color240 55+    | r <= 95 && g <= 175 && b <= 135 = Color240 56+    | r <= 95 && g <= 175 && b <= 175 = Color240 57+    | r <= 95 && g <= 175 && b <= 215 = Color240 58+    | r <= 95 && g <= 175 && b <= 255 = Color240 59+    | r <= 95 && g <= 215 && b <= 0 = Color240 60+    | r <= 95 && g <= 215 && b <= 95 = Color240 61+    | r <= 95 && g <= 215 && b <= 135 = Color240 62+    | r <= 95 && g <= 215 && b <= 175 = Color240 63+    | r <= 95 && g <= 215 && b <= 215 = Color240 64+    | r <= 95 && g <= 215 && b <= 255 = Color240 65+    | r <= 95 && g <= 255 && b <= 0 = Color240 66+    | r <= 95 && g <= 255 && b <= 95 = Color240 67+    | r <= 95 && g <= 255 && b <= 135 = Color240 68+    | r <= 95 && g <= 255 && b <= 175 = Color240 69+    | r <= 95 && g <= 255 && b <= 215 = Color240 70+    | r <= 95 && g <= 255 && b <= 255 = Color240 71+    | r <= 135 && g <= 0 && b <= 0 = Color240 72+    | r <= 135 && g <= 0 && b <= 95 = Color240 73+    | r <= 135 && g <= 0 && b <= 135 = Color240 74+    | r <= 135 && g <= 0 && b <= 175 = Color240 75+    | r <= 135 && g <= 0 && b <= 215 = Color240 76+    | r <= 135 && g <= 0 && b <= 255 = Color240 77+    | r <= 135 && g <= 95 && b <= 0 = Color240 78+    | r <= 135 && g <= 95 && b <= 95 = Color240 79+    | r <= 135 && g <= 95 && b <= 135 = Color240 80+    | r <= 135 && g <= 95 && b <= 175 = Color240 81+    | r <= 135 && g <= 95 && b <= 215 = Color240 82+    | r <= 135 && g <= 95 && b <= 255 = Color240 83+    | r <= 135 && g <= 135 && b <= 0 = Color240 84+    | r <= 135 && g <= 135 && b <= 95 = Color240 85+    | r <= 135 && g <= 135 && b <= 135 = Color240 86+    | r <= 135 && g <= 135 && b <= 175 = Color240 87+    | r <= 135 && g <= 135 && b <= 215 = Color240 88+    | r <= 135 && g <= 135 && b <= 255 = Color240 89+    | r <= 135 && g <= 175 && b <= 0 = Color240 90+    | r <= 135 && g <= 175 && b <= 95 = Color240 91+    | r <= 135 && g <= 175 && b <= 135 = Color240 92+    | r <= 135 && g <= 175 && b <= 175 = Color240 93+    | r <= 135 && g <= 175 && b <= 215 = Color240 94+    | r <= 135 && g <= 175 && b <= 255 = Color240 95+    | r <= 135 && g <= 215 && b <= 0 = Color240 96+    | r <= 135 && g <= 215 && b <= 95 = Color240 97+    | r <= 135 && g <= 215 && b <= 135 = Color240 98+    | r <= 135 && g <= 215 && b <= 175 = Color240 99+    | r <= 135 && g <= 215 && b <= 215 = Color240 100+    | r <= 135 && g <= 215 && b <= 255 = Color240 101+    | r <= 135 && g <= 255 && b <= 0 = Color240 102+    | r <= 135 && g <= 255 && b <= 95 = Color240 103+    | r <= 135 && g <= 255 && b <= 135 = Color240 104+    | r <= 135 && g <= 255 && b <= 175 = Color240 105+    | r <= 135 && g <= 255 && b <= 215 = Color240 106+    | r <= 135 && g <= 255 && b <= 255 = Color240 107+    | r <= 175 && g <= 0 && b <= 0 = Color240 108+    | r <= 175 && g <= 0 && b <= 95 = Color240 109+    | r <= 175 && g <= 0 && b <= 135 = Color240 110+    | r <= 175 && g <= 0 && b <= 175 = Color240 111+    | r <= 175 && g <= 0 && b <= 215 = Color240 112+    | r <= 175 && g <= 0 && b <= 255 = Color240 113+    | r <= 175 && g <= 95 && b <= 0 = Color240 114+    | r <= 175 && g <= 95 && b <= 95 = Color240 115+    | r <= 175 && g <= 95 && b <= 135 = Color240 116+    | r <= 175 && g <= 95 && b <= 175 = Color240 117+    | r <= 175 && g <= 95 && b <= 215 = Color240 118+    | r <= 175 && g <= 95 && b <= 255 = Color240 119+    | r <= 175 && g <= 135 && b <= 0 = Color240 120+    | r <= 175 && g <= 135 && b <= 95 = Color240 121+    | r <= 175 && g <= 135 && b <= 135 = Color240 122+    | r <= 175 && g <= 135 && b <= 175 = Color240 123+    | r <= 175 && g <= 135 && b <= 215 = Color240 124+    | r <= 175 && g <= 135 && b <= 255 = Color240 125+    | r <= 175 && g <= 175 && b <= 0 = Color240 126+    | r <= 175 && g <= 175 && b <= 95 = Color240 127+    | r <= 175 && g <= 175 && b <= 135 = Color240 128+    | r <= 175 && g <= 175 && b <= 175 = Color240 129+    | r <= 175 && g <= 175 && b <= 215 = Color240 130+    | r <= 175 && g <= 175 && b <= 255 = Color240 131+    | r <= 175 && g <= 215 && b <= 0 = Color240 132+    | r <= 175 && g <= 215 && b <= 95 = Color240 133+    | r <= 175 && g <= 215 && b <= 135 = Color240 134+    | r <= 175 && g <= 215 && b <= 175 = Color240 135+    | r <= 175 && g <= 215 && b <= 215 = Color240 136+    | r <= 175 && g <= 215 && b <= 255 = Color240 137+    | r <= 175 && g <= 255 && b <= 0 = Color240 138+    | r <= 175 && g <= 255 && b <= 95 = Color240 139+    | r <= 175 && g <= 255 && b <= 135 = Color240 140+    | r <= 175 && g <= 255 && b <= 175 = Color240 141+    | r <= 175 && g <= 255 && b <= 215 = Color240 142+    | r <= 175 && g <= 255 && b <= 255 = Color240 143+    | r <= 215 && g <= 0 && b <= 0 = Color240 144+    | r <= 215 && g <= 0 && b <= 95 = Color240 145+    | r <= 215 && g <= 0 && b <= 135 = Color240 146+    | r <= 215 && g <= 0 && b <= 175 = Color240 147+    | r <= 215 && g <= 0 && b <= 215 = Color240 148+    | r <= 215 && g <= 0 && b <= 255 = Color240 149+    | r <= 215 && g <= 95 && b <= 0 = Color240 150+    | r <= 215 && g <= 95 && b <= 95 = Color240 151+    | r <= 215 && g <= 95 && b <= 135 = Color240 152+    | r <= 215 && g <= 95 && b <= 175 = Color240 153+    | r <= 215 && g <= 95 && b <= 215 = Color240 154+    | r <= 215 && g <= 95 && b <= 255 = Color240 155+    | r <= 215 && g <= 135 && b <= 0 = Color240 156+    | r <= 215 && g <= 135 && b <= 95 = Color240 157+    | r <= 215 && g <= 135 && b <= 135 = Color240 158+    | r <= 215 && g <= 135 && b <= 175 = Color240 159+    | r <= 215 && g <= 135 && b <= 215 = Color240 160+    | r <= 215 && g <= 135 && b <= 255 = Color240 161+    | r <= 215 && g <= 175 && b <= 0 = Color240 162+    | r <= 215 && g <= 175 && b <= 95 = Color240 163+    | r <= 215 && g <= 175 && b <= 135 = Color240 164+    | r <= 215 && g <= 175 && b <= 175 = Color240 165+    | r <= 215 && g <= 175 && b <= 215 = Color240 166+    | r <= 215 && g <= 175 && b <= 255 = Color240 167+    | r <= 215 && g <= 215 && b <= 0 = Color240 168+    | r <= 215 && g <= 215 && b <= 95 = Color240 169+    | r <= 215 && g <= 215 && b <= 135 = Color240 170+    | r <= 215 && g <= 215 && b <= 175 = Color240 171+    | r <= 215 && g <= 215 && b <= 215 = Color240 172+    | r <= 215 && g <= 215 && b <= 255 = Color240 173+    | r <= 215 && g <= 255 && b <= 0 = Color240 174+    | r <= 215 && g <= 255 && b <= 95 = Color240 175+    | r <= 215 && g <= 255 && b <= 135 = Color240 176+    | r <= 215 && g <= 255 && b <= 175 = Color240 177+    | r <= 215 && g <= 255 && b <= 215 = Color240 178+    | r <= 215 && g <= 255 && b <= 255 = Color240 179+    | r <= 255 && g <= 0 && b <= 0 = Color240 180+    | r <= 255 && g <= 0 && b <= 95 = Color240 181+    | r <= 255 && g <= 0 && b <= 135 = Color240 182+    | r <= 255 && g <= 0 && b <= 175 = Color240 183+    | r <= 255 && g <= 0 && b <= 215 = Color240 184+    | r <= 255 && g <= 0 && b <= 255 = Color240 185+    | r <= 255 && g <= 95 && b <= 0 = Color240 186+    | r <= 255 && g <= 95 && b <= 95 = Color240 187+    | r <= 255 && g <= 95 && b <= 135 = Color240 188+    | r <= 255 && g <= 95 && b <= 175 = Color240 189+    | r <= 255 && g <= 95 && b <= 215 = Color240 190+    | r <= 255 && g <= 95 && b <= 255 = Color240 191+    | r <= 255 && g <= 135 && b <= 0 = Color240 192+    | r <= 255 && g <= 135 && b <= 95 = Color240 193+    | r <= 255 && g <= 135 && b <= 135 = Color240 194+    | r <= 255 && g <= 135 && b <= 175 = Color240 195+    | r <= 255 && g <= 135 && b <= 215 = Color240 196+    | r <= 255 && g <= 135 && b <= 255 = Color240 197+    | r <= 255 && g <= 175 && b <= 0 = Color240 198+    | r <= 255 && g <= 175 && b <= 95 = Color240 199+    | r <= 255 && g <= 175 && b <= 135 = Color240 200+    | r <= 255 && g <= 175 && b <= 175 = Color240 201+    | r <= 255 && g <= 175 && b <= 215 = Color240 202+    | r <= 255 && g <= 175 && b <= 255 = Color240 203+    | r <= 255 && g <= 215 && b <= 0 = Color240 204+    | r <= 255 && g <= 215 && b <= 95 = Color240 205+    | r <= 255 && g <= 215 && b <= 135 = Color240 206+    | r <= 255 && g <= 215 && b <= 175 = Color240 207+    | r <= 255 && g <= 215 && b <= 215 = Color240 208+    | r <= 255 && g <= 215 && b <= 255 = Color240 209+    | r <= 255 && g <= 255 && b <= 0 = Color240 210+    | r <= 255 && g <= 255 && b <= 95 = Color240 211+    | r <= 255 && g <= 255 && b <= 135 = Color240 212+    | r <= 255 && g <= 255 && b <= 175 = Color240 213+    | r <= 255 && g <= 255 && b <= 215 = Color240 214+    | r <= 255 && g <= 255 && b <= 255 = Color240 215+    | otherwise = error (printf "RGB color %d %d %d does not map to 240 palette." +                                (fromIntegral r :: Int)+                                (fromIntegral g :: Int)+                                (fromIntegral b :: Int))+
vty.cabal view
@@ -1,5 +1,5 @@ name:                vty-version:             4.7.3+version:             4.7.4 license:             BSD3 license-file:        LICENSE author:              AUTHORS@@ -64,6 +64,8 @@   other-modules:       Data.Marshalling                        Data.Terminfo.Parse                        Data.Terminfo.Eval+                       Graphics.Vty.Attributes.Color+                       Graphics.Vty.Attributes.Color240                        Graphics.Vty.DisplayAttributes                        Graphics.Vty.Span                        Graphics.Vty.Terminal.Generic