packages feed

ihaskell-widgets 0.2.3.1 → 0.2.3.2

raw patch · 36 files changed

+137/−323 lines, 36 filesdep ~aesondep ~basenew-uploader

Dependency ranges changed: aeson, base

Files

ihaskell-widgets.cabal view
@@ -10,7 +10,7 @@ -- PVP summary:      +-+------- breaking API changes --                   | | +----- non-breaking API additions --                   | | | +--- code changes with no API change-version:             0.2.3.1+version:             0.2.3.2  -- A short (one-line) description of the package. synopsis:            IPython standard widgets for IHaskell.@@ -57,9 +57,6 @@   -- Modules included in this library but not exported.   other-modules:       IHaskell.Display.Widgets.Button                        IHaskell.Display.Widgets.Box.Box-                       IHaskell.Display.Widgets.Box.Proxy-                       IHaskell.Display.Widgets.Box.PlaceProxy-                       IHaskell.Display.Widgets.Box.FlexBox                        IHaskell.Display.Widgets.Box.SelectionContainer.Accordion                        IHaskell.Display.Widgets.Box.SelectionContainer.Tab                        IHaskell.Display.Widgets.Bool.CheckBox@@ -83,7 +80,7 @@                        IHaskell.Display.Widgets.Selection.ToggleButtons                        IHaskell.Display.Widgets.Selection.SelectMultiple                        IHaskell.Display.Widgets.String.HTML-                       IHaskell.Display.Widgets.String.Latex+                       IHaskell.Display.Widgets.String.Label                        IHaskell.Display.Widgets.String.Text                        IHaskell.Display.Widgets.String.TextArea @@ -96,8 +93,8 @@      -- Other library packages from which modules are imported.   -- singletons 2.* require ghc 7.10.2-  build-depends:       aeson >=0.7 && < 0.12-                     , base >=4.7 && <4.9+  build-depends:       aeson >=0.7+                     , base >=4.7 && <5                      , containers >= 0.5                      , ipython-kernel >= 0.6.1.2                      , text >= 0.11
src/IHaskell/Display/Widgets.hs view
@@ -3,9 +3,6 @@ import           IHaskell.Display.Widgets.Button as X  import           IHaskell.Display.Widgets.Box.Box as X-import           IHaskell.Display.Widgets.Box.Proxy as X-import           IHaskell.Display.Widgets.Box.PlaceProxy as X-import           IHaskell.Display.Widgets.Box.FlexBox as X import           IHaskell.Display.Widgets.Box.SelectionContainer.Accordion as X import           IHaskell.Display.Widgets.Box.SelectionContainer.Tab as X @@ -36,7 +33,7 @@ import           IHaskell.Display.Widgets.Selection.SelectMultiple as X  import           IHaskell.Display.Widgets.String.HTML as X-import           IHaskell.Display.Widgets.String.Latex as X+import           IHaskell.Display.Widgets.String.Label as X import           IHaskell.Display.Widgets.String.Text as X import           IHaskell.Display.Widgets.String.TextArea as X 
src/IHaskell/Display/Widgets/Bool/CheckBox.hs view
@@ -33,7 +33,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let widgetState = WidgetState $ defaultBoolWidget "CheckboxView"+  let widgetState = WidgetState $ defaultBoolWidget "CheckboxView" "CheckboxModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Bool/ToggleButton.hs view
@@ -34,7 +34,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let boolState = defaultBoolWidget "ToggleButtonView"+  let boolState = defaultBoolWidget "ToggleButtonView" "ToggleButtonModel"       toggleState = (Tooltip =:: "")                     :& (Icon =:: "")                     :& (ButtonStyle =:: DefaultButton)
src/IHaskell/Display/Widgets/Bool/Valid.hs view
@@ -32,7 +32,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let boolState = defaultBoolWidget "ValidView"+  let boolState = defaultBoolWidget "ValidView" "ValidModel"       validState = (ReadOutMsg =:: "") :& RNil       widgetState = WidgetState $ boolState <+> validState 
src/IHaskell/Display/Widgets/Box/Box.hs view
@@ -30,7 +30,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let widgetState = WidgetState $ defaultBoxWidget "BoxView"+  let widgetState = WidgetState $ defaultBoxWidget "BoxView" "BoxModel"    stateIO <- newIORef widgetState 
− src/IHaskell/Display/Widgets/Box/FlexBox.hs
@@ -1,59 +0,0 @@-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE TypeSynonymInstances #-}--module IHaskell.Display.Widgets.Box.FlexBox (--- * The FlexBox widget-FlexBox, -         -- * Constructor-         mkFlexBox) where---- To keep `cabal repl` happy when running from the ihaskell repo-import           Prelude--import           Data.Aeson-import           Data.IORef (newIORef)-import           Data.Vinyl (Rec(..), (<+>))--import           IHaskell.Display-import           IHaskell.Eval.Widgets-import           IHaskell.IPython.Message.UUID as U--import           IHaskell.Display.Widgets.Types-import           IHaskell.Display.Widgets.Common---- | A 'FlexBox' represents a FlexBox widget from IPython.html.widgets.-type FlexBox = IPythonWidget FlexBoxType---- | Create a new box-mkFlexBox :: IO FlexBox-mkFlexBox = do-  -- Default properties, with a random uuid-  uuid <- U.random--  let boxAttrs = defaultBoxWidget "FlexBoxView"-      flxAttrs = (Orientation =:: HorizontalOrientation)-                 :& (Flex =:: 0)-                 :& (Pack =:: StartLocation)-                 :& (Align =:: StartLocation)-                 :& RNil-      widgetState = WidgetState $ boxAttrs <+> flxAttrs--  stateIO <- newIORef widgetState--  let box = IPythonWidget uuid stateIO--  -- Open a comm for this widget, and store it in the kernel state-  widgetSendOpen box $ toJSON widgetState--  -- Return the widget-  return box--instance IHaskellDisplay FlexBox where-  display b = do-    widgetSendView b-    return $ Display []--instance IHaskellWidget FlexBox where-  getCommUUID = uuid
− src/IHaskell/Display/Widgets/Box/PlaceProxy.hs
@@ -1,57 +0,0 @@-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE TypeSynonymInstances #-}--module IHaskell.Display.Widgets.Box.PlaceProxy (--- * The PlaceProxy widget-PlaceProxy, -            -- * Constructor-            mkPlaceProxy) where---- To keep `cabal repl` happy when running from the ihaskell repo-import           Prelude--import           Data.Aeson-import           Data.IORef (newIORef)-import           Data.Vinyl (Rec(..), (<+>))-import           Data.Vinyl.Lens (rput)--import           IHaskell.Display-import           IHaskell.Eval.Widgets-import           IHaskell.IPython.Message.UUID as U--import           IHaskell.Display.Widgets.Types-import           IHaskell.Display.Widgets.Common---- | A 'Box' represents a Box widget from IPython.html.widgets.-type PlaceProxy = IPythonWidget PlaceProxyType---- | Create a new box-mkPlaceProxy :: IO PlaceProxy-mkPlaceProxy = do-  -- Default properties, with a random uuid-  uuid <- U.random--  let widgetClassState = defaultWidget "PlaceProxyView"-      baseState = rput (ModelName =:: "ProxyModel") widgetClassState-      proxyState = (Child =:: Nothing) :& (Selector =:: "") :& RNil-      widgetState = WidgetState $ baseState <+> proxyState--  stateIO <- newIORef widgetState--  let widget = IPythonWidget uuid stateIO--  -- Open a comm for this widget, and store it in the kernel state-  widgetSendOpen widget $ toJSON widgetState--  -- Return the widget-  return widget--instance IHaskellDisplay PlaceProxy where-  display b = do-    widgetSendView b-    return $ Display []--instance IHaskellWidget PlaceProxy where-  getCommUUID = uuid
− src/IHaskell/Display/Widgets/Box/Proxy.hs
@@ -1,57 +0,0 @@-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE TypeSynonymInstances #-}--module IHaskell.Display.Widgets.Box.Proxy (--- * The Proxy widget-ProxyWidget, -             -- * Constructor-             mkProxyWidget) where---- To keep `cabal repl` happy when running from the ihaskell repo-import           Prelude--import           Data.Aeson-import           Data.IORef (newIORef)-import           Data.Vinyl (Rec(..), (<+>))-import           Data.Vinyl.Lens (rput)--import           IHaskell.Display-import           IHaskell.Eval.Widgets-import           IHaskell.IPython.Message.UUID as U--import           IHaskell.Display.Widgets.Types-import           IHaskell.Display.Widgets.Common---- | A 'Box' represents a Box widget from IPython.html.widgets.-type ProxyWidget = IPythonWidget ProxyType---- | Create a new box-mkProxyWidget :: IO ProxyWidget-mkProxyWidget = do-  -- Default properties, with a random uuid-  uuid <- U.random--  let widgetClassState = defaultWidget "ProxyView"-      baseState = rput (ModelName =:: "ProxyModel") widgetClassState-      proxyState = (Child =:: Nothing) :& RNil-      widgetState = WidgetState $ baseState <+> proxyState--  stateIO <- newIORef widgetState--  let proxy = IPythonWidget uuid stateIO--  -- Open a comm for this widget, and store it in the kernel state-  widgetSendOpen proxy $ toJSON widgetState--  -- Return the widget-  return proxy--instance IHaskellDisplay ProxyWidget where-  display b = do-    widgetSendView b-    return $ Display []--instance IHaskellWidget ProxyWidget where-  getCommUUID = uuid
src/IHaskell/Display/Widgets/Box/SelectionContainer/Accordion.hs view
@@ -34,7 +34,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let widgetState = WidgetState $ defaultSelectionContainerWidget "AccordionView"+  let widgetState = WidgetState $ defaultSelectionContainerWidget "AccordionView" "AccordionModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Box/SelectionContainer/Tab.hs view
@@ -34,7 +34,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let widgetState = WidgetState $ defaultSelectionContainerWidget "TabView"+  let widgetState = WidgetState $ defaultSelectionContainerWidget "TabView" "TabModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Button.hs view
@@ -35,7 +35,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let dom = defaultDOMWidget "ButtonView"+  let dom = defaultDOMWidget "ButtonView" "ButtonModel"       but = (Description =:: "")             :& (Tooltip =:: "")             :& (Disabled =:: False)
src/IHaskell/Display/Widgets/Float/BoundedFloat/BoundedFloatText.hs view
@@ -35,7 +35,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let widgetState = WidgetState $ defaultBoundedFloatWidget "FloatTextView"+  let widgetState = WidgetState $ defaultBoundedFloatWidget "FloatTextView" "FloatTextModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Float/BoundedFloat/FloatProgress.hs view
@@ -32,7 +32,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let boundedFloatAttrs = defaultBoundedFloatWidget "ProgressView"+  let boundedFloatAttrs = defaultBoundedFloatWidget "ProgressView" "ProgressModel"       progressAttrs = (Orientation =:: HorizontalOrientation)                       :& (BarStyle =:: DefaultBar)                       :& RNil
src/IHaskell/Display/Widgets/Float/BoundedFloat/FloatSlider.hs view
@@ -35,7 +35,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let boundedFloatAttrs = defaultBoundedFloatWidget "FloatSliderView"+  let boundedFloatAttrs = defaultBoundedFloatWidget "FloatSliderView" "FloatSliderModel"       sliderAttrs = (Orientation =:: HorizontalOrientation)                     :& (ShowRange =:: False)                     :& (ReadOut =:: True)
src/IHaskell/Display/Widgets/Float/BoundedFloatRange/FloatRangeSlider.hs view
@@ -37,7 +37,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let boundedFloatAttrs = defaultBoundedFloatRangeWidget "FloatSliderView"+  let boundedFloatAttrs = defaultBoundedFloatRangeWidget "FloatSliderView" "FloatSliderModel"       sliderAttrs = (Orientation =:: HorizontalOrientation)                     :& (ShowRange =:: True)                     :& (ReadOut =:: True)
src/IHaskell/Display/Widgets/Float/FloatText.hs view
@@ -34,7 +34,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let widgetState = WidgetState $ defaultFloatWidget "FloatTextView"+  let widgetState = WidgetState $ defaultFloatWidget "FloatTextView" "FloatTextModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Image.hs view
@@ -33,7 +33,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let dom = defaultDOMWidget "ImageView"+  let dom = defaultDOMWidget "ImageView" "ImageModel"       img = (ImageFormat =:: PNG)             :& (Width =:+ 0)             :& (Height =:+ 0)
src/IHaskell/Display/Widgets/Int/BoundedInt/BoundedIntText.hs view
@@ -34,7 +34,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let widgetState = WidgetState $ defaultBoundedIntWidget "IntTextView"+  let widgetState = WidgetState $ defaultBoundedIntWidget "IntTextView" "IntTextModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Int/BoundedInt/IntProgress.hs view
@@ -32,7 +32,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let boundedIntAttrs = defaultBoundedIntWidget "ProgressView"+  let boundedIntAttrs = defaultBoundedIntWidget "ProgressView" "ProgressModel"       progressAttrs = (Orientation =:: HorizontalOrientation)                       :& (BarStyle =:: DefaultBar)                       :& RNil
src/IHaskell/Display/Widgets/Int/BoundedInt/IntSlider.hs view
@@ -35,7 +35,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let boundedIntAttrs = defaultBoundedIntWidget "IntSliderView"+  let boundedIntAttrs = defaultBoundedIntWidget "IntSliderView" "IntSliderModel"       sliderAttrs = (Orientation =:: HorizontalOrientation)                     :& (ShowRange =:: False)                     :& (ReadOut =:: True)
src/IHaskell/Display/Widgets/Int/BoundedIntRange/IntRangeSlider.hs view
@@ -36,7 +36,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let boundedIntAttrs = defaultBoundedIntRangeWidget "IntSliderView"+  let boundedIntAttrs = defaultBoundedIntRangeWidget "IntSliderView" "IntSliderModel"       sliderAttrs = (Orientation =:: HorizontalOrientation)                     :& (ShowRange =:: True)                     :& (ReadOut =:: True)
src/IHaskell/Display/Widgets/Int/IntText.hs view
@@ -34,7 +34,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let widgetState = WidgetState $ defaultIntWidget "IntTextView"+  let widgetState = WidgetState $ defaultIntWidget "IntTextView" "IntTextModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Interactive.hs view
@@ -5,6 +5,7 @@ {-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE UndecidableInstances #-}+{-# LANGUAGE UndecidableSuperClasses #-} {-# LANGUAGE PolyKinds #-}  module IHaskell.Display.Widgets.Interactive (interactive, uncurryHList, Rec(..), Argument(..)) where@@ -24,7 +25,7 @@ import           IHaskell.Display.Widgets.Common import qualified IHaskell.Display.Widgets.Singletons as S (SField, Field(..)) -import           IHaskell.Display.Widgets.Box.FlexBox+import           IHaskell.Display.Widgets.Box.Box import           IHaskell.Display.Widgets.Bool.CheckBox import           IHaskell.Display.Widgets.String.Text import           IHaskell.Display.Widgets.Int.BoundedInt.IntSlider@@ -119,23 +120,23 @@   mkConfs _ = WidgetConf wrapped :& mkConfs (Proxy :: Proxy ts)  interactive :: (IHaskellDisplay r, MakeConfs ts)-            => (HList ts -> r) -> Rec Argument ts -> IO FlexBox+            => (HList ts -> r) -> Rec Argument ts -> IO Box interactive func =   let confs = mkConfs Proxy   in liftToWidgets func confs  -- | Transform a function (HList ts -> r) to one which: 1) Uses widgets to accept the arguments 2)--- Accepts initial values for the arguments 3) Creates a compound FlexBox widget with an embedded+-- Accepts initial values for the arguments 3) Creates a compound Box widget with an embedded -- OutputWidget for display liftToWidgets :: IHaskellDisplay r-              => (HList ts -> r) -> Rec WidgetConf ts -> Rec Argument ts -> IO FlexBox+              => (HList ts -> r) -> Rec WidgetConf ts -> Rec Argument ts -> IO Box liftToWidgets func rc initvals = do   let constructors = rmap extractConstructor rc       getters = rmap extractGetter rc       eventSetters = rmap extractEventSetter rc       initializers = rmap extractInitializer rc -  bx <- mkFlexBox+  bx <- mkBox   out <- mkOutputWidget    -- Create a list of widgets@@ -152,9 +153,11 @@   setInitialValues initializers widgets initvals   -- applyValueSetters valueSetters widgets $ getList defvals   setField out Width 500-  setField bx Orientation VerticalOrientation+  -- TODO This can't be set right now since we switched FlexBox to a regular+  --      Box. This is a styling/layout parameter now but these haven't been implemented yet.+  -- setField bx Orientation VerticalOrientation -  -- Set children for the FlexBox+  -- Set children for the Box   let children = mkChildren widgets   setField bx Children $ children ++ [ChildWidget out] 
src/IHaskell/Display/Widgets/Output.hs view
@@ -36,7 +36,7 @@   -- Default properties, with a random uuid   uuid <- U.random -  let widgetState = WidgetState $ defaultDOMWidget "OutputView"+  let widgetState = WidgetState $ defaultDOMWidget "OutputView" "OutputModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Selection/Dropdown.hs view
@@ -34,7 +34,7 @@ mkDropdown = do   -- Default properties, with a random uuid   uuid <- U.random-  let selectionAttrs = defaultSelectionWidget "DropdownView"+  let selectionAttrs = defaultSelectionWidget "DropdownView" "DropdownModel"       dropdownAttrs = (ButtonStyle =:: DefaultButton) :& RNil       widgetState = WidgetState $ selectionAttrs <+> dropdownAttrs 
src/IHaskell/Display/Widgets/Selection/RadioButtons.hs view
@@ -33,7 +33,7 @@ mkRadioButtons = do   -- Default properties, with a random uuid   uuid <- U.random-  let widgetState = WidgetState $ defaultSelectionWidget "RadioButtonsView"+  let widgetState = WidgetState $ defaultSelectionWidget "RadioButtonsView" "RadioButtonsModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Selection/Select.hs view
@@ -34,7 +34,7 @@ mkSelect = do   -- Default properties, with a random uuid   uuid <- U.random-  let widgetState = WidgetState $ defaultSelectionWidget "SelectView"+  let widgetState = WidgetState $ defaultSelectionWidget "SelectView" "SelectModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Selection/SelectMultiple.hs view
@@ -34,7 +34,7 @@ mkSelectMultiple = do   -- Default properties, with a random uuid   uuid <- U.random-  let widgetState = WidgetState $ defaultMultipleSelectionWidget "SelectMultipleView"+  let widgetState = WidgetState $ defaultMultipleSelectionWidget "SelectMultipleView" "SelectMultipleModel"    stateIO <- newIORef widgetState 
src/IHaskell/Display/Widgets/Selection/ToggleButtons.hs view
@@ -34,7 +34,7 @@ mkToggleButtons = do   -- Default properties, with a random uuid   uuid <- U.random-  let selectionAttrs = defaultSelectionWidget "ToggleButtonsView"+  let selectionAttrs = defaultSelectionWidget "ToggleButtonsView" "ToggleButtonsModel"       toggleButtonsAttrs = (Tooltips =:: [])                            :& (Icons =:: [])                            :& (ButtonStyle =:: DefaultButton)
src/IHaskell/Display/Widgets/String/HTML.hs view
@@ -29,7 +29,7 @@ mkHTMLWidget = do   -- Default properties, with a random uuid   uuid <- U.random-  let widgetState = WidgetState $ defaultStringWidget "HTMLView"+  let widgetState = WidgetState $ defaultStringWidget "HTMLView" "HTMLModel"    stateIO <- newIORef widgetState 
+ src/IHaskell/Display/Widgets/String/Label.hs view
@@ -0,0 +1,50 @@+{-# LANGUAGE FlexibleInstances #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE DataKinds #-}+{-# LANGUAGE TypeSynonymInstances #-}++module IHaskell.Display.Widgets.String.Label (+-- * The Label Widget+LabelWidget, +             -- * Constructor+             mkLabelWidget) where++-- To keep `cabal repl` happy when running from the ihaskell repo+import           Prelude++import           Data.Aeson+import           Data.IORef (newIORef)++import           IHaskell.Display+import           IHaskell.Eval.Widgets+import           IHaskell.IPython.Message.UUID as U++import           IHaskell.Display.Widgets.Types++-- | A 'LabelWidget' represents a Label widget from IPython.html.widgets.+type LabelWidget = IPythonWidget LabelType++-- | Create a new Label widget+mkLabelWidget :: IO LabelWidget+mkLabelWidget = do+  -- Default properties, with a random uuid+  uuid <- U.random+  let widgetState = WidgetState $ defaultStringWidget "LabelView" "LabelModel"++  stateIO <- newIORef widgetState++  let widget = IPythonWidget uuid stateIO++  -- Open a comm for this widget, and store it in the kernel state+  widgetSendOpen widget $ toJSON widgetState++  -- Return the widget+  return widget++instance IHaskellDisplay LabelWidget where+  display b = do+    widgetSendView b+    return $ Display []++instance IHaskellWidget LabelWidget where+  getCommUUID = uuid
− src/IHaskell/Display/Widgets/String/Latex.hs
@@ -1,50 +0,0 @@-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE DataKinds #-}-{-# LANGUAGE TypeSynonymInstances #-}--module IHaskell.Display.Widgets.String.Latex (--- * The Latex Widget-LatexWidget, -             -- * Constructor-             mkLatexWidget) where---- To keep `cabal repl` happy when running from the ihaskell repo-import           Prelude--import           Data.Aeson-import           Data.IORef (newIORef)--import           IHaskell.Display-import           IHaskell.Eval.Widgets-import           IHaskell.IPython.Message.UUID as U--import           IHaskell.Display.Widgets.Types---- | A 'LatexWidget' represents a Latex widget from IPython.html.widgets.-type LatexWidget = IPythonWidget LatexType---- | Create a new Latex widget-mkLatexWidget :: IO LatexWidget-mkLatexWidget = do-  -- Default properties, with a random uuid-  uuid <- U.random-  let widgetState = WidgetState $ defaultStringWidget "LatexView"--  stateIO <- newIORef widgetState--  let widget = IPythonWidget uuid stateIO--  -- Open a comm for this widget, and store it in the kernel state-  widgetSendOpen widget $ toJSON widgetState--  -- Return the widget-  return widget--instance IHaskellDisplay LatexWidget where-  display b = do-    widgetSendView b-    return $ Display []--instance IHaskellWidget LatexWidget where-  getCommUUID = uuid
src/IHaskell/Display/Widgets/String/Text.hs view
@@ -33,7 +33,7 @@ mkTextWidget = do   -- Default properties, with a random uuid   uuid <- U.random-  let strWidget = defaultStringWidget "TextView"+  let strWidget = defaultStringWidget "TextView" "TextModel"       txtWidget = (SubmitHandler =:: return ()) :& (ChangeHandler =:: return ()) :& RNil       widgetState = WidgetState $ strWidget <+> txtWidget 
src/IHaskell/Display/Widgets/String/TextArea.hs view
@@ -33,7 +33,7 @@ mkTextArea = do   -- Default properties, with a random uuid   uuid <- U.random-  let strAttrs = defaultStringWidget "TextareaView"+  let strAttrs = defaultStringWidget "TextareaView" "TextareaModel"       wgtAttrs = (ChangeHandler =:: return ()) :& RNil       widgetState = WidgetState $ strAttrs <+> wgtAttrs 
src/IHaskell/Display/Widgets/Types.hs view
@@ -15,8 +15,6 @@ {-# LANGUAGE GADTs #-} {-# LANGUAGE AutoDeriveTypeable #-} -module IHaskell.Display.Widgets.Types where- -- | This module houses all the type-trickery needed to make widgets happen. -- -- All widgets have a corresponding 'WidgetType', and some fields/attributes/properties as defined@@ -61,6 +59,8 @@ -- -- Widgets are not able to do console input, the reason for that can be found in the messaging -- specification.+module IHaskell.Display.Widgets.Types where+ import           Control.Monad (unless, join, when, void) import           Control.Applicative ((<$>)) import qualified Control.Exception as Ex@@ -241,7 +241,7 @@                 | ImageType                 | OutputType                 | HTMLType-                | LatexType+                | LabelType                 | TextType                 | TextAreaType                 | CheckBoxType@@ -263,9 +263,6 @@                 | FloatProgressType                 | FloatRangeSliderType                 | BoxType-                | ProxyType-                | PlaceProxyType-                | FlexBoxType                 | AccordionType                 | TabType @@ -280,7 +277,7 @@                                DOMWidgetClass :++ '[S.ImageFormat, S.Width, S.Height, S.B64Value]         WidgetFields OutputType = DOMWidgetClass         WidgetFields HTMLType = StringClass-        WidgetFields LatexType = StringClass+        WidgetFields LabelType = StringClass         WidgetFields TextType =                               StringClass :++ '[S.SubmitHandler, S.ChangeHandler]         WidgetFields TextAreaType = StringClass :++ '[S.ChangeHandler]@@ -315,11 +312,6 @@                                           BoundedFloatRangeClass :++                                             '[S.Orientation, S.ShowRange, S.ReadOut, S.SliderColor]         WidgetFields BoxType = BoxClass-        WidgetFields ProxyType = WidgetClass :++ '[S.Child]-        WidgetFields PlaceProxyType =-                                    WidgetFields ProxyType :++ '[S.Selector]-        WidgetFields FlexBoxType =-                                 BoxClass :++ '[S.Orientation, S.Flex, S.Pack, S.Align]         WidgetFields AccordionType = SelectionContainerClass         WidgetFields TabType = SelectionContainerClass @@ -619,23 +611,23 @@               (reflect s)  -- | Get a field from a singleton Adapted from: http://stackoverflow.com/a/28033250/2388535-reflect :: forall (f :: Field). (SingI f, SingKind ('KProxy :: KProxy Field)) => Sing f -> Field+reflect :: forall (f :: Field). (SingI f) => Sing f -> Field reflect = fromSing  -- | A record representing an object of the Widget class from IPython-defaultWidget :: FieldType S.ViewName -> Rec Attr WidgetClass-defaultWidget viewName = (ViewModule =:: "")-                         :& (ViewName =:: viewName)-                         :& (ModelModule =:: "")-                         :& (ModelName =:: "WidgetModel")-                         :& (MsgThrottle =:+ 3)-                         :& (Version =:: 0)-                         :& (DisplayHandler =:: return ())-                         :& RNil+defaultWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr WidgetClass+defaultWidget viewName modelName = (ViewModule =:: "jupyter-js-widgets")+                                   :& (ViewName =:: viewName)+                                   :& (ModelModule =:: "jupyter-js-widgets")+                                   :& (ModelName =:: modelName)+                                   :& (MsgThrottle =:+ 3)+                                   :& (Version =:: 0)+                                   :& (DisplayHandler =:: return ())+                                   :& RNil  -- | A record representing an object of the DOMWidget class from IPython-defaultDOMWidget :: FieldType S.ViewName -> Rec Attr DOMWidgetClass-defaultDOMWidget viewName = defaultWidget viewName <+> domAttrs+defaultDOMWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr DOMWidgetClass+defaultDOMWidget viewName modelName = defaultWidget viewName modelName <+> domAttrs   where     domAttrs = (Visible =:: True)                :& (CSS =:: [])@@ -657,8 +649,8 @@                :& RNil  -- | A record representing a widget of the _String class from IPython-defaultStringWidget :: FieldType S.ViewName -> Rec Attr StringClass-defaultStringWidget viewName = defaultDOMWidget viewName <+> strAttrs+defaultStringWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr StringClass+defaultStringWidget viewName modelName = defaultDOMWidget viewName modelName <+> strAttrs   where     strAttrs = (StringValue =:: "")                :& (Disabled =:: False)@@ -667,8 +659,8 @@                :& RNil  -- | A record representing a widget of the _Bool class from IPython-defaultBoolWidget :: FieldType S.ViewName -> Rec Attr BoolClass-defaultBoolWidget viewName = defaultDOMWidget viewName <+> boolAttrs+defaultBoolWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr BoolClass+defaultBoolWidget viewName modelName = defaultDOMWidget viewName modelName <+> boolAttrs   where     boolAttrs = (BoolValue =:: False)                 :& (Disabled =:: False)@@ -677,8 +669,8 @@                 :& RNil  -- | A record representing a widget of the _Selection class from IPython-defaultSelectionWidget :: FieldType S.ViewName -> Rec Attr SelectionClass-defaultSelectionWidget viewName = defaultDOMWidget viewName <+> selectionAttrs+defaultSelectionWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr SelectionClass+defaultSelectionWidget viewName modelName = defaultDOMWidget viewName modelName <+> selectionAttrs   where     selectionAttrs = (Options =:: OptionLabels [])                      :& (SelectedValue =:: "")@@ -689,8 +681,8 @@                      :& RNil  -- | A record representing a widget of the _MultipleSelection class from IPython-defaultMultipleSelectionWidget :: FieldType S.ViewName -> Rec Attr MultipleSelectionClass-defaultMultipleSelectionWidget viewName = defaultDOMWidget viewName <+> mulSelAttrs+defaultMultipleSelectionWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr MultipleSelectionClass+defaultMultipleSelectionWidget viewName modelName = defaultDOMWidget viewName modelName <+> mulSelAttrs   where     mulSelAttrs = (Options =:: OptionLabels [])                   :& (SelectedValues =:: [])@@ -701,8 +693,8 @@                   :& RNil  -- | A record representing a widget of the _Int class from IPython-defaultIntWidget :: FieldType S.ViewName -> Rec Attr IntClass-defaultIntWidget viewName = defaultDOMWidget viewName <+> intAttrs+defaultIntWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr IntClass+defaultIntWidget viewName modelName = defaultDOMWidget viewName modelName <+> intAttrs   where     intAttrs = (IntValue =:: 0)                :& (Disabled =:: False)@@ -711,8 +703,8 @@                :& RNil  -- | A record representing a widget of the _BoundedInt class from IPython-defaultBoundedIntWidget :: FieldType S.ViewName -> Rec Attr BoundedIntClass-defaultBoundedIntWidget viewName = defaultIntWidget viewName <+> boundedIntAttrs+defaultBoundedIntWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr BoundedIntClass+defaultBoundedIntWidget viewName modelName = defaultIntWidget viewName modelName <+> boundedIntAttrs   where     boundedIntAttrs = (StepInt =:: 1)                       :& (MinInt =:: 0)@@ -720,8 +712,8 @@                       :& RNil  -- | A record representing a widget of the _BoundedInt class from IPython-defaultIntRangeWidget :: FieldType S.ViewName -> Rec Attr IntRangeClass-defaultIntRangeWidget viewName = defaultIntWidget viewName <+> rangeAttrs+defaultIntRangeWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr IntRangeClass+defaultIntRangeWidget viewName modelName = defaultIntWidget viewName modelName <+> rangeAttrs   where     rangeAttrs = (IntPairValue =:: (25, 75))                  :& (LowerInt =:: 0)@@ -729,8 +721,8 @@                  :& RNil  -- | A record representing a widget of the _BoundedIntRange class from IPython-defaultBoundedIntRangeWidget :: FieldType S.ViewName -> Rec Attr BoundedIntRangeClass-defaultBoundedIntRangeWidget viewName = defaultIntRangeWidget viewName <+> boundedIntRangeAttrs+defaultBoundedIntRangeWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr BoundedIntRangeClass+defaultBoundedIntRangeWidget viewName modelName = defaultIntRangeWidget viewName modelName <+> boundedIntRangeAttrs   where     boundedIntRangeAttrs = (StepInt =:+ 1)                            :& (MinInt =:: 0)@@ -738,8 +730,8 @@                            :& RNil  -- | A record representing a widget of the _Float class from IPython-defaultFloatWidget :: FieldType S.ViewName -> Rec Attr FloatClass-defaultFloatWidget viewName = defaultDOMWidget viewName <+> intAttrs+defaultFloatWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr FloatClass+defaultFloatWidget viewName modelName = defaultDOMWidget viewName modelName <+> intAttrs   where     intAttrs = (FloatValue =:: 0)                :& (Disabled =:: False)@@ -748,8 +740,8 @@                :& RNil  -- | A record representing a widget of the _BoundedFloat class from IPython-defaultBoundedFloatWidget :: FieldType S.ViewName -> Rec Attr BoundedFloatClass-defaultBoundedFloatWidget viewName = defaultFloatWidget viewName <+> boundedFloatAttrs+defaultBoundedFloatWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr BoundedFloatClass+defaultBoundedFloatWidget viewName modelName = defaultFloatWidget viewName modelName <+> boundedFloatAttrs   where     boundedFloatAttrs = (StepFloat =:+ 1)                         :& (MinFloat =:: 0)@@ -757,8 +749,8 @@                         :& RNil  -- | A record representing a widget of the _BoundedFloat class from IPython-defaultFloatRangeWidget :: FieldType S.ViewName -> Rec Attr FloatRangeClass-defaultFloatRangeWidget viewName = defaultFloatWidget viewName <+> rangeAttrs+defaultFloatRangeWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr FloatRangeClass+defaultFloatRangeWidget viewName modelName = defaultFloatWidget viewName modelName <+> rangeAttrs   where     rangeAttrs = (FloatPairValue =:: (25, 75))                  :& (LowerFloat =:: 0)@@ -766,8 +758,8 @@                  :& RNil  -- | A record representing a widget of the _BoundedFloatRange class from IPython-defaultBoundedFloatRangeWidget :: FieldType S.ViewName -> Rec Attr BoundedFloatRangeClass-defaultBoundedFloatRangeWidget viewName = defaultFloatRangeWidget viewName <+> boundedFloatRangeAttrs+defaultBoundedFloatRangeWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr BoundedFloatRangeClass+defaultBoundedFloatRangeWidget viewName modelName = defaultFloatRangeWidget viewName modelName <+> boundedFloatRangeAttrs   where     boundedFloatRangeAttrs = (StepFloat =:+ 1)                              :& (MinFloat =:: 0)@@ -775,20 +767,18 @@                              :& RNil  -- | A record representing a widget of the _Box class from IPython-defaultBoxWidget :: FieldType S.ViewName -> Rec Attr BoxClass-defaultBoxWidget viewName = domAttrs <+> boxAttrs+defaultBoxWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr BoxClass+defaultBoxWidget viewName modelName = defaultDOMWidget viewName modelName <+> intAttrs   where-    defaultDOM = defaultDOMWidget viewName-    domAttrs = rput (ModelName =:: "BoxModel") defaultDOM-    boxAttrs = (Children =:: [])+    intAttrs = (Children =:: [])                :& (OverflowX =:: DefaultOverflow)                :& (OverflowY =:: DefaultOverflow)                :& (BoxStyle =:: DefaultBox)                :& RNil  -- | A record representing a widget of the _SelectionContainer class from IPython-defaultSelectionContainerWidget :: FieldType S.ViewName -> Rec Attr SelectionContainerClass-defaultSelectionContainerWidget viewName = defaultBoxWidget viewName <+> selAttrs+defaultSelectionContainerWidget :: FieldType S.ViewName -> FieldType S.ModelName -> Rec Attr SelectionContainerClass+defaultSelectionContainerWidget viewName modelName = defaultBoxWidget viewName modelName <+> selAttrs   where     selAttrs = (Titles =:: [])                :& (SelectedIndex =:: 0)