From: <kr_...@us...> - 2003-06-01 13:20:14
|
Update of /cvsroot/htoolkit/port/src/Port In directory sc8-pr-cvs1:/tmp/cvs-serv15950/src/Port Modified Files: Colors.hs Types.hs Log Message: Added Read instances for Color and some other primitive typs Index: Colors.hs =================================================================== RCS file: /cvsroot/htoolkit/port/src/Port/Colors.hs,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Colors.hs 15 Mar 2003 22:33:10 -0000 1.2 --- Colors.hs 1 Jun 2003 13:00:09 -0000 1.3 *************** *** 57,60 **** --- 57,63 ---- import Data.Word import Data.Bits + import GHC.Read + import Text.Read + import Text.ParserCombinators.ReadPrec newtype Color = Color Word deriving Eq *************** *** 206,209 **** --- 209,374 ---- showChar ' ' . shows (colorGreen c) . showChar ' ' . shows (colorBlue c)) + + instance Read Color where + readPrec = + do { Ident "aliceblue" <- lexP; return aliceblue } +++ + do { Ident "antiquewhite" <- lexP; return antiquewhite } +++ + do { Ident "aqua" <- lexP; return aqua } +++ + do { Ident "aquamarine" <- lexP; return aquamarine } +++ + do { Ident "azure" <- lexP; return azure } +++ + do { Ident "beige" <- lexP; return beige } +++ + do { Ident "bisque" <- lexP; return bisque } +++ + do { Ident "black" <- lexP; return black } +++ + do { Ident "blanchedalmond" <- lexP; return blanchedalmond } +++ + do { Ident "blue" <- lexP; return blue } +++ + do { Ident "blueviolet" <- lexP; return blueviolet } +++ + do { Ident "brown" <- lexP; return brown } +++ + do { Ident "burlywood" <- lexP; return burlywood } +++ + do { Ident "cadetblue" <- lexP; return cadetblue } +++ + do { Ident "chartreuse" <- lexP; return chartreuse } +++ + do { Ident "chocolate" <- lexP; return chocolate } +++ + do { Ident "coral" <- lexP; return coral } +++ + do { Ident "cornflower" <- lexP; return cornflower } +++ + do { Ident "cornsilk" <- lexP; return cornsilk } +++ + do { Ident "crimson" <- lexP; return crimson } +++ + do { Ident "cyan" <- lexP; return cyan } +++ + do { Ident "darkblue" <- lexP; return darkblue } +++ + do { Ident "darkcyan" <- lexP; return darkcyan } +++ + do { Ident "darkgoldenrod" <- lexP; return darkgoldenrod } +++ + do { Ident "darkgray" <- lexP; return darkgray } +++ + do { Ident "darkgreen" <- lexP; return darkgreen } +++ + do { Ident "darkkhaki" <- lexP; return darkkhaki } +++ + do { Ident "darkmagenta" <- lexP; return darkmagenta } +++ + do { Ident "darkolivegreen" <- lexP; return darkolivegreen } +++ + do { Ident "darkorange" <- lexP; return darkorange } +++ + do { Ident "darkorchid" <- lexP; return darkorchid } +++ + do { Ident "darkred" <- lexP; return darkred } +++ + do { Ident "darksalmon" <- lexP; return darksalmon } +++ + do { Ident "darkseagreen" <- lexP; return darkseagreen } +++ + do { Ident "darkslateblue" <- lexP; return darkslateblue } +++ + do { Ident "darkslategray" <- lexP; return darkslategray } +++ + do { Ident "darkturquoise" <- lexP; return darkturquoise } +++ + do { Ident "darkviolet" <- lexP; return darkviolet } +++ + do { Ident "deeppink" <- lexP; return deeppink } +++ + do { Ident "deepskyblue" <- lexP; return deepskyblue } +++ + do { Ident "dimgray" <- lexP; return dimgray } +++ + do { Ident "dodgerblue" <- lexP; return dodgerblue } +++ + do { Ident "firebrick" <- lexP; return firebrick } +++ + do { Ident "floralwhite" <- lexP; return floralwhite } +++ + do { Ident "forestgreen" <- lexP; return forestgreen } +++ + do { Ident "fuchsia" <- lexP; return fuchsia } +++ + do { Ident "gainsboro" <- lexP; return gainsboro } +++ + do { Ident "ghostwhite" <- lexP; return ghostwhite } +++ + do { Ident "gold" <- lexP; return gold } +++ + do { Ident "goldenrod" <- lexP; return goldenrod } +++ + do { Ident "gray" <- lexP; return gray } +++ + do { Ident "green" <- lexP; return green } +++ + do { Ident "greenyellow" <- lexP; return greenyellow } +++ + do { Ident "honeydew" <- lexP; return honeydew } +++ + do { Ident "hotpink" <- lexP; return hotpink } +++ + do { Ident "indianred" <- lexP; return indianred } +++ + do { Ident "indigo" <- lexP; return indigo } +++ + do { Ident "ivory" <- lexP; return ivory } +++ + do { Ident "khaki" <- lexP; return khaki } +++ + do { Ident "lavender" <- lexP; return lavender } +++ + do { Ident "lavenderblush" <- lexP; return lavenderblush } +++ + do { Ident "lawngreen" <- lexP; return lawngreen } +++ + do { Ident "lemonchiffon" <- lexP; return lemonchiffon } +++ + do { Ident "lightblue" <- lexP; return lightblue } +++ + do { Ident "lightcoral" <- lexP; return lightcoral } +++ + do { Ident "lightcyan" <- lexP; return lightcyan } +++ + do { Ident "lightgoldenrodyellow"<- lexP; return lightgoldenrodyellow} +++ + do { Ident "lightgreen" <- lexP; return lightgreen } +++ + do { Ident "lightgray" <- lexP; return lightgray } +++ + do { Ident "lightpink" <- lexP; return lightpink } +++ + do { Ident "lightsalmon" <- lexP; return lightsalmon } +++ + do { Ident "lightseagreen" <- lexP; return lightseagreen } +++ + do { Ident "lightskyblue" <- lexP; return lightskyblue } +++ + do { Ident "lightslategray" <- lexP; return lightslategray } +++ + do { Ident "lightsteelblue" <- lexP; return lightsteelblue } +++ + do { Ident "lightyellow" <- lexP; return lightyellow } +++ + do { Ident "lime" <- lexP; return lime } +++ + do { Ident "limegreen" <- lexP; return limegreen } +++ + do { Ident "linen" <- lexP; return linen } +++ + do { Ident "magenta" <- lexP; return magenta } +++ + do { Ident "maroon" <- lexP; return maroon } +++ + do { Ident "mediumaquamarine" <- lexP; return mediumaquamarine } +++ + do { Ident "mediumblue" <- lexP; return mediumblue } +++ + do { Ident "mediumorchid" <- lexP; return mediumorchid } +++ + do { Ident "mediumpurple" <- lexP; return mediumpurple } +++ + do { Ident "mediumseagreen" <- lexP; return mediumseagreen } +++ + do { Ident "mediumslateblue" <- lexP; return mediumslateblue } +++ + do { Ident "mediumspringgreen" <- lexP; return mediumspringgreen } +++ + do { Ident "mediumturquoise" <- lexP; return mediumturquoise } +++ + do { Ident "mediumvioletred" <- lexP; return mediumvioletred } +++ + do { Ident "midnightblue" <- lexP; return midnightblue } +++ + do { Ident "mintcream" <- lexP; return mintcream } +++ + do { Ident "mistyrose" <- lexP; return mistyrose } +++ + do { Ident "moccasin" <- lexP; return moccasin } +++ + do { Ident "navajowhite" <- lexP; return navajowhite } +++ + do { Ident "navy" <- lexP; return navy } +++ + do { Ident "oldlace" <- lexP; return oldlace } +++ + do { Ident "olive" <- lexP; return olive } +++ + do { Ident "olivedrab" <- lexP; return olivedrab } +++ + do { Ident "orange" <- lexP; return orange } +++ + do { Ident "orangered" <- lexP; return orangered } +++ + do { Ident "orchid" <- lexP; return orchid } +++ + do { Ident "palegoldenrod" <- lexP; return palegoldenrod } +++ + do { Ident "palegreen" <- lexP; return palegreen } +++ + do { Ident "paleturquoise" <- lexP; return paleturquoise } +++ + do { Ident "palevioletred" <- lexP; return palevioletred } +++ + do { Ident "papayawhip" <- lexP; return papayawhip } +++ + do { Ident "peachpuff" <- lexP; return peachpuff } +++ + do { Ident "peru" <- lexP; return peru } +++ + do { Ident "pink" <- lexP; return pink } +++ + do { Ident "plum" <- lexP; return plum } +++ + do { Ident "powderblue" <- lexP; return powderblue } +++ + do { Ident "purple" <- lexP; return purple } +++ + do { Ident "red" <- lexP; return red } +++ + do { Ident "rosybrown" <- lexP; return rosybrown } +++ + do { Ident "royalblue" <- lexP; return royalblue } +++ + do { Ident "saddlebrown" <- lexP; return saddlebrown } +++ + do { Ident "salmon" <- lexP; return salmon } +++ + do { Ident "sandybrown" <- lexP; return sandybrown } +++ + do { Ident "seagreen" <- lexP; return seagreen } +++ + do { Ident "seashell" <- lexP; return seashell } +++ + do { Ident "sienna" <- lexP; return sienna } +++ + do { Ident "silver" <- lexP; return silver } +++ + do { Ident "skyblue" <- lexP; return skyblue } +++ + do { Ident "slateblue" <- lexP; return slateblue } +++ + do { Ident "slategray" <- lexP; return slategray } +++ + do { Ident "snow" <- lexP; return snow } +++ + do { Ident "springgreen" <- lexP; return springgreen } +++ + do { Ident "steelblue" <- lexP; return steelblue } +++ + do { Ident "teal" <- lexP; return teal } +++ + do { Ident "thistle" <- lexP; return thistle } +++ + do { Ident "tomato" <- lexP; return tomato } +++ + do { Ident "turquoise" <- lexP; return turquoise } +++ + do { Ident "violet" <- lexP; return violet } +++ + do { Ident "wheat" <- lexP; return wheat } +++ + do { Ident "white" <- lexP; return white } +++ + do { Ident "whitesmoke" <- lexP; return whitesmoke } +++ + do { Ident "yellow" <- lexP; return yellow } +++ + do { Ident "yellowgreen" <- lexP; return yellowgreen } +++ + do { Ident "dialoggray" <- lexP; return dialoggray } +++ + parens + ( prec 10 + ( do Ident "rgbColor" <- lexP + r <- step readPrec + g <- step readPrec + b <- step readPrec + return (rgbColor r g b) + ) + ) +++ + parens + ( prec 10 + ( do Ident "cmyColor" <- lexP + r <- step readPrec + g <- step readPrec + b <- step readPrec + return (cmyColor r g b) + ) + ) + -- | Create a color from a red\/green\/blue triple. Index: Types.hs =================================================================== RCS file: /cvsroot/htoolkit/port/src/Port/Types.hs,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** Types.hs 2 May 2003 06:35:30 -0000 1.18 --- Types.hs 1 Jun 2003 13:00:10 -0000 1.19 *************** *** 162,166 **** , py :: !Int -- ^ y component of a point. } ! deriving (Eq,Show) -- | Short function to construct a point. --- 162,166 ---- , py :: !Int -- ^ y component of a point. } ! deriving (Eq,Show,Read) -- | Short function to construct a point. *************** *** 206,210 **** , sh :: !Int -- ^ the height of a size } ! deriving (Eq,Show) -- | Short function to construct a size --- 206,210 ---- , sh :: !Int -- ^ the height of a size } ! deriving (Eq,Show,Read) -- | Short function to construct a size *************** *** 253,257 **** , vy :: !Int -- ^ delta-y component of a vector } ! deriving (Eq,Show) -- | Short function to construct a vector. --- 253,257 ---- , vy :: !Int -- ^ delta-y component of a vector } ! deriving (Eq,Show,Read) -- | Short function to construct a vector. *************** *** 755,759 **** | JoinMiter -- ^ Leave it as is. | JoinRound -- ^ Round off the corners. ! deriving (Eq,Show) toCJoinStyle :: JoinStyle -> CInt --- 755,759 ---- | JoinMiter -- ^ Leave it as is. | JoinRound -- ^ Round off the corners. ! deriving (Eq,Show,Read) toCJoinStyle :: JoinStyle -> CInt *************** *** 769,773 **** | CapSquare -- ^ Square: put a square at the logical end point. | CapFlat -- ^ End flatly at the logical end point. (Doesn't stick out like square or round). ! deriving (Eq,Show) toCCapStyle :: CapStyle -> CInt --- 769,773 ---- | CapSquare -- ^ Square: put a square at the logical end point. | CapFlat -- ^ End flatly at the logical end point. (Doesn't stick out like square or round). ! deriving (Eq,Show,Read) toCCapStyle :: CapStyle -> CInt *************** *** 786,790 **** | LineDashDotDot -- ^ Dash - Dot - Dot pattern. | LineCustomStyle [Word8] -- ^ Custom pattern: each element specifies the pixel length of a dash. ! deriving (Eq,Show) withCLineStyle :: LineStyle -> (CInt -> CInt -> Ptr CUChar -> IO a) -> IO a --- 786,790 ---- | LineDashDotDot -- ^ Dash - Dot - Dot pattern. | LineCustomStyle [Word8] -- ^ Custom pattern: each element specifies the pixel length of a dash. ! deriving (Eq,Show,Read) withCLineStyle :: LineStyle -> (CInt -> CInt -> Ptr CUChar -> IO a) -> IO a |