packages feed

xdot 0.2.4.9 → 0.3

raw patch · 2 files changed

+37/−35 lines, 2 filesdep +gtk3dep +transformersdep −gtkPVP ok

version bump matches the API change (PVP)

Dependencies added: gtk3, transformers

Dependencies removed: gtk

API changes (from Hackage documentation)

Files

Demo.hs view
@@ -2,6 +2,7 @@  import System.Environment import Control.Monad+import Control.Monad.Trans.Class import Data.IORef  import qualified Data.Text.Lazy.IO as L@@ -56,22 +57,26 @@              , containerChild := canvas              ] -  onExpose canvas $ const $ do+  on canvas draw $ do     redraw canvas state-    return True -  onMotionNotify canvas False $ \e -> do-    modifyIORef state (\s -> s {mousePos = (E.eventX e, E.eventY e)})-    tick canvas state-    return True+  on canvas motionNotifyEvent $ do+    (x,y) <- eventCoordinates+    lift $ do+      modifyIORef state (\s -> s {mousePos = (x,y)})+      tick canvas state+      return True -  onButtonPress canvas $ \e -> do-    when (E.eventButton e == LeftButton && E.eventClick e == SingleClick) $-      click state dg-    return True+  on canvas buttonPressEvent $ do+    button <- eventButton+    eClick <- eventClick+    lift $ do+        when (button == LeftButton && eClick == SingleClick) $+          click state dg+        return True    widgetShowAll window-  onDestroy window mainQuit+  on window destroyEvent $ lift $ mainQuit >> return True   mainGUI  click :: IORef State -> R.DotGraph String -> IO ()@@ -104,31 +109,27 @@   s <- readIORef state   unless (oldHover == hover s) $ widgetQueueDraw canvas -redraw :: WidgetClass w => w -> IORef State -> IO ()+redraw :: WidgetClass w => w -> IORef State -> Render () redraw canvas state = do-  s <- readIORef state-  E.Rectangle _ _ rw rh <- widgetGetAllocation canvas+  s <- liftIO $ readIORef state+  rw <- liftIO $ widgetGetAllocatedWidth canvas+  rh <- liftIO $ widgetGetAllocatedHeight canvas    let (ops, size'@(_,_,sw,sh)) = objects s -  boundingBoxes <- render canvas $ do-    -- Proportional scaling-    let scalex = min (fromIntegral rw / sw) (fromIntegral rh / sh)-        scaley = scalex-        offsetx = 0.5 * fromIntegral rw-        offsety = 0.5 * fromIntegral rh-    save-    translate offsetx offsety-    scale scalex scaley+  -- Proportional scaling+  let scalex = min (fromIntegral rw / sw) (fromIntegral rh / sh)+      scaley = scalex+      offsetx = 0.5 * fromIntegral rw+      offsety = 0.5 * fromIntegral rh+  save+  translate offsetx offsety+  scale scalex scaley -    result <- drawAll (hover s) size' ops+  result <- drawAll (hover s) size' ops -    restore-    return $ map (\(o, (x,y,w,h)) -> (o, (x*scalex+offsetx,y*scaley+offsety,w*scalex,h*scaley))) result+  restore -  modifyIORef state (\s' -> s' {bounds = boundingBoxes})+  let boundingBoxes = map (\(o, (x,y,w,h)) -> (o, (x*scalex+offsetx,y*scaley+offsety,w*scalex,h*scaley))) result -render :: WidgetClass w => w -> Render b -> IO b-render canvas r = do-    win <- widgetGetDrawWindow canvas-    renderWithDrawable win r+  liftIO $ modifyIORef state (\s' -> s' {bounds = boundingBoxes})
xdot.cabal view
@@ -1,5 +1,5 @@ name:               xdot-version:            0.2.4.9+version:            0.3 license:            BSD3 license-file:       LICENSE category:           Graphs, Graphics@@ -7,7 +7,7 @@ build-type:         Simple author:             Dennis Felsing <dennis@felsin9.de> maintainer:         Dennis Felsing <dennis@felsin9.de>-copyright:          Dennis Felsing 2012-2013+copyright:          Dennis Felsing 2012-2016 synopsis:           Parse Graphviz xdot files and interactively view them using GTK and Cairo description:        Parse Graphviz xdot files and interactively view them using                     GTK and Cairo.@@ -30,7 +30,7 @@   Build-depends: base == 4.*,                  mtl >= 2.0 && < 2.3,                  cairo >= 0.12 && < 0.14,-                 gtk >= 0.12 && < 0.15,+                 gtk3 >= 0.12 && < 0.15,                  graphviz >= 2999.16 && < 2999.19,                  text >= 0.11 && < 1.3,                  polyparse >= 1.8 && < 1.12@@ -43,8 +43,9 @@   Build-depends: base,                  cairo,                  graphviz,-                 gtk,+                 gtk3,                  text,+                 transformers,                  -- ourselves                  xdot