X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=Shares%2FmTaskShare.icl;fp=Shares%2FmTaskShare.icl;h=ed4b5e3811e0e40c85440696beac983e99ddddbb;hb=bfbcdc683846195fbe720f4b3c38f3b0604c8f22;hp=8c0ae61355ffb78e257597dbd5b386a01858b0c4;hpb=250d747b6096a2cfe4b2e7c3a63bb5caa3a45181;p=mTask.git diff --git a/Shares/mTaskShare.icl b/Shares/mTaskShare.icl index 8c0ae61..ed4b5e3 100644 --- a/Shares/mTaskShare.icl +++ b/Shares/mTaskShare.icl @@ -12,7 +12,20 @@ derive class iTask MTaskShareType, MTaskShare manageShares :: [MTaskShare] -> Task () manageShares shares = withShared Nothing $ \cs->forever $ - viewSharesGrid cs shares /*||- (viewSharedInformation "" [] cs*/ @! ()//)//||- editCurrentShare cs + (viewSharesGrid cs shares -|| updateShares shares <<@ ArrangeVertical) + @! () +updateShares :: [MTaskShare] -> Task BCValue +updateShares shares = anyTask (map updateS shares) <<@ ArrangeWithTabs + +updateS :: MTaskShare -> Task BCValue +updateS sh = flip (<<@) (Title $ toString sh.identifier) $ forever $ + viewSharedInformation "Current value" [] (getSDSShare sh) + ||- ( + updateSharedInformation "New value" [] (getSDSShare sh) + >>= \nv->allTasks (map (sendMessages [MTUpd sh.identifier nv]) sh.withDevice) + >>| treturn nv + ) + <<@ ArrangeHorizontal // >&^ \st->whileUnchanged st $ \msh->case msh of // Nothing = viewShares shares @@ -54,10 +67,11 @@ viewShare m = viewSharedInformation "" [] (getSDSShare m) getSDSShare :: MTaskShare -> Shared BCValue getSDSShare s=:{realShare=(MTaskWithShare id),value} = memoryShare id value -makeShare :: String Int BCValue -> Task MTaskShare -makeShare withTask identifier value = treturn +makeShare :: String MTaskDevice Int BCValue -> Task MTaskShare +makeShare withTask withDevice identifier value = treturn {MTaskShare |withTask=[withTask] + ,withDevice=[withDevice] ,identifier=identifier ,value=value ,realShare=MTaskWithShare $ "mTaskSDS-" +++ toString identifier