packages feed

gi-gtk-declarative 0.3.0 → 0.4.0

raw patch · 8 files changed

+39/−33 lines, 8 files

Files

CHANGELOG.md view
@@ -1,3 +1,5 @@+* 0.4.0+    - Use `Vector` instead of `[]` for child widgets * 0.3.0     - Add user documentation     - Use record for `BoxChild` properties (breaking change!)
bench/Benchmark.hs view
@@ -8,6 +8,8 @@ import           Criterion.Main import           Data.Functor             ((<&>)) import           Data.Text+import           Data.Vector              (Vector)+import qualified Data.Vector              as Vector import qualified GI.Gdk                   as Gdk import qualified GI.GLib.Constants        as GLib @@ -16,7 +18,7 @@ import           GI.Gtk.Declarative import           GI.Gtk.Declarative.State -testView :: [Int] -> Widget ()+testView :: Vector Int -> Widget () testView ns = bin Window [] $ container Box [] $ ns <&> \n ->   BoxChild defaultBoxChildProperties { expand  = True                                      , fill    = True@@ -37,7 +39,7 @@ main :: IO () main = do   _ <- Gtk.init Nothing-  let initialView = testView [1 .. 100]+  let initialView = testView (Vector.enumFromN 1 100)   initialState <- create initialView   #showAll =<< someStateWidget initialState   _ <- forkOS $ do@@ -49,7 +51,7 @@             void $ testPatch s1 initialView initialView           , bench "Modify (diff)" . whnfIO . replicateM_ 10 $ do             s1 <- testPatch initialState initialView initialView-            void $ testPatch s1 initialView (testView [2 .. 101])+            void $ testPatch s1 initialView (testView (Vector.enumFromN 2 101))           ]       ]     Gtk.mainQuit
gi-gtk-declarative.cabal view
@@ -1,5 +1,5 @@ name:                 gi-gtk-declarative-version:              0.3.0+version:              0.4.0 synopsis:             Declarative GTK+ programming in Haskell description:          A declarative programming model for GTK+ user                       interfaces, implementing support for various widgets@@ -8,14 +8,14 @@                       a reusable library for multiple application architectures                       and styles. -                      See [the project README](https://github.com/owickstrom/gi-gtk-declarative#readme)-                      for more information.+                      See [the project website](https://owickstrom.github.io/gi-gtk-declarative/)+                      for user guides and more information. license:              MPL-2.0 license-file:         LICENSE author:               Oskar Wickström maintainer:           oskar.wickstrom@gmail.com copyright:            Oskar Wickström-homepage:             https://github.com/owickstrom/gi-gtk-declarative+homepage:             https://owickstrom.github.io/gi-gtk-declarative/ bug-reports:          https://github.com/owickstrom/gi-gtk-declarative/issues category:             Graphics build-type:           Simple@@ -77,5 +77,6 @@                    , gi-gtk-declarative                    , random                    , text+                   , vector   ghc-options:       -Wall -O2 -rtsopts -with-rtsopts=-N -threaded   default-language:  Haskell2010
src/GI/Gtk/Declarative/Container.hs view
@@ -1,17 +1,16 @@ {-# OPTIONS_GHC -fno-warn-unticked-promoted-constructors #-}-{-# LANGUAGE DataKinds              #-}-{-# LANGUAGE DefaultSignatures      #-}-{-# LANGUAGE DeriveFunctor          #-}-{-# LANGUAGE FlexibleContexts       #-}-{-# LANGUAGE FlexibleInstances      #-}-{-# LANGUAGE FunctionalDependencies #-}-{-# LANGUAGE GADTs                  #-}-{-# LANGUAGE MultiParamTypeClasses  #-}-{-# LANGUAGE OverloadedLabels       #-}-{-# LANGUAGE ScopedTypeVariables    #-}-{-# LANGUAGE TypeApplications       #-}-{-# LANGUAGE TypeFamilies           #-}-{-# LANGUAGE TypeOperators          #-}+{-# LANGUAGE DataKinds             #-}+{-# LANGUAGE DefaultSignatures     #-}+{-# LANGUAGE DeriveFunctor         #-}+{-# LANGUAGE FlexibleContexts      #-}+{-# LANGUAGE FlexibleInstances     #-}+{-# LANGUAGE GADTs                 #-}+{-# LANGUAGE MultiParamTypeClasses #-}+{-# LANGUAGE OverloadedLabels      #-}+{-# LANGUAGE ScopedTypeVariables   #-}+{-# LANGUAGE TypeApplications      #-}+{-# LANGUAGE TypeFamilies          #-}+{-# LANGUAGE TypeOperators         #-}  -- | Implementations for common "Gtk.Container". 
src/GI/Gtk/Declarative/Container/Box.hs view
@@ -19,6 +19,7 @@   ) where +import           Data.Vector                        (Vector) import           Data.Word                          (Word32) import qualified GI.Gtk                             as Gtk @@ -54,4 +55,4 @@ instance EventSource BoxChild where   subscribe BoxChild{..} = subscribe child -instance ToChildren Gtk.Box [] BoxChild+instance ToChildren Gtk.Box Vector BoxChild
src/GI/Gtk/Declarative/Container/Class.hs view
@@ -1,15 +1,15 @@-{-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE DefaultSignatures      #-} {-# LANGUAGE DeriveFunctor          #-}+{-# LANGUAGE FunctionalDependencies #-}+{-# LANGUAGE MultiParamTypeClasses  #-} {-# LANGUAGE TypeFamilies           #-}  -- | Shared interfaces for containers. module GI.Gtk.Declarative.Container.Class where -import qualified GI.Gtk                           as Gtk-import           Data.Vector                             (Vector)-import qualified Data.Vector                             as Vector-import           Data.Int                         (Int32)+import           Data.Int    (Int32)+import           Data.Vector (Vector)+import qualified GI.Gtk      as Gtk  -- | Describes supported GTK+ containers and their specialized APIs for -- appending and replacing child widgets.@@ -37,5 +37,5 @@ class ToChildren widget parent child | widget -> parent, widget -> child where   toChildren :: (Gtk.ManagedPtr widget -> widget) -> parent (child event) -> Children child event -  default toChildren :: parent ~ [] => (Gtk.ManagedPtr widget -> widget) -> parent (child event) -> Children child event-  toChildren _ = Children . Vector.fromList+  default toChildren :: parent ~ Vector => (Gtk.ManagedPtr widget -> widget) -> parent (child event) -> Children child event+  toChildren _ = Children
src/GI/Gtk/Declarative/Container/ListBox.hs view
@@ -5,10 +5,11 @@  module GI.Gtk.Declarative.Container.ListBox where +import           Data.Vector                        (Vector) import qualified GI.Gtk                             as Gtk  import           GI.Gtk.Declarative.Bin import           GI.Gtk.Declarative.Container.Class import           GI.Gtk.Declarative.Widget -instance ToChildren Gtk.ListBox [] (Bin Gtk.ListBoxRow Widget)+instance ToChildren Gtk.ListBox Vector (Bin Gtk.ListBoxRow Widget)
src/GI/Gtk/Declarative/Container/MenuItem.hs view
@@ -46,11 +46,11 @@  instance Functor MenuItem where   fmap f (MenuItem item)          = MenuItem (fmap f item)-  fmap f (SubMenu label subMenu')=SubMenu label (fmap f subMenu')+  fmap f (SubMenu label subMenu') = SubMenu label (fmap f subMenu') -instance ToChildren Gtk.Menu [] MenuItem+instance ToChildren Gtk.Menu Vector MenuItem -instance ToChildren Gtk.MenuBar [] MenuItem+instance ToChildren Gtk.MenuBar Vector MenuItem  -- | Construct a single menu item for a 'Gtk.Menu'. menuItem@@ -73,7 +73,7 @@ subMenu   :: (Typeable event)   => Text-  -> [MenuItem event]+  -> Vector (MenuItem event)   -> MenuItem event subMenu label = SubMenu label . container Gtk.Menu mempty