mirror of
https://github.com/IHaskell/IHaskell.git
synced 2025-04-16 19:36:06 +00:00
Merge branch 'master' of github.com:gibiansky/IHaskell
This commit is contained in:
commit
783bcb948f
@ -61,6 +61,7 @@ library
|
||||
build-depends: base >=4.6 && <4.9,
|
||||
plot,
|
||||
bytestring,
|
||||
hmatrix >= 0.10 && <0.17,
|
||||
ihaskell >= 0.6.2
|
||||
|
||||
-- Directories containing source files.
|
||||
|
@ -22,13 +22,14 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"{-# LANGUAGE OverloadedStrings #-}\n",
|
||||
"{-# LANGUAGE FlexibleContexts #-}\n",
|
||||
"import IHaskell.Display.Widgets\n",
|
||||
"import Data.Text (pack, unpack)\n",
|
||||
"import Text.Printf (printf)"
|
||||
@ -43,18 +44,20 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- Constructors\n",
|
||||
"-- Check box\n",
|
||||
"chk <- mkCheckBox\n",
|
||||
"\n",
|
||||
"-- Toggle button\n",
|
||||
"tgb <- mkToggleButton\n",
|
||||
"\n",
|
||||
"-- For demonstration\n",
|
||||
"o <- mkHTMLWidget"
|
||||
"-- Valid widget: Displaying booleans conveniently\n",
|
||||
"vld <- mkValidWidget"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -66,16 +69,16 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- Display\n",
|
||||
"-- Display the widgets\n",
|
||||
"chk\n",
|
||||
"tgb\n",
|
||||
"o"
|
||||
"vld"
|
||||
]
|
||||
},
|
||||
{
|
||||
@ -87,38 +90,23 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField chk Description \"Bool 1: \"\n",
|
||||
"setField tgb Description \"Bool 2\"\n",
|
||||
"\n",
|
||||
"-- Helper function\n",
|
||||
"refresh b =\n",
|
||||
" let stat = if b then \"green\" else \"red\"\n",
|
||||
" fmt = \"<div style=\\\"background:%s;color:#ffffff\\\"><b>%s</b></div>\"\n",
|
||||
" in setField o StringValue $ pack $ printf fmt stat (show b)\n",
|
||||
"\n",
|
||||
" -- Cosmetic changes\n",
|
||||
"setField o Description \"Bool 1 && Bool 2\"\n",
|
||||
"setField o Padding 10\n",
|
||||
"setField vld Description \"Bool 1 && Bool 2\"\n",
|
||||
"\n",
|
||||
" -- And (&&) the two values, and send output to html widget\n",
|
||||
"setHandler w = setField w ChangeHandler $ do\n",
|
||||
" b1 <- getField chk BoolValue\n",
|
||||
" b2 <- getField tgb BoolValue\n",
|
||||
" refresh (b1 && b2)\n",
|
||||
" setField vld BoolValue (b1 && b2)\n",
|
||||
"\n",
|
||||
"setHandler chk\n",
|
||||
"setHandler tgb"
|
||||
@ -142,7 +130,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -163,19 +151,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"sign <- mkCheckBox\n",
|
||||
"bits <- replicateM 7 mkToggleButton\n",
|
||||
@ -195,19 +175,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"box <- mkFlexBox\n",
|
||||
"out <- mkHTMLWidget\n",
|
||||
@ -248,19 +220,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import Control.Arrow (first, second)\n",
|
||||
"\n",
|
||||
@ -295,6 +259,12 @@
|
||||
"display_name": "Haskell",
|
||||
"language": "haskell",
|
||||
"name": "haskell"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": "ihaskell",
|
||||
"file_extension": ".hs",
|
||||
"name": "haskell",
|
||||
"version": "7.10.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
@ -23,7 +23,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -42,121 +42,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>ChildWidget :: forall (w :: WidgetType). (RecAll Attr (WidgetFields w) ToPairs) => IPythonWidget w -> ChildWidget</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"ChildWidget :: forall (w :: WidgetType). (RecAll Attr (WidgetFields w) ToPairs) => IPythonWidget w -> ChildWidget"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
":t ChildWidget"
|
||||
]
|
||||
@ -170,7 +61,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -190,19 +81,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import Control.Monad (replicateM)\n",
|
||||
"\n",
|
||||
@ -236,125 +119,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='err-msg'>No instance for (Data.Vinyl.Lens.RElem<br/> 'ihaskell-widgets-0.1.0.0:IHaskell.Display.Widgets.Singletons.Orientation '[] (Data.Vinyl.TypeLevel.RIndex 'ihaskell-widgets-0.1.0.0:IHaskell.Display.Widgets.Singletons.Orientation '[]))<br/> arising from a use of ‘setField’<br/>In the expression: setField box Orientation VerticalOrientation<br/>In an equation for ‘it’: it = setField box Orientation VerticalOrientation</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"No instance for (Data.Vinyl.Lens.RElem\n",
|
||||
" 'ihaskell-widgets-0.1.0.0:IHaskell.Display.Widgets.Singletons.Orientation '[] (Data.Vinyl.TypeLevel.RIndex 'ihaskell-widgets-0.1.0.0:IHaskell.Display.Widgets.Singletons.Orientation '[]))\n",
|
||||
" arising from a use of ‘setField’\n",
|
||||
"In the expression: setField box Orientation VerticalOrientation\n",
|
||||
"In an equation for ‘it’: it = setField box Orientation VerticalOrientation"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- Trying to set orientation for Boxes\n",
|
||||
"setField box Orientation VerticalOrientation"
|
||||
@ -369,24 +139,115 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- Trying to set orientation for FlexBox\n",
|
||||
"setField flx Orientation VerticalOrientation"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"#### ProxyWidget and PlaceProxy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The `ProxyWidget` widget allows for zero-or-one widgets to be placed inside it.\n",
|
||||
"\n",
|
||||
"From the IHaskell perspective, this is similar to the `Output` widget, but supports only widgets inside it."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"[b1, b2, b3] <- replicateM 3 mkButton\n",
|
||||
"\n",
|
||||
"setField b1 Description \"Button 1\"\n",
|
||||
"setField b2 Description \"Button 2\"\n",
|
||||
"setField b3 Description \"Button 3\"\n",
|
||||
"\n",
|
||||
"-- A proxy widget to display one button at a time\n",
|
||||
"proxy <- mkProxyWidget\n",
|
||||
"\n",
|
||||
"-- b1 ~> b2\n",
|
||||
"setField b1 ClickHandler $ setField proxy Child (Just $ ChildWidget b2)\n",
|
||||
"\n",
|
||||
"-- b2 ~> b3\n",
|
||||
"setField b2 ClickHandler $ setField proxy Child (Just $ ChildWidget b3)\n",
|
||||
"\n",
|
||||
"-- b3 ~> b1\n",
|
||||
"setField b3 ClickHandler $ setField proxy Child (Just $ ChildWidget b1)\n",
|
||||
"\n",
|
||||
"-- Set initial child, and display\n",
|
||||
"setField proxy Child (Just $ ChildWidget b1)\n",
|
||||
"\n",
|
||||
"proxy"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The `PlaceProxy` widget allows for more flexible use-cases involving arbitrary widgets. It is similar to `ProxyWidget`, but allows more control over where the widget is displayed.\n",
|
||||
"\n",
|
||||
"This widget can be used to display widgets inside markdown cells, among other places such as custom widgets or custom html elements. For example, we can create a html `div` inside this markdown cell, and cause the child widget to display in it using its CSS selector.\n",
|
||||
"\n",
|
||||
"`<div id=\"widget_out\"></div>`\n",
|
||||
"\n",
|
||||
"<div id=\"widget_out\"></div>"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"pp <- mkPlaceProxy\n",
|
||||
"button <- mkButton\n",
|
||||
"setField button Description \"(0,0)\"\n",
|
||||
"\n",
|
||||
"-- Put button inside the place proxy widget\n",
|
||||
"setField pp Child (Just $ ChildWidget button)\n",
|
||||
"\n",
|
||||
"-- Output to the div created above\n",
|
||||
"setField pp Selector \"#widget_out\""
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"The widget doesn't yet display, but when we try to display it, the child widget shows in the div as expected."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"pp"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
@ -403,7 +264,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -422,19 +283,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"buttons' <- replicateM 5 mkButton\n",
|
||||
"\n",
|
||||
@ -460,6 +313,12 @@
|
||||
"display_name": "Haskell",
|
||||
"language": "haskell",
|
||||
"name": "haskell"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": "ihaskell",
|
||||
"file_extension": ".hs",
|
||||
"name": "haskell",
|
||||
"version": "7.10.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
@ -104,6 +104,12 @@
|
||||
"display_name": "Haskell",
|
||||
"language": "haskell",
|
||||
"name": "haskell"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": "ihaskell",
|
||||
"file_extension": ".hs",
|
||||
"name": "haskell",
|
||||
"version": "7.10.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
@ -103,7 +103,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -139,120 +139,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>setField :: forall (w :: WidgetType) (f :: Field). (RElem f (WidgetFields w) (RIndex f (WidgetFields w)), ToPairs (Attr f), IHaskellWidget (IPythonWidget w)) => IPythonWidget w -> SField f -> FieldType f -> IO ()</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"setField :: forall (w :: WidgetType) (f :: Field). (RElem f (WidgetFields w) (RIndex f (WidgetFields w)), ToPairs (Attr f), IHaskellWidget (IPythonWidget w)) => IPythonWidget w -> SField f -> FieldType f -> IO ()"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
":t setField"
|
||||
]
|
||||
@ -270,121 +161,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>getField :: forall (w :: WidgetType) (f :: Field). RElem f (WidgetFields w) (RIndex f (WidgetFields w)) => IPythonWidget w -> SField f -> IO (FieldType f)</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"getField :: forall (w :: WidgetType) (f :: Field). RElem f (WidgetFields w) (RIndex f (WidgetFields w)) => IPythonWidget w -> SField f -> IO (FieldType f)"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
":t getField"
|
||||
]
|
||||
@ -405,120 +187,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>properties :: forall (w :: WidgetType). IPythonWidget w -> IO ()</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"properties :: forall (w :: WidgetType). IPythonWidget w -> IO ()"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
":t properties"
|
||||
]
|
||||
@ -534,30 +207,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"3"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"\"abc\""
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- Showables\n",
|
||||
"1 + 2\n",
|
||||
@ -573,120 +227,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>display :: forall a. IHaskellDisplay a => a -> IO Display</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"display :: forall a. IHaskellDisplay a => a -> IO Display"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import IHaskell.Display\n",
|
||||
":t display"
|
||||
@ -714,120 +259,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>closeWidget :: forall w. IHaskellWidget w => w -> IO ()</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"closeWidget :: forall w. IHaskellWidget w => w -> IO ()"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
":t closeWidget"
|
||||
]
|
||||
@ -850,120 +286,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>button :: Button</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"button :: Button"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"button <- mkButton -- Construct a Button\n",
|
||||
":t button"
|
||||
@ -978,7 +305,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -996,49 +323,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"ViewModule\n",
|
||||
"ViewName\n",
|
||||
"MsgThrottle\n",
|
||||
"Version\n",
|
||||
"DisplayHandler\n",
|
||||
"Visible\n",
|
||||
"CSS\n",
|
||||
"DOMClasses\n",
|
||||
"Width\n",
|
||||
"Height\n",
|
||||
"Padding\n",
|
||||
"Margin\n",
|
||||
"Color\n",
|
||||
"BackgroundColor\n",
|
||||
"BorderColor\n",
|
||||
"BorderWidth\n",
|
||||
"BorderRadius\n",
|
||||
"BorderStyle\n",
|
||||
"FontStyle\n",
|
||||
"FontWeight\n",
|
||||
"FontSize\n",
|
||||
"FontFamily\n",
|
||||
"Description\n",
|
||||
"Tooltip\n",
|
||||
"Disabled\n",
|
||||
"Icon\n",
|
||||
"ButtonStyle\n",
|
||||
"ClickHandler"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- The button widget has many properties.\n",
|
||||
"properties button"
|
||||
@ -1053,19 +343,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- 250 pixels wide\n",
|
||||
"setField button Width 250"
|
||||
@ -1080,20 +362,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField button Description \"Click Me (._.\\\")\"\n",
|
||||
"setField button ButtonStyle SuccessButton\n",
|
||||
@ -1115,19 +389,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField button ClickHandler $ putStrLn \"fO_o\"\n",
|
||||
"button -- Displaying again for convenience"
|
||||
@ -1142,19 +408,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField button ClickHandler $ getLine >>= putStrLn"
|
||||
]
|
||||
@ -1165,6 +423,12 @@
|
||||
"display_name": "Haskell",
|
||||
"language": "haskell",
|
||||
"name": "haskell"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": "ihaskell",
|
||||
"file_extension": ".hs",
|
||||
"name": "haskell",
|
||||
"version": "7.10.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
@ -27,7 +27,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -46,9 +46,9 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
@ -58,7 +58,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -77,19 +77,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField bit MaxInt 20\n",
|
||||
"setField bit MinInt 10\n",
|
||||
@ -119,7 +111,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -131,7 +123,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -143,21 +135,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": [
|
||||
"(25,75)"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"getField irs IntPairValue"
|
||||
]
|
||||
@ -178,7 +160,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -190,19 +172,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField inp IntValue 42"
|
||||
]
|
||||
@ -213,6 +187,12 @@
|
||||
"display_name": "Haskell",
|
||||
"language": "haskell",
|
||||
"name": "haskell"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": "ihaskell",
|
||||
"file_extension": ".hs",
|
||||
"name": "haskell",
|
||||
"version": "7.10.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
@ -16,769 +16,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>plain :: String -> DisplayData</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"plain :: String -> DisplayData"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>html :: String -> DisplayData</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"html :: String -> DisplayData"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>jpg :: Width -> Height -> Base64 -> DisplayData</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"jpg :: Width -> Height -> Base64 -> DisplayData"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>svg :: String -> DisplayData</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"svg :: String -> DisplayData"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>latex :: String -> DisplayData</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"latex :: String -> DisplayData"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>javascript :: String -> DisplayData</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"javascript :: String -> DisplayData"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {
|
||||
"text/html": [
|
||||
"<style>/*\n",
|
||||
"Custom IHaskell CSS.\n",
|
||||
"*/\n",
|
||||
"\n",
|
||||
"/* Styles used for the Hoogle display in the pager */\n",
|
||||
".hoogle-doc {\n",
|
||||
" display: block;\n",
|
||||
" padding-bottom: 1.3em;\n",
|
||||
" padding-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-code {\n",
|
||||
" display: block;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
"}\n",
|
||||
".hoogle-text {\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
".hoogle-name {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-head {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-sub {\n",
|
||||
" display: block;\n",
|
||||
" margin-left: 0.4em;\n",
|
||||
"}\n",
|
||||
".hoogle-package {\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-style: italic;\n",
|
||||
"}\n",
|
||||
".hoogle-module {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
".hoogle-class {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Styles used for basic displays */\n",
|
||||
".get-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
" white-space: pre-wrap;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".show-type {\n",
|
||||
" color: green;\n",
|
||||
" font-weight: bold;\n",
|
||||
" font-family: monospace;\n",
|
||||
" margin-left: 1em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".mono {\n",
|
||||
" font-family: monospace;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg {\n",
|
||||
" color: red;\n",
|
||||
" font-style: italic;\n",
|
||||
" font-family: monospace;\n",
|
||||
" white-space: pre;\n",
|
||||
" display: block;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"#unshowable {\n",
|
||||
" color: red;\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
".err-msg.in.collapse {\n",
|
||||
" padding-top: 0.7em;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Code that will get highlighted before it is highlighted */\n",
|
||||
".highlight-code {\n",
|
||||
" white-space: pre;\n",
|
||||
" font-family: monospace;\n",
|
||||
"}\n",
|
||||
"\n",
|
||||
"/* Hlint styles */\n",
|
||||
".suggestion-warning { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: rgb(200, 130, 0);\n",
|
||||
"}\n",
|
||||
".suggestion-error { \n",
|
||||
" font-weight: bold;\n",
|
||||
" color: red;\n",
|
||||
"}\n",
|
||||
".suggestion-name {\n",
|
||||
" font-weight: bold;\n",
|
||||
"}\n",
|
||||
"</style><span class='get-type'>many :: [Display] -> Display</span>"
|
||||
],
|
||||
"text/plain": [
|
||||
"many :: [Display] -> Display"
|
||||
]
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"{-# LANGUAGE OverloadedStrings #-}\n",
|
||||
"import IHaskell.Display.Widgets\n",
|
||||
@ -806,7 +49,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -838,6 +81,12 @@
|
||||
"display_name": "Haskell",
|
||||
"language": "haskell",
|
||||
"name": "haskell"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": "ihaskell",
|
||||
"file_extension": ".hs",
|
||||
"name": "haskell",
|
||||
"version": "7.10.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
@ -13,13 +13,14 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"{-# LANGUAGE OverloadedStrings #-}\n",
|
||||
"{-# LANGUAGE FlexibleContexts #-}\n",
|
||||
"import IHaskell.Display.Widgets"
|
||||
]
|
||||
},
|
||||
@ -32,7 +33,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -83,19 +84,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import Data.IORef\n",
|
||||
"import Graphics.Rendering.Chart.Easy hiding (tan)\n",
|
||||
@ -164,19 +157,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"divBox <- mkFlexBox\n",
|
||||
"setField divBox Orientation HorizontalOrientation\n",
|
||||
@ -204,20 +189,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"slBox <- mkFlexBox\n",
|
||||
"\n",
|
||||
@ -244,19 +221,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- The four FlexBox widgets.\n",
|
||||
"import Control.Monad (replicateM, forM_)\n",
|
||||
@ -302,19 +271,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- A FlexBox with ToggleButtons\n",
|
||||
"buttonBox <- mkFlexBox\n",
|
||||
@ -339,19 +300,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import Control.Arrow (first, second)\n",
|
||||
"\n",
|
||||
@ -384,19 +337,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField tlBox Children $ map ChildWidget $ boxes ++ [buttonBox] ++ rangeBoxes"
|
||||
]
|
||||
@ -410,19 +355,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField tlBox Titles [\"Plot title\", \"X-Label\", \"Y-Label\", \"Grid\", \"X-range\", \"Y-range\"]"
|
||||
]
|
||||
@ -436,19 +373,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"let syncVal widget value fieldGetter = readIORef plotState >>= setField widget value . fieldGetter\n",
|
||||
" in do\n",
|
||||
@ -478,7 +407,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -500,22 +429,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- Spurious update to display empty plot instead of empty image initially\n",
|
||||
"update return\n",
|
||||
@ -532,7 +450,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 14,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -543,7 +461,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 15,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -554,7 +472,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 16,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -569,6 +487,12 @@
|
||||
"display_name": "Haskell",
|
||||
"language": "haskell",
|
||||
"name": "haskell"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": "ihaskell",
|
||||
"file_extension": ".hs",
|
||||
"name": "haskell",
|
||||
"version": "7.10.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
@ -22,7 +22,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -34,7 +34,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -49,19 +49,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField msel Description \"Functions to show (One or more)\"\n",
|
||||
"setField msel Options (OptionLabels [\"sin\", \"cos\"])\n",
|
||||
@ -79,20 +71,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"import Graphics.Rendering.Chart.Easy hiding (tan)\n",
|
||||
"import Graphics.Rendering.Chart.Backend.Cairo\n",
|
||||
@ -140,92 +124,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
},
|
||||
{
|
||||
"data": {},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- Display the widgets\n",
|
||||
"msel\n",
|
||||
@ -246,6 +149,12 @@
|
||||
"display_name": "Haskell",
|
||||
"language": "haskell",
|
||||
"name": "haskell"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": "ihaskell",
|
||||
"file_extension": ".hs",
|
||||
"name": "haskell",
|
||||
"version": "7.10.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
@ -21,7 +21,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 1,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -33,7 +33,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 2,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -69,7 +69,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 3,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -82,7 +82,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 4,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -94,7 +94,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 5,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -116,7 +116,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 6,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -142,7 +142,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 7,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
@ -154,20 +154,12 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 8,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"scrolled": true
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"-- Some padding\n",
|
||||
"setField text Padding 5"
|
||||
@ -182,19 +174,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 9,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField text Placeholder \"Enter your text here...\"\n",
|
||||
"setField area Placeholder \"Parsed output will appear here...\""
|
||||
@ -216,7 +200,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 10,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -239,7 +223,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 11,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -300,19 +284,11 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 12,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": false
|
||||
},
|
||||
"outputs": [
|
||||
{
|
||||
"data": {
|
||||
"text/plain": []
|
||||
},
|
||||
"metadata": {},
|
||||
"output_type": "display_data"
|
||||
}
|
||||
],
|
||||
"outputs": [],
|
||||
"source": [
|
||||
"setField text ChangeHandler $ do\n",
|
||||
" input <- unpack <$> getField text StringValue\n",
|
||||
@ -338,7 +314,7 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "code",
|
||||
"execution_count": 13,
|
||||
"execution_count": null,
|
||||
"metadata": {
|
||||
"collapsed": true
|
||||
},
|
||||
@ -354,6 +330,12 @@
|
||||
"display_name": "Haskell",
|
||||
"language": "haskell",
|
||||
"name": "haskell"
|
||||
},
|
||||
"language_info": {
|
||||
"codemirror_mode": "ihaskell",
|
||||
"file_extension": ".hs",
|
||||
"name": "haskell",
|
||||
"version": "7.10.2"
|
||||
}
|
||||
},
|
||||
"nbformat": 4,
|
||||
|
@ -8,26 +8,17 @@
|
||||
## Creating widgets
|
||||
|
||||
Let's say the user types in some code, and the only effect of that code is the creation of a widget.
|
||||
The kernel will open a comm for the widget, and store a reference to that comm inside it. Then, to
|
||||
notify the frontend about the creation of a widget, an initial state update is sent on the widget's
|
||||
comm.
|
||||
The kernel will open a comm for the widget, and store a reference to that comm. The comm_open message
|
||||
also holds the initial state of the widget in it, which is used by the frontend to create a model for
|
||||
the widget.
|
||||
|
||||
> The comm should be opened with a `target_name` of `"ipython.widget"`.
|
||||
|
||||
The initial state update message looks like this:
|
||||
|
||||
```json
|
||||
{
|
||||
"method": "update",
|
||||
"state": { "<some/all widget properties>" }
|
||||
}
|
||||
```
|
||||
|
||||
Any *numeric* property initialized with the empty string is provided the default value by the
|
||||
frontend. Some numbers need to be sent as actual numbers (when non-null), whereas some (especially
|
||||
those used by sliders) need to be sent as strings.
|
||||
frontend. Some numbers need to be sent as actual numbers (when non-null), whereas the ones representing
|
||||
lengths in CSS units need to be sent as strings.
|
||||
|
||||
The initial state update must *at least* have the following fields:
|
||||
The initial state must *at least* have the following fields:
|
||||
|
||||
- `msg_throttle` (default 3): To prevent the kernel from flooding with messages, the messages from
|
||||
the widget to the kernel are throttled. If `msg_throttle` messages were sent, and all are still
|
||||
@ -43,8 +34,8 @@ The initial state update must *at least* have the following fields:
|
||||
|
||||
- Rest of the properties as required initially.
|
||||
|
||||
This state update is also used with fragments of the overall state to sync changes between the
|
||||
frontend and the kernel.
|
||||
This state is also used with fragments of the overall state to sync changes between the frontend and
|
||||
the kernel.
|
||||
|
||||
## Displaying widgets
|
||||
|
||||
@ -111,7 +102,7 @@ If this were not so, the frontend would not be able to determine under which cel
|
||||
input widget, when an `input_request` is received.
|
||||
|
||||
Now, widgets cannot send `execute_request` messages. They can only send `comm_data` messages, which
|
||||
means that it's not possible to fetch input through widget events.
|
||||
means that it's not possible to fetch input inside widget event handlers.
|
||||
|
||||
---
|
||||
|
||||
|
@ -104,7 +104,7 @@ library
|
||||
, nats -any
|
||||
, vinyl >= 0.5
|
||||
, vector -any
|
||||
, singletons >= 0.9.0
|
||||
, singletons >= 0.9.0 && <2.0.0.0
|
||||
, scientific -any
|
||||
, unix -any
|
||||
|
||||
|
@ -41,7 +41,6 @@ import IHaskell.Display.Widgets.String.Text as X
|
||||
import IHaskell.Display.Widgets.String.TextArea as X
|
||||
|
||||
import IHaskell.Display.Widgets.Common as X
|
||||
import IHaskell.Display.Widgets.Types as X (setField, getField, properties,
|
||||
triggerDisplay, triggerChange, triggerClick,
|
||||
triggerSelection, triggerSubmit,
|
||||
ChildWidget(..))
|
||||
import IHaskell.Display.Widgets.Types as X (setField, getField, properties, triggerDisplay,
|
||||
triggerChange, triggerClick, triggerSelection,
|
||||
triggerSubmit, ChildWidget(..))
|
||||
|
@ -4,10 +4,10 @@
|
||||
{-# LANGUAGE TypeSynonymInstances #-}
|
||||
|
||||
module IHaskell.Display.Widgets.Bool.Valid (
|
||||
-- * The Valid Widget
|
||||
ValidWidget,
|
||||
-- * Constructor
|
||||
mkValidWidget) where
|
||||
-- * The Valid Widget
|
||||
ValidWidget,
|
||||
-- * Constructor
|
||||
mkValidWidget) where
|
||||
|
||||
-- To keep `cabal repl` happy when running from the ihaskell repo
|
||||
import Prelude
|
||||
|
@ -3,12 +3,11 @@
|
||||
{-# LANGUAGE DataKinds #-}
|
||||
{-# LANGUAGE TypeSynonymInstances #-}
|
||||
|
||||
|
||||
module IHaskell.Display.Widgets.Box.PlaceProxy (
|
||||
-- * The PlaceProxy widget
|
||||
PlaceProxy,
|
||||
-- * Constructor
|
||||
mkPlaceProxy) where
|
||||
-- * The PlaceProxy widget
|
||||
PlaceProxy,
|
||||
-- * Constructor
|
||||
mkPlaceProxy) where
|
||||
|
||||
-- To keep `cabal repl` happy when running from the ihaskell repo
|
||||
import Prelude
|
||||
|
@ -5,9 +5,9 @@
|
||||
|
||||
module IHaskell.Display.Widgets.Box.Proxy (
|
||||
-- * The Proxy widget
|
||||
ProxyWidget,
|
||||
-- * Constructor
|
||||
mkProxyWidget) where
|
||||
ProxyWidget,
|
||||
-- * Constructor
|
||||
mkProxyWidget) where
|
||||
|
||||
-- To keep `cabal repl` happy when running from the ihaskell repo
|
||||
import Prelude
|
||||
|
@ -97,11 +97,11 @@ pattern Selector = S.SSelector
|
||||
closeWidget :: IHaskellWidget w => w -> IO ()
|
||||
closeWidget w = widgetSendClose w emptyObject
|
||||
|
||||
newtype StrInt = StrInt Integer
|
||||
newtype PixCount = PixCount Integer
|
||||
deriving (Num, Ord, Eq, Enum)
|
||||
|
||||
instance ToJSON StrInt where
|
||||
toJSON (StrInt x) = toJSON . pack $ show x
|
||||
instance ToJSON PixCount where
|
||||
toJSON (PixCount x) = toJSON . pack $ show x ++ "px"
|
||||
|
||||
-- | Pre-defined border styles
|
||||
data BorderStyleValue = NoBorder
|
||||
|
@ -13,7 +13,7 @@ import Data.Singletons.TH
|
||||
-- Widget properties
|
||||
singletons
|
||||
[d|
|
||||
|
||||
|
||||
data Field = ViewModule
|
||||
| ViewName
|
||||
| ModelModule
|
||||
|
@ -48,8 +48,8 @@ module IHaskell.Display.Widgets.Types where
|
||||
--
|
||||
-- The IPython widgets expect state updates of the form {"property": value}, where an empty string
|
||||
-- for numeric values is ignored by the frontend and the default value is used instead. Some numbers
|
||||
-- need to be sent as numbers (represented by @Integer@), whereas some need to be sent as Strings
|
||||
-- (@StrInt@).
|
||||
-- need to be sent as numbers (represented by @Integer@), whereas some (css lengths) need to be sent
|
||||
-- as Strings (@PixCount@).
|
||||
--
|
||||
-- Child widgets are expected to be sent as strings of the form "IPY_MODEL_<uuid>", where @<uuid>@
|
||||
-- represents the uuid of the widget's comm.
|
||||
@ -58,7 +58,7 @@ module IHaskell.Display.Widgets.Types where
|
||||
-- look at the supplied MsgSpec.md.
|
||||
--
|
||||
-- Widgets are not able to do console input, the reason for that can be found in the messaging
|
||||
-- specification
|
||||
-- specification.
|
||||
import Control.Monad (unless, join, when, void, mapM_)
|
||||
import Control.Applicative ((<$>))
|
||||
import qualified Control.Exception as Ex
|
||||
@ -128,7 +128,7 @@ type BoxClass = DOMWidgetClass :++ '[S.Children, S.OverflowX, S.OverflowY, S.Box
|
||||
type SelectionContainerClass = BoxClass :++ '[S.Titles, S.SelectedIndex, S.ChangeHandler]
|
||||
|
||||
-- Types associated with Fields.
|
||||
|
||||
|
||||
type family FieldType (f :: Field) :: * where
|
||||
FieldType S.ViewModule = Text
|
||||
FieldType S.ViewName = Text
|
||||
@ -140,19 +140,19 @@ type family FieldType (f :: Field) :: * where
|
||||
FieldType S.Visible = Bool
|
||||
FieldType S.CSS = [(Text, Text, Text)]
|
||||
FieldType S.DOMClasses = [Text]
|
||||
FieldType S.Width = StrInt
|
||||
FieldType S.Height = StrInt
|
||||
FieldType S.Padding = StrInt
|
||||
FieldType S.Margin = StrInt
|
||||
FieldType S.Width = PixCount
|
||||
FieldType S.Height = PixCount
|
||||
FieldType S.Padding = PixCount
|
||||
FieldType S.Margin = PixCount
|
||||
FieldType S.Color = Text
|
||||
FieldType S.BackgroundColor = Text
|
||||
FieldType S.BorderColor = Text
|
||||
FieldType S.BorderWidth = StrInt
|
||||
FieldType S.BorderRadius = StrInt
|
||||
FieldType S.BorderWidth = PixCount
|
||||
FieldType S.BorderRadius = PixCount
|
||||
FieldType S.BorderStyle = BorderStyleValue
|
||||
FieldType S.FontStyle = FontStyleValue
|
||||
FieldType S.FontWeight = FontWeightValue
|
||||
FieldType S.FontSize = StrInt
|
||||
FieldType S.FontSize = PixCount
|
||||
FieldType S.FontFamily = Text
|
||||
FieldType S.Description = Text
|
||||
FieldType S.ClickHandler = IO ()
|
||||
@ -220,7 +220,7 @@ class CustomBounded a where
|
||||
upperBound :: a
|
||||
|
||||
-- Set according to what IPython widgets use
|
||||
instance CustomBounded StrInt where
|
||||
instance CustomBounded PixCount where
|
||||
upperBound = 10 ^ 16 - 1
|
||||
lowerBound = -(10 ^ 16 - 1)
|
||||
|
||||
@ -266,7 +266,7 @@ data WidgetType = ButtonType
|
||||
| TabType
|
||||
|
||||
-- Fields associated with a widget
|
||||
|
||||
|
||||
type family WidgetFields (w :: WidgetType) :: [Field] where
|
||||
WidgetFields ButtonType =
|
||||
DOMWidgetClass :++
|
||||
@ -312,7 +312,8 @@ type family WidgetFields (w :: WidgetType) :: [Field] where
|
||||
'[S.Orientation, S.ShowRange, S.ReadOut, S.SliderColor]
|
||||
WidgetFields BoxType = BoxClass
|
||||
WidgetFields ProxyType = WidgetClass :++ '[S.Child]
|
||||
WidgetFields PlaceProxyType = WidgetFields ProxyType :++ '[S.Selector]
|
||||
WidgetFields PlaceProxyType =
|
||||
WidgetFields ProxyType :++ '[S.Selector]
|
||||
WidgetFields FlexBoxType =
|
||||
BoxClass :++ '[S.Orientation, S.Flex, S.Pack, S.Align]
|
||||
WidgetFields AccordionType = SelectionContainerClass
|
||||
|
@ -72,6 +72,13 @@ ipythonCommand = do
|
||||
Nothing -> "ipython"
|
||||
Just _ -> "jupyter"
|
||||
|
||||
locateIPython :: SH.Sh SH.FilePath
|
||||
locateIPython = do
|
||||
mbinary <- SH.which "ipython"
|
||||
case mbinary of
|
||||
Nothing -> SH.errorExit "The IPython binary could not be located"
|
||||
Just ipython -> return ipython
|
||||
|
||||
-- | Run the IPython command with any arguments. The kernel is set to IHaskell.
|
||||
ipython :: Bool -- ^ Whether to suppress output.
|
||||
-> [Text] -- ^ IPython command line arguments.
|
||||
@ -201,15 +208,17 @@ installKernelspec replace opts = void $ do
|
||||
src <- liftIO $ Paths.getDataFileName $ "html/" ++ file
|
||||
SH.cp (SH.fromText $ T.pack src) (tmp SH.</> kernelName SH.</> file)
|
||||
|
||||
Just ipython <- SH.which "ipython"
|
||||
ipython <- locateIPython
|
||||
|
||||
let replaceFlag = ["--replace" | replace]
|
||||
installPrefixFlag = maybe ["--user"] (\prefix -> ["--prefix", T.pack prefix]) (kernelSpecInstallPrefix opts)
|
||||
cmd = concat [["kernelspec", "install"], installPrefixFlag, [SH.toTextIgnore kernelDir], replaceFlag]
|
||||
|
||||
SH.silently $ SH.run ipython cmd
|
||||
|
||||
kernelSpecCreated :: SH.Sh Bool
|
||||
kernelSpecCreated = do
|
||||
Just ipython <- SH.which "ipython"
|
||||
ipython <- locateIPython
|
||||
out <- SH.silently $ SH.run ipython ["kernelspec", "list"]
|
||||
let kernelspecs = map T.strip $ T.lines out
|
||||
return $ T.pack kernelName `elem` kernelspecs
|
||||
|
Loading…
x
Reference in New Issue
Block a user