From fc80b95665fe31ded30d86511cfa7f330927e0df Mon Sep 17 00:00:00 2001 From: hasufell Date: Wed, 1 Oct 2014 20:52:07 +0200 Subject: [PATCH] Refactor drawing/saving, improve modularity --- Gtk.hs | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) diff --git a/Gtk.hs b/Gtk.hs index 90d57b0..85eefc4 100644 --- a/Gtk.hs +++ b/Gtk.hs @@ -88,12 +88,7 @@ onClickedDrawButton fcb da = do filename <- fileChooserGetFilename fcb case filename of Just x -> do - mesh <- readFile x - dw <- widgetGetDrawWindow da - let (_, r) = renderDia Cairo - (CairoOptions "" (Width 600) SVG False) - (diagFromString mesh) - renderWithDrawable dw r + drawDiag' x da Nothing -> do showErrorDialog "No valid Mesh file!" @@ -104,11 +99,7 @@ onClickedSaveButton fcb = do filename <- fileChooserGetFilename fcb case filename of Just x -> do - mesh <- readFile x - let (png, _) = renderDia Cairo - (CairoOptions "out.svg" (Width 600) SVG False) - (diagFromString mesh) - png + saveDiag' x Nothing -> do showErrorDialog "No valid Mesh file!" @@ -123,3 +114,18 @@ showErrorDialog str = do _ <- dialogRun errorDialog widgetDestroy errorDialog + +drawDiag' :: WidgetClass widget => FilePath -> widget -> IO () +drawDiag' fp da = do + mesh <- readFile fp + dw <- widgetGetDrawWindow da + let (_, r) = renderDia Cairo + (CairoOptions "" (Width 600) SVG False) + (diagFromString mesh) + renderWithDrawable dw r + + +saveDiag' :: FilePath -> IO () +saveDiag' fp = do + mesh <- readFile fp + renderCairo "out.svg" (Width 600) (diagFromString mesh)