Commit 3af85932 authored by David Davó's avatar David Davó

Added HTMLMath widget

parent cb13bfcc
...@@ -86,6 +86,7 @@ library ...@@ -86,6 +86,7 @@ library
IHaskell.Display.Widgets.Selection.ToggleButtons IHaskell.Display.Widgets.Selection.ToggleButtons
IHaskell.Display.Widgets.Selection.SelectMultiple IHaskell.Display.Widgets.Selection.SelectMultiple
IHaskell.Display.Widgets.String.HTML IHaskell.Display.Widgets.String.HTML
IHaskell.Display.Widgets.String.HTMLMath
IHaskell.Display.Widgets.String.Label IHaskell.Display.Widgets.String.Label
IHaskell.Display.Widgets.String.Text IHaskell.Display.Widgets.String.Text
IHaskell.Display.Widgets.String.TextArea IHaskell.Display.Widgets.String.TextArea
......
...@@ -34,6 +34,7 @@ import IHaskell.Display.Widgets.Selection.ToggleButtons as X ...@@ -34,6 +34,7 @@ import IHaskell.Display.Widgets.Selection.ToggleButtons as X
import IHaskell.Display.Widgets.Selection.SelectMultiple as X import IHaskell.Display.Widgets.Selection.SelectMultiple as X
import IHaskell.Display.Widgets.String.HTML as X import IHaskell.Display.Widgets.String.HTML as X
import IHaskell.Display.Widgets.String.HTMLMath as X
import IHaskell.Display.Widgets.String.Label as X import IHaskell.Display.Widgets.String.Label as X
import IHaskell.Display.Widgets.String.Text as X import IHaskell.Display.Widgets.String.Text as X
import IHaskell.Display.Widgets.String.TextArea as X import IHaskell.Display.Widgets.String.TextArea as X
......
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE TypeSynonymInstances #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module IHaskell.Display.Widgets.String.HTMLMath
( -- * The HTML Widget
HTMLMathWidget
-- * Constructor
, mkHTMLMathWidget
) 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 'HTMLMathWidget' represents a HTML Math widget from IPython.html.widgets.
type HTMLMathWidget = IPythonWidget 'HTMLMathType
-- | Create a new HTML widget
mkHTMLMathWidget :: IO HTMLMathWidget
mkHTMLMathWidget = do
-- Default properties, with a random uuid
wid <- U.random
let widgetState = WidgetState $ defaultStringWidget "HTMLMathView" "HTMLMathModel"
stateIO <- newIORef widgetState
let widget = IPythonWidget wid stateIO
-- Open a comm for this widget, and store it in the kernel state
widgetSendOpen widget $ toJSON widgetState
-- Return the widget
return widget
instance IHaskellWidget HTMLMathWidget where
getCommUUID = uuid
...@@ -271,6 +271,7 @@ data WidgetType = ButtonType ...@@ -271,6 +271,7 @@ data WidgetType = ButtonType
| ImageType | ImageType
| OutputType | OutputType
| HTMLType | HTMLType
| HTMLMathType
| LabelType | LabelType
| TextType | TextType
| TextAreaType | TextAreaType
...@@ -309,6 +310,7 @@ type family WidgetFields (w :: WidgetType) :: [Field] where ...@@ -309,6 +310,7 @@ type family WidgetFields (w :: WidgetType) :: [Field] where
DOMWidgetClass :++ ['S.ImageFormat, 'S.Width, 'S.Height, 'S.B64Value] DOMWidgetClass :++ ['S.ImageFormat, 'S.Width, 'S.Height, 'S.B64Value]
WidgetFields 'OutputType = DOMWidgetClass WidgetFields 'OutputType = DOMWidgetClass
WidgetFields 'HTMLType = StringClass WidgetFields 'HTMLType = StringClass
WidgetFields 'HTMLMathType = StringClass
WidgetFields 'LabelType = StringClass WidgetFields 'LabelType = StringClass
WidgetFields 'TextType = WidgetFields 'TextType =
StringClass :++ ['S.SubmitHandler, 'S.ChangeHandler] StringClass :++ ['S.SubmitHandler, 'S.ChangeHandler]
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment