module PNMgraphics(module PNMgraphics,PNM) where import AllFudgets import PNM import Dither(ColorCube,trueColorCube) import PNM2PixmapK type OptColorCube = Maybe ColorCube data PNMImage = PNMImage OptColorCube PNM pnmImage = PNMImage Nothing instance Graphic PNMImage where measureGraphicK = measureImageK instance Graphic PNM where measureGraphicK = measureImageK instance PixmapGen PNM where convToPixmapK = convToPixmapK . pnmImage instance PixmapGen PNMImage where convToPixmapK (PNMImage optcb pnm) k = getTrueColorCube optcb $ \ optcb' -> pnm2PixmapK optcb' pnm $ \ (size,pixmap) -> k (PixmapImage size pixmap) where getTrueColorCube optcb@(Just _) k = k optcb getTrueColorCube Nothing k = defaultVisual $ \ visual -> case visualClass visual of TrueColor -> k (Just (trueColorCube visual)) _ -> k Nothing