on master help sign in
Add the basic proposal for an Input library.
commit26ddaf697e31239d66a421f811cf270abc4a7a6b authorevancz <info@elm-lang.org> dateSun 24 Mar 2013, 11:42 (14 years ago) parentcd6407c
1 file changed+24−10
libraries/Graphics/Input.elm+24−10
libraries/Graphics/Input.elm+24−10
@@ -1,29 +1,43 @@
11
22module Graphics.Input where
33
4−buttons : a -> { button : a -> String -> Element
5− , events : Signal a
6− }
4+buttons : a -> { button : a -> String -> Element, events : Signal a }
75
86button : String -> (Element, Signal ())
97button txt =
108 let pool = buttons ()
119 in (pool.button () txt, pool.events)
1210
13−customButtons : a -> { button : a -> Element -> Element -> Element -> Element
14− , events : Signal a
15− }
11+customButtons : a -> { button : a -> Element -> Element -> Element -> Element,
12+ events : Signal a }
1613
1714customButton : Element -> Element -> Element -> (Element, Signal ())
1815customButton up hover down =
1916 let pool = customButtons ()
2017 in (pool.button () up hover down, pool.events)
2118
22−checkBoxes : a -> { box : (Bool -> a) -> Bool -> Element
23− , events : Signal a
24− }
19+checkBoxes : a -> { box : (Bool -> a) -> Bool -> Element, events : Signal a }
2520
2621checkBox : Bool -> (Signal Element, Signal Bool)
2722checkBox b =
2823 let cbs = checkBoxes b
29− in (lift (cbs.box id) cbs.events, cbs.events)
24+ in (lift (cbs.box id) cbs.events, cbs.events)
25+
26+type TextState = {
27+ input : String,
28+ start : Int,
29+ end : Int
30+ }
31+
32+textFields : a -> { field : (TextState -> a) -> String -> TextState -> Element,
33+ events : Signal a }
34+
35+textField : String -> TextState -> (Signal Element, Signal TextState)
36+textField placeHolder textState =
37+ let tfs = textFields textState
38+ in (lift (tfs.field id placeHolder) tfs.events, tfs.events)
39+
40+password : String -> TextState -> (Signal Element, Signal TextState)
41+email : String -> TextState -> (Signal Element, Signal TextState)
42+
43+-- file?