module GUI.SaveAs (saveAsPDF, saveAsPNG) where -- Imports for ThreadScope import GUI.Timeline.Render (renderTraces) import GUI.Types import Events.HECs -- Imports for GTK import Graphics.UI.Gtk import Graphics.Rendering.Cairo ------------------------------------------------------------------------------- saveAsPDF :: FilePath -> HECs -> ViewParameters -> IO () saveAsPDF file hecs viewParams = withPDFSurface file w' h' $ \surface -> renderWith surface $ renderTraces viewParams hecs (Rectangle 0 0 w h) where w = width viewParams; w' = fromIntegral w h = height viewParams; h' = fromIntegral h ------------------------------------------------------------------------------- saveAsPNG :: FilePath -> HECs -> ViewParameters -> IO () saveAsPNG file hecs viewParams = withImageSurface FormatARGB32 w' h' $ \surface -> do renderWith surface $ renderTraces viewParams hecs (Rectangle 0 0 w h) surfaceWriteToPNG surface file where w = width viewParams; w' = fromIntegral w h = height viewParams; h' = fromIntegral h -------------------------------------------------------------------------------