+++ /dev/null
-module test
-
-import Data.Func
-import Data.Tuple
-import System.Time
-
-import iTasks
-import iTasks.Extensions.DateTime
-import iTasks.UI.Editor.Common
-
-Start w = doTasks gui5 w
-
-gui1 :: Int -> Task Int
-gui1 c = viewInformation "Counter" [] c
- >>* [OnAction (Action "Count") (withValue (Just o gui1 o inc))]
-
-gui2 :: Task Real
-gui2 = withShared 42.0 \sh->
- updateSharedInformation "Celcius" [] sh
- -|| updateSharedInformation "Fahrenheit"
- [UpdateAs (\c->1.8*c+32.0) \_ f->(f-32.0)/1.8] sh
-
-:: Flight
- = OneWay Date
- | Return (Date, Date)
-derive class iTask Flight
-
-gui3 :: Task Flight
-gui3 = get currentDate
- >>- \now->editChoice () [] ["one-way flight", "return flight"] (Just "one-way flight")
- >&> \sh-> whileUnchanged sh \v->case fromJust v of
- "one-way flight" = withShared now \sh->
- updateSharedInformation () [] sh
- -|| updateSharedInformation () [UpdateUsing toString const (gEditor{|*|} <<@ enabledAttr False)] sh
- >>* [OnAction (Action "Book") $ ifValue (\_->True) $ return o OneWay]
- "return flight"
- = updateInformation () [] now
- -&&- updateInformation () [] now
- >>* [OnAction (Action "Book") $ ifValue (uncurry (<)) $ return o Return]
-
-gui4 :: Timestamp Int -> Task Timestamp
-gui4 startTime duration = withShared duration \duration->
- viewSharedInformation "Elapsed time: " [ViewUsing toProgress progressBar] (currentTimestamp >*< duration)
- -&&- viewSharedInformation () [ViewAs \now->on (-) toInt now startTime] currentTimestamp
- -&&- updateSharedInformation "Duration: " [UpdateUsing id (const id) $ slider <<@ minAttr 0 <<@ maxAttr 3600] duration
- >>* [OnAction (Action "Reset") $ always $ get (currentTimestamp >*< duration) >>- uncurry gui4]
-where
- toProgress (now, duration) =
- (Just $ toInt $ on (-) (toReal o toInt) now startTime / toReal duration * 100.0, Nothing)
-
-gui5 = withShared [(0, "Emil", "Hans"), (1, "Mustermann", "Max"), (2, "Tisch", "Roman")] \data->
- enterInformation "Filter prefix" []
- >&> \v->whileUnchanged (mapRead (fromMaybe " ") v) \filter->
- tune ArrangeHorizontal
- $ enterChoiceWithShared () [ChooseFromList (\(_, f, l)->f +++ ", " +++ l)] data
- >&> \v->whileUnchanged v \selection->case selection of
- Nothing = viewInformation "Nothing selected" [] () @? const NoValue
- Just x = updateInformation () [] x