on master help sign in
Merge pull request #153 from spaceships/feature/color240ToRGB

Attributes/Color240: Add color240ToRGB function

commit337e9a6ef1b11d51cf46c0bcecdfee66a8ced61f authorJonathan Daugherty <cygnus@foobox.com> dateWed 11 Jul 2018, 17:46 (8 years ago) parentbf96356c3796a8
1 file changed+249
src/Graphics/Vty/Attributes/Color240.hs+249
src/Graphics/Vty/Attributes/Color240.hs+249
@@ -1,17 +1,21 @@
11-- This header file was generated by ./256colres.pl
22module Graphics.Vty.Attributes.Color240
33 ( rgbColor
4+ , color240CodeToRGB
45 )
56where
67
78import Graphics.Vty.Attributes.Color
89
10+import Data.Word (Word8)
911import Text.Printf
1012
1113-- Note: rgbColor's mapping from RGB to 240 colors was generated from
1214-- 256colres.pl which is forked from xterm 256colres.pl.
1315
1416-- | Create a Vty 'Color' (in the 240 color set) from an RGB triple.
17+-- This function is lossy in the sense that we only internally support 240 colors but the
18+-- #RRGGBB format supports 16^3 colors.
1519rgbColor :: Integral i => i -> i -> i -> Color
1620rgbColor r g b
1721 | r < 0 && g < 0 && b < 0 = error "rgbColor with negative color component intensity"
@@ -259,3 +263,248 @@ rgbColor r g b
259263 (fromIntegral r :: Int)
260264 (fromIntegral g :: Int)
261265 (fromIntegral b :: Int))
266+
267+-- | Create a RGB triple from a value in the Color240 set.
268+color240CodeToRGB :: Word8 -> Maybe (Int, Int, Int)
269+color240CodeToRGB n = case n of
270+ 0 -> Just (0, 0, 0)
271+ 1 -> Just (0, 0, 95)
272+ 2 -> Just (0, 0, 135)
273+ 3 -> Just (0, 0, 175)
274+ 4 -> Just (0, 0, 215)
275+ 5 -> Just (0, 0, 255)
276+ 6 -> Just (0, 95, 0)
277+ 7 -> Just (0, 95, 95)
278+ 8 -> Just (0, 95, 135)
279+ 9 -> Just (0, 95, 175)
280+ 10 -> Just (0, 95, 215)
281+ 11 -> Just (0, 95, 255)
282+ 12 -> Just (0, 135, 0)
283+ 13 -> Just (0, 135, 95)
284+ 14 -> Just (0, 135, 135)
285+ 15 -> Just (0, 135, 175)
286+ 16 -> Just (0, 135, 215)
287+ 17 -> Just (0, 135, 255)
288+ 18 -> Just (0, 175, 0)
289+ 19 -> Just (0, 175, 95)
290+ 20 -> Just (0, 175, 135)
291+ 21 -> Just (0, 175, 175)
292+ 22 -> Just (0, 175, 215)
293+ 23 -> Just (0, 175, 255)
294+ 24 -> Just (0, 215, 0)
295+ 25 -> Just (0, 215, 95)
296+ 26 -> Just (0, 215, 135)
297+ 27 -> Just (0, 215, 175)
298+ 28 -> Just (0, 215, 215)
299+ 29 -> Just (0, 215, 255)
300+ 30 -> Just (0, 255, 0)
301+ 31 -> Just (0, 255, 95)
302+ 32 -> Just (0, 255, 135)
303+ 33 -> Just (0, 255, 175)
304+ 34 -> Just (0, 255, 215)
305+ 35 -> Just (0, 255, 255)
306+ 36 -> Just (95, 0, 0)
307+ 37 -> Just (95, 0, 95)
308+ 38 -> Just (95, 0, 135)
309+ 39 -> Just (95, 0, 175)
310+ 40 -> Just (95, 0, 215)
311+ 41 -> Just (95, 0, 255)
312+ 42 -> Just (95, 95, 0)
313+ 43 -> Just (95, 95, 95)
314+ 44 -> Just (95, 95, 135)
315+ 45 -> Just (95, 95, 175)
316+ 46 -> Just (95, 95, 215)
317+ 47 -> Just (95, 95, 255)
318+ 48 -> Just (95, 135, 0)
319+ 49 -> Just (95, 135, 95)
320+ 50 -> Just (95, 135, 135)
321+ 51 -> Just (95, 135, 175)
322+ 52 -> Just (95, 135, 215)
323+ 53 -> Just (95, 135, 255)
324+ 54 -> Just (95, 175, 0)
325+ 55 -> Just (95, 175, 95)
326+ 56 -> Just (95, 175, 135)
327+ 57 -> Just (95, 175, 175)
328+ 58 -> Just (95, 175, 215)
329+ 59 -> Just (95, 175, 255)
330+ 60 -> Just (95, 215, 0)
331+ 61 -> Just (95, 215, 95)
332+ 62 -> Just (95, 215, 135)
333+ 63 -> Just (95, 215, 175)
334+ 64 -> Just (95, 215, 215)
335+ 65 -> Just (95, 215, 255)
336+ 66 -> Just (95, 255, 0)
337+ 67 -> Just (95, 255, 95)
338+ 68 -> Just (95, 255, 135)
339+ 69 -> Just (95, 255, 175)
340+ 70 -> Just (95, 255, 215)
341+ 71 -> Just (95, 255, 255)
342+ 72 -> Just (135, 0, 0)
343+ 73 -> Just (135, 0, 95)
344+ 74 -> Just (135, 0, 135)
345+ 75 -> Just (135, 0, 175)
346+ 76 -> Just (135, 0, 215)
347+ 77 -> Just (135, 0, 255)
348+ 78 -> Just (135, 95, 0)
349+ 79 -> Just (135, 95, 95)
350+ 80 -> Just (135, 95, 135)
351+ 81 -> Just (135, 95, 175)
352+ 82 -> Just (135, 95, 215)
353+ 83 -> Just (135, 95, 255)
354+ 84 -> Just (135, 135, 0)
355+ 85 -> Just (135, 135, 95)
356+ 86 -> Just (135, 135, 135)
357+ 87 -> Just (135, 135, 175)
358+ 88 -> Just (135, 135, 215)
359+ 89 -> Just (135, 135, 255)
360+ 90 -> Just (135, 175, 0)
361+ 91 -> Just (135, 175, 95)
362+ 92 -> Just (135, 175, 135)
363+ 93 -> Just (135, 175, 175)
364+ 94 -> Just (135, 175, 215)
365+ 95 -> Just (135, 175, 255)
366+ 96 -> Just (135, 215, 0)
367+ 97 -> Just (135, 215, 95)
368+ 98 -> Just (135, 215, 135)
369+ 99 -> Just (135, 215, 175)
370+ 100 -> Just (135, 215, 215)
371+ 101 -> Just (135, 215, 255)
372+ 102 -> Just (135, 255, 0)
373+ 103 -> Just (135, 255, 95)
374+ 104 -> Just (135, 255, 135)
375+ 105 -> Just (135, 255, 175)
376+ 106 -> Just (135, 255, 215)
377+ 107 -> Just (135, 255, 255)
378+ 108 -> Just (175, 0, 0)
379+ 109 -> Just (175, 0, 95)
380+ 110 -> Just (175, 0, 135)
381+ 111 -> Just (175, 0, 175)
382+ 112 -> Just (175, 0, 215)
383+ 113 -> Just (175, 0, 255)
384+ 114 -> Just (175, 95, 0)
385+ 115 -> Just (175, 95, 95)
386+ 116 -> Just (175, 95, 135)
387+ 117 -> Just (175, 95, 175)
388+ 118 -> Just (175, 95, 215)
389+ 119 -> Just (175, 95, 255)
390+ 120 -> Just (175, 135, 0)
391+ 121 -> Just (175, 135, 95)
392+ 122 -> Just (175, 135, 135)
393+ 123 -> Just (175, 135, 175)
394+ 124 -> Just (175, 135, 215)
395+ 125 -> Just (175, 135, 255)
396+ 126 -> Just (175, 175, 0)
397+ 127 -> Just (175, 175, 95)
398+ 128 -> Just (175, 175, 135)
399+ 129 -> Just (175, 175, 175)
400+ 130 -> Just (175, 175, 215)
401+ 131 -> Just (175, 175, 255)
402+ 132 -> Just (175, 215, 0)
403+ 133 -> Just (175, 215, 95)
404+ 134 -> Just (175, 215, 135)
405+ 135 -> Just (175, 215, 175)
406+ 136 -> Just (175, 215, 215)
407+ 137 -> Just (175, 215, 255)
408+ 138 -> Just (175, 255, 0)
409+ 139 -> Just (175, 255, 95)
410+ 140 -> Just (175, 255, 135)
411+ 141 -> Just (175, 255, 175)
412+ 142 -> Just (175, 255, 215)
413+ 143 -> Just (175, 255, 255)
414+ 144 -> Just (215, 0, 0)
415+ 145 -> Just (215, 0, 95)
416+ 146 -> Just (215, 0, 135)
417+ 147 -> Just (215, 0, 175)
418+ 148 -> Just (215, 0, 215)
419+ 149 -> Just (215, 0, 255)
420+ 150 -> Just (215, 95, 0)
421+ 151 -> Just (215, 95, 95)
422+ 152 -> Just (215, 95, 135)
423+ 153 -> Just (215, 95, 175)
424+ 154 -> Just (215, 95, 215)
425+ 155 -> Just (215, 95, 255)
426+ 156 -> Just (215, 135, 0)
427+ 157 -> Just (215, 135, 95)
428+ 158 -> Just (215, 135, 135)
429+ 159 -> Just (215, 135, 175)
430+ 160 -> Just (215, 135, 215)
431+ 161 -> Just (215, 135, 255)
432+ 162 -> Just (215, 175, 0)
433+ 163 -> Just (215, 175, 95)
434+ 164 -> Just (215, 175, 135)
435+ 165 -> Just (215, 175, 175)
436+ 166 -> Just (215, 175, 215)
437+ 167 -> Just (215, 175, 255)
438+ 168 -> Just (215, 215, 0)
439+ 169 -> Just (215, 215, 95)
440+ 170 -> Just (215, 215, 135)
441+ 171 -> Just (215, 215, 175)
442+ 172 -> Just (215, 215, 215)
443+ 173 -> Just (215, 215, 255)
444+ 174 -> Just (215, 255, 0)
445+ 175 -> Just (215, 255, 95)
446+ 176 -> Just (215, 255, 135)
447+ 177 -> Just (215, 255, 175)
448+ 178 -> Just (215, 255, 215)
449+ 179 -> Just (215, 255, 255)
450+ 180 -> Just (255, 0, 0)
451+ 181 -> Just (255, 0, 95)
452+ 182 -> Just (255, 0, 135)
453+ 183 -> Just (255, 0, 175)
454+ 184 -> Just (255, 0, 215)
455+ 185 -> Just (255, 0, 255)
456+ 186 -> Just (255, 95, 0)
457+ 187 -> Just (255, 95, 95)
458+ 188 -> Just (255, 95, 135)
459+ 189 -> Just (255, 95, 175)
460+ 190 -> Just (255, 95, 215)
461+ 191 -> Just (255, 95, 255)
462+ 192 -> Just (255, 135, 0)
463+ 193 -> Just (255, 135, 95)
464+ 194 -> Just (255, 135, 135)
465+ 195 -> Just (255, 135, 175)
466+ 196 -> Just (255, 135, 215)
467+ 197 -> Just (255, 135, 255)
468+ 198 -> Just (255, 175, 0)
469+ 199 -> Just (255, 175, 95)
470+ 200 -> Just (255, 175, 135)
471+ 201 -> Just (255, 175, 175)
472+ 202 -> Just (255, 175, 215)
473+ 203 -> Just (255, 175, 255)
474+ 204 -> Just (255, 215, 0)
475+ 205 -> Just (255, 215, 95)
476+ 206 -> Just (255, 215, 135)
477+ 207 -> Just (255, 215, 175)
478+ 208 -> Just (255, 215, 215)
479+ 209 -> Just (255, 215, 255)
480+ 210 -> Just (255, 255, 0)
481+ 211 -> Just (255, 255, 95)
482+ 212 -> Just (255, 255, 135)
483+ 213 -> Just (255, 255, 175)
484+ 214 -> Just (255, 255, 215)
485+ 215 -> Just (255, 255, 255)
486+ 216 -> Just (8, 8, 8)
487+ 217 -> Just (18, 18, 18)
488+ 218 -> Just (28, 28, 28)
489+ 219 -> Just (38, 38, 38)
490+ 220 -> Just (48, 48, 48)
491+ 221 -> Just (58, 58, 58)
492+ 222 -> Just (68, 68, 68)
493+ 223 -> Just (78, 78, 78)
494+ 224 -> Just (88, 88, 88)
495+ 225 -> Just (98, 98, 98)
496+ 226 -> Just (108, 108, 108)
497+ 227 -> Just (118, 118, 118)
498+ 228 -> Just (128, 128, 128)
499+ 229 -> Just (138, 138, 138)
500+ 230 -> Just (148, 148, 148)
501+ 231 -> Just (158, 158, 158)
502+ 232 -> Just (168, 168, 168)
503+ 233 -> Just (178, 178, 178)
504+ 234 -> Just (188, 188, 188)
505+ 235 -> Just (198, 198, 198)
506+ 236 -> Just (208, 208, 208)
507+ 237 -> Just (218, 218, 218)
508+ 238 -> Just (228, 228, 228)
509+ 239 -> Just (238, 238, 238)
510+ _ -> Nothing