Commit 0a09946b authored by Peter Achten's avatar Peter Achten
Browse files

(PA) public state component removed from PSt/IOSt

parent dd25dd85
...@@ -18,7 +18,7 @@ SK_FOREVER :== (~1) ...@@ -18,7 +18,7 @@ SK_FOREVER :== (~1)
:: NoState :: NoState
= NoState = NoState
OpenGame :: gs (Game gs) [GameAttribute gs] !(PSt .l .p) -> (ErrorReport, !PSt .l .p) OpenGame :: gs (Game gs) [GameAttribute gs] !(PSt .l) -> (ErrorReport, !PSt .l)
CreateGameBitmap :: !GameBitmap !(GSt .gs) -> (!GRESULT, !GSt .gs) CreateGameBitmap :: !GameBitmap !(GSt .gs) -> (!GRESULT, !GSt .gs)
......
...@@ -23,7 +23,7 @@ SK_FOREVER :== (~1) ...@@ -23,7 +23,7 @@ SK_FOREVER :== (~1)
= NoState = NoState
OpenGame :: gs (Game gs) [GameAttribute gs] !(PSt .l .p) -> (ErrorReport, !(PSt .l .p)) OpenGame :: gs (Game gs) [GameAttribute gs] !(PSt .l) -> (ErrorReport, !(PSt .l))
OpenGame gs gdef attr ps OpenGame gs gdef attr ps
# (wId, ps) = accPIO openId ps # (wId, ps) = accPIO openId ps
# size = findSize attr {w=320,h=240} # size = findSize attr {w=320,h=240}
...@@ -47,7 +47,7 @@ where ...@@ -47,7 +47,7 @@ where
findBPP [x:xs] s = findBPP xs s findBPP [x:xs] s = findBPP xs s
// always full screen, game in a window not implemented yet // always full screen, game in a window not implemented yet
OpenGameWindow :: !Id !Size !Int !Bool !(PSt .l .p) -> (!ErrorReport, !PSt .l .p) OpenGameWindow :: !Id !Size !Int !Bool !(PSt .l) -> (!ErrorReport, !PSt .l)
OpenGameWindow id gamewindowsize bitsperpixel fullscreen pState OpenGameWindow id gamewindowsize bitsperpixel fullscreen pState
# pState = WindowFunctions.dOpen pState # pState = WindowFunctions.dOpen pState
# (isZero,pState) = accPIO checkZeroWindowBound pState # (isZero,pState) = accPIO checkZeroWindowBound pState
......
...@@ -12,7 +12,7 @@ import deviceevents, devicesystemstate, menuhandle ...@@ -12,7 +12,7 @@ import deviceevents, devicesystemstate, menuhandle
from iostate import PSt, IOSt from iostate import PSt, IOSt
menuEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) menuEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
MenuHandlesGetMenuStateHandles :: !(MenuHandles .pst) -> (![MenuStateHandle .pst], !MenuHandles .pst) MenuHandlesGetMenuStateHandles :: !(MenuHandles .pst) -> (![MenuStateHandle .pst], !MenuHandles .pst)
// PA: moved from menudevice // PA: moved from menudevice
...@@ -29,7 +29,7 @@ menueventFatalError function error ...@@ -29,7 +29,7 @@ menueventFatalError function error
menuEvent assumes that it is not applied to an empty IOSt and that its device is menuEvent assumes that it is not applied to an empty IOSt and that its device is
present. present.
*/ */
menuEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) menuEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
menuEvent schedulerEvent pState menuEvent schedulerEvent pState
# (hasMenuDevice,pState) = accPIO (IOStHasDevice MenuDevice) pState # (hasMenuDevice,pState) = accPIO (IOStHasDevice MenuDevice) pState
| not hasMenuDevice // This condition should never hold | not hasMenuDevice // This condition should never hold
...@@ -37,7 +37,7 @@ menuEvent schedulerEvent pState ...@@ -37,7 +37,7 @@ menuEvent schedulerEvent pState
| otherwise | otherwise
= menuEvent schedulerEvent pState = menuEvent schedulerEvent pState
where where
menuEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) menuEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
menuEvent schedulerEvent=:(ScheduleOSEvent osEvent=:{ccMsg} _) pState=:{io=ioState} menuEvent schedulerEvent=:(ScheduleOSEvent osEvent=:{ccMsg} _) pState=:{io=ioState}
| isToolbarOSEvent ccMsg | isToolbarOSEvent ccMsg
# (osdInfo,ioState) = IOStGetOSDInfo ioState # (osdInfo,ioState) = IOStGetOSDInfo ioState
...@@ -102,7 +102,7 @@ where ...@@ -102,7 +102,7 @@ where
/* filterToolbarEvent filters the OSEvents that can be handled by this menu device. /* filterToolbarEvent filters the OSEvents that can be handled by this menu device.
*/ */
filterToolbarEvent :: !OSDInfo !OSEvent !(IOSt .l .p) -> (!Bool,!Maybe [Int],!Maybe DeviceEvent,!IOSt .l .p) filterToolbarEvent :: !OSDInfo !OSEvent !(IOSt .l) -> (!Bool,!Maybe [Int],!Maybe DeviceEvent,!IOSt .l)
/* CcWmBUTTONCLICKED is a menu event in case of a toolbar selection. /* CcWmBUTTONCLICKED is a menu event in case of a toolbar selection.
*/ */
......
...@@ -53,7 +53,7 @@ class PrintEnvironments printEnv ...@@ -53,7 +53,7 @@ class PrintEnvironments printEnv
-> (Alternative .x .state,!*printEnv) -> (Alternative .x .state,!*printEnv)
instance PrintEnvironments Files instance PrintEnvironments Files
instance PrintEnvironments (PSt .l .p) instance PrintEnvironments (PSt .l)
os_printsetuptostring :: !PrintSetup -> String os_printsetuptostring :: !PrintSetup -> String
......
...@@ -4,7 +4,7 @@ implementation module osprint ...@@ -4,7 +4,7 @@ implementation module osprint
// MW11 was import StdEnv,intrface,clCrossCall_12, iostate, scheduler // MW11 was import StdEnv,intrface,clCrossCall_12, iostate, scheduler
import StdEnv,clCCall_12,clCrossCall_12, iostate, scheduler import StdEnv,clCCall_12,clCrossCall_12, iostate, scheduler
import ospicture, osevent, StdPicture, StdWindow, StdPSt import ospicture, osevent/*, StdPicture*/, StdWindow, StdPSt
:: PrintSetup :: PrintSetup
= { devmode :: !String = { devmode :: !String
...@@ -85,7 +85,7 @@ class PrintEnvironments printEnv ...@@ -85,7 +85,7 @@ class PrintEnvironments printEnv
-> (Alternative .x .state,!*printEnv) -> (Alternative .x .state,!*printEnv)
instance PrintEnvironments (PSt .l .p) instance PrintEnvironments (PSt .l)
where where
os_printpageperpage doDialog emulateScreen x initFun transFun printSetup pSt=:{io} os_printpageperpage doDialog emulateScreen x initFun transFun printSetup pSt=:{io}
#! (windowStack, io) = getWindowStack io #! (windowStack, io) = getWindowStack io
...@@ -102,7 +102,7 @@ where ...@@ -102,7 +102,7 @@ where
# (x,mb_context,os) = printPagePerPageBothSemaphor # (x,mb_context,os) = printPagePerPageBothSemaphor
doDialog emulateScreen x initFun transFun printSetup (Just context) os doDialog emulateScreen x initFun transFun printSetup (Just context) os
= (x,EnvSetOS os (fromJust mb_context)) = (x,EnvSetOS os (fromJust mb_context))
zipWithSelectState :: .Id *(IOSt .a .b) -> *(.(Maybe SelectState,Id),*IOSt .a .b) zipWithSelectState :: .Id *(IOSt .a) -> *(.(Maybe SelectState,Id),*IOSt .a)
zipWithSelectState id io zipWithSelectState id io
#! (mbSelectState, io) = getWindowSelectState id io #! (mbSelectState, io) = getWindowSelectState id io
= ((mbSelectState, id), io) = ((mbSelectState, id), io)
......
...@@ -11,4 +11,4 @@ import deviceevents ...@@ -11,4 +11,4 @@ import deviceevents
from iostate import PSt, IOSt from iostate import PSt, IOSt
processEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) processEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
...@@ -25,7 +25,7 @@ processeventFatalError function error ...@@ -25,7 +25,7 @@ processeventFatalError function error
/* processEvent filters the scheduler events that can be handled by this process device. /* processEvent filters the scheduler events that can be handled by this process device.
processEvent assumes that it is not applied to an empty IOSt. processEvent assumes that it is not applied to an empty IOSt.
*/ */
processEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) processEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
processEvent schedulerEvent=:(ScheduleOSEvent osEvent=:{ccMsg} _) pState=:{io=ioState} processEvent schedulerEvent=:(ScheduleOSEvent osEvent=:{ccMsg} _) pState=:{io=ioState}
| isProcessOSEvent ccMsg | isProcessOSEvent ccMsg
......
...@@ -11,4 +11,4 @@ import deviceevents ...@@ -11,4 +11,4 @@ import deviceevents
from iostate import PSt, IOSt from iostate import PSt, IOSt
receiverEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) receiverEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
...@@ -13,7 +13,7 @@ from StdPSt import accPIO ...@@ -13,7 +13,7 @@ from StdPSt import accPIO
These are only the message events (as long as receivers do not contain timers). These are only the message events (as long as receivers do not contain timers).
receiverEvent assumes that it is not applied to an empty IOSt. receiverEvent assumes that it is not applied to an empty IOSt.
*/ */
receiverEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) receiverEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
receiverEvent schedulerEvent=:(ScheduleMsgEvent msgEvent) pState receiverEvent schedulerEvent=:(ScheduleMsgEvent msgEvent) pState
# (ioid,pState) = accPIO IOStGetIOId pState # (ioid,pState) = accPIO IOStGetIOId pState
recloc = case msgEvent of recloc = case msgEvent of
......
...@@ -12,4 +12,4 @@ import deviceevents ...@@ -12,4 +12,4 @@ import deviceevents
from iostate import PSt, IOSt from iostate import PSt, IOSt
timerEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) timerEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
...@@ -22,7 +22,7 @@ timereventFatalError function error ...@@ -22,7 +22,7 @@ timereventFatalError function error
* ScheduleMsgEvent: the message event belongs to this process and device * ScheduleMsgEvent: the message event belongs to this process and device
timerEvent assumes that it is not applied to an empty IOSt. timerEvent assumes that it is not applied to an empty IOSt.
*/ */
timerEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) timerEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
timerEvent schedulerEvent pState timerEvent schedulerEvent pState
# (hasDevice,pState) = accPIO (IOStHasDevice TimerDevice) pState # (hasDevice,pState) = accPIO (IOStHasDevice TimerDevice) pState
| not hasDevice // This condition should never occur: TimerDevice must have been 'installed' | not hasDevice // This condition should never occur: TimerDevice must have been 'installed'
...@@ -30,7 +30,7 @@ timerEvent schedulerEvent pState ...@@ -30,7 +30,7 @@ timerEvent schedulerEvent pState
| otherwise | otherwise
= timerEvent schedulerEvent pState = timerEvent schedulerEvent pState
where where
timerEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) timerEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
timerEvent schedulerEvent=:(ScheduleTimerEvent te=:{teLoc}) pState=:{io=ioState} timerEvent schedulerEvent=:(ScheduleTimerEvent te=:{teLoc}) pState=:{io=ioState}
# (ioid,ioState) = IOStGetIOId ioState # (ioid,ioState) = IOStGetIOId ioState
| teLoc.tlIOId<>ioid || teLoc.tlDevice<>TimerDevice | teLoc.tlIOId<>ioid || teLoc.tlDevice<>TimerDevice
......
...@@ -12,4 +12,4 @@ import deviceevents ...@@ -12,4 +12,4 @@ import deviceevents
from iostate import PSt, IOSt from iostate import PSt, IOSt
windowEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) windowEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
...@@ -31,7 +31,7 @@ windoweventFatalError function error ...@@ -31,7 +31,7 @@ windoweventFatalError function error
For the time being no timer controls are added, so these events are ignored. For the time being no timer controls are added, so these events are ignored.
windowEvent assumes that it is not applied to an empty IOSt. windowEvent assumes that it is not applied to an empty IOSt.
*/ */
windowEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) windowEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
windowEvent schedulerEvent pState windowEvent schedulerEvent pState
# (hasDevice,pState) = accPIO (IOStHasDevice WindowDevice) pState # (hasDevice,pState) = accPIO (IOStHasDevice WindowDevice) pState
| not hasDevice // This condition should never occur: WindowDevice must have been 'installed' | not hasDevice // This condition should never occur: WindowDevice must have been 'installed'
...@@ -39,7 +39,7 @@ windowEvent schedulerEvent pState ...@@ -39,7 +39,7 @@ windowEvent schedulerEvent pState
| otherwise | otherwise
= windowEvent schedulerEvent pState = windowEvent schedulerEvent pState
where where
windowEvent :: !SchedulerEvent !(PSt .l .p) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l .p) windowEvent :: !SchedulerEvent !(PSt .l) -> (!Bool,!Maybe DeviceEvent,!SchedulerEvent,!PSt .l)
windowEvent schedulerEvent=:(ScheduleOSEvent osEvent _) pState=:{io=ioState} windowEvent schedulerEvent=:(ScheduleOSEvent osEvent _) pState=:{io=ioState}
| not (isWindowOSEvent osEvent.ccMsg) | not (isWindowOSEvent osEvent.ccMsg)
= (False,Nothing,schedulerEvent,pState) = (False,Nothing,schedulerEvent,pState)
...@@ -96,8 +96,8 @@ where ...@@ -96,8 +96,8 @@ where
/* filterOSEvent filters the OSEvents that can be handled by this window device. /* filterOSEvent filters the OSEvents that can be handled by this window device.
*/ */
filterOSEvent :: !OSWindowMetrics !OSEvent !(WindowHandles (PSt .l .p)) !(IOSt .l .p) filterOSEvent :: !OSWindowMetrics !OSEvent !(WindowHandles (PSt .l)) !(IOSt .l)
-> (!Bool,!Maybe [Int],!Maybe DeviceEvent,!WindowHandles (PSt .l .p),!IOSt .l .p) -> (!Bool,!Maybe [Int],!Maybe DeviceEvent,!WindowHandles (PSt .l), !IOSt .l)
filterOSEvent _ {ccMsg=CcWmBUTTONCLICKED,p1=wPtr,p2=cPtr,p3=mods,p4=toolbarIndex} windows ioState filterOSEvent _ {ccMsg=CcWmBUTTONCLICKED,p1=wPtr,p2=cPtr,p3=mods,p4=toolbarIndex} windows ioState
# (found,wsH,windows) = getWindowHandlesWindow (toWID wPtr) windows # (found,wsH,windows) = getWindowHandlesWindow (toWID wPtr) windows
......
...@@ -31,8 +31,8 @@ instance Clipboard {#Char} ...@@ -31,8 +31,8 @@ instance Clipboard {#Char}
// Access to the current content of the clipboard: // Access to the current content of the clipboard:
setClipboard :: ![ClipboardItem] !(PSt .l .p) -> PSt .l .p setClipboard :: ![ClipboardItem] !(PSt .l) -> PSt .l
getClipboard :: !(PSt .l .p) -> (![ClipboardItem],!PSt .l .p) getClipboard :: !(PSt .l) -> (![ClipboardItem],!PSt .l)
/* setClipboard /* setClipboard
replaces the current content of the clipboard with the argument list. replaces the current content of the clipboard with the argument list.
Of the list only the first occurence of a ClipboardItem of the same type Of the list only the first occurence of a ClipboardItem of the same type
...@@ -43,7 +43,7 @@ getClipboard :: !(PSt .l .p) -> (![ClipboardItem],!PSt .l .p) ...@@ -43,7 +43,7 @@ getClipboard :: !(PSt .l .p) -> (![ClipboardItem],!PSt .l .p)
*/ */
clipboardHasChanged :: !(PSt .l .p) -> (!Bool,!PSt .l .p) clipboardHasChanged :: !(PSt .l) -> (!Bool,!PSt .l)
/* clipboardHasChanged holds if the current content of the clipboard is different /* clipboardHasChanged holds if the current content of the clipboard is different
from the last access to the clipboard. from the last access to the clipboard.
*/ */
...@@ -36,7 +36,7 @@ instance Clipboard {#Char} where ...@@ -36,7 +36,7 @@ instance Clipboard {#Char} where
// Reading and writing the value of the selection to the clipboard: // Reading and writing the value of the selection to the clipboard:
setClipboard :: ![ClipboardItem] !(PSt .l .p) -> PSt .l .p setClipboard :: ![ClipboardItem] !(PSt .l) -> PSt .l
setClipboard clipItems pState=:{io} setClipboard clipItems pState=:{io}
# (tb,ioState) = getIOToolbox io # (tb,ioState) = getIOToolbox io
# tb = StrictSeq (map clipboardItemToScrap singleItems) tb # tb = StrictSeq (map clipboardItemToScrap singleItems) tb
...@@ -61,7 +61,7 @@ where ...@@ -61,7 +61,7 @@ where
clipboardItemToScrap (ClipboardString text) tb clipboardItemToScrap (ClipboardString text) tb
= OSsetClipboardText text tb = OSsetClipboardText text tb
getClipboard :: !(PSt .l .p) -> (![ClipboardItem],!PSt .l .p) getClipboard :: !(PSt .l) -> (![ClipboardItem],!PSt .l)
getClipboard pState getClipboard pState
# (tb,ioState) = getIOToolbox pState.io # (tb,ioState) = getIOToolbox pState.io
# (contents,tb) = OSgetClipboardContent tb # (contents,tb) = OSgetClipboardContent tb
...@@ -80,7 +80,7 @@ where ...@@ -80,7 +80,7 @@ where
scrapToClipboardItem type tb scrapToClipboardItem type tb
= StdClipboardFatalError "getClipboard" ("unimplemented clipboard content of type: "+++toString type) = StdClipboardFatalError "getClipboard" ("unimplemented clipboard content of type: "+++toString type)
clipboardHasChanged :: !(PSt .l .p) -> (!Bool,!PSt .l .p) clipboardHasChanged :: !(PSt .l) -> (!Bool,!PSt .l)
clipboardHasChanged pState clipboardHasChanged pState
# (cbs,ioState) = IOStGetClipboardState pState.io # (cbs,ioState) = IOStGetClipboardState pState.io
oldCount = cbs.cbsCount oldCount = cbs.cbsCount
......
...@@ -18,53 +18,53 @@ from StdPSt import PSt, IOSt ...@@ -18,53 +18,53 @@ from StdPSt import PSt, IOSt
process are used to change the corresponding controls. process are used to change the corresponding controls.
*/ */
showControls :: ![Id] !(IOSt .l .p) -> IOSt .l .p showControls :: ![Id] !(IOSt .l) -> IOSt .l
showControl :: ! Id !(IOSt .l .p) -> IOSt .l .p showControl :: ! Id !(IOSt .l) -> IOSt .l
hideControls :: ![Id] !(IOSt .l .p) -> IOSt .l .p hideControls :: ![Id] !(IOSt .l) -> IOSt .l
hideControl :: ! Id !(IOSt .l .p) -> IOSt .l .p hideControl :: ! Id !(IOSt .l) -> IOSt .l
/* (show/hide)Control(s) makes the indicated control(s) visible/invisible. /* (show/hide)Control(s) makes the indicated control(s) visible/invisible.
Hiding a control overrides the visibility of its elements, which become Hiding a control overrides the visibility of its elements, which become
invisible. invisible.
Showing a hidden control re-establishes the visibility state of its elements. Showing a hidden control re-establishes the visibility state of its elements.
*/ */
enableControls :: ![Id] !(IOSt .l .p) -> IOSt .l .p enableControls :: ![Id] !(IOSt .l) -> IOSt .l
enableControl :: ! Id !(IOSt .l .p) -> IOSt .l .p enableControl :: ! Id !(IOSt .l) -> IOSt .l
disableControls :: ![Id] !(IOSt .l .p) -> IOSt .l .p disableControls :: ![Id] !(IOSt .l) -> IOSt .l
disableControl :: ! Id !(IOSt .l .p) -> IOSt .l .p disableControl :: ! Id !(IOSt .l) -> IOSt .l
/* (en/dis)ableControl(s) (en/dis)ables the indicated control(s). /* (en/dis)ableControl(s) (en/dis)ables the indicated control(s).
Disabling a control overrides the SelectStates of its elements, which become Disabling a control overrides the SelectStates of its elements, which become
unselectable. unselectable.
Enabling a disabled control re-establishes the SelectStates of its elements. Enabling a disabled control re-establishes the SelectStates of its elements.
*/ */
markCheckControlItems :: !Id ![Index] !(IOSt .l .p) -> IOSt .l .p markCheckControlItems :: !Id ![Index] !(IOSt .l) -> IOSt .l
unmarkCheckControlItems :: !Id ![Index] !(IOSt .l .p) -> IOSt .l .p unmarkCheckControlItems :: !Id ![Index] !(IOSt .l) -> IOSt .l
/* (unm/m)arkCheckControlItems unmarks/marks the indicated check items of the given /* (unm/m)arkCheckControlItems unmarks/marks the indicated check items of the given
CheckControl. Indices range from 1 to the number of check items. Illegal indices CheckControl. Indices range from 1 to the number of check items. Illegal indices
are ignored. are ignored.
*/ */
selectRadioControlItem :: !Id !Index !(IOSt .l .p) -> IOSt .l .p selectRadioControlItem :: !Id !Index !(IOSt .l) -> IOSt .l
/* selectRadioControlItem marks the indicated radio item of a RadioControl, causing /* selectRadioControlItem marks the indicated radio item of a RadioControl, causing
the mark of the previously marked radio item to disappear. The item is given by the mark of the previously marked radio item to disappear. The item is given by
the Id of the RadioControl and its index position (counted from 1). the Id of the RadioControl and its index position (counted from 1).
*/ */
selectPopUpControlItem :: !Id !Index !(IOSt .l .p) -> IOSt .l .p selectPopUpControlItem :: !Id !Index !(IOSt .l) -> IOSt .l
/* selectPopUpControlItem marks the indicated popup item of a PopUpControl, causing /* selectPopUpControlItem marks the indicated popup item of a PopUpControl, causing
the mark of the previously marked popup item to disappear. The item is given by the mark of the previously marked popup item to disappear. The item is given by
the Id of the PopUpControl and its index position (counted from 1). the Id of the PopUpControl and its index position (counted from 1).
*/ */
moveControlViewFrame :: !Id Vector2 !(IOSt .l .p) -> IOSt .l .p moveControlViewFrame :: !Id Vector2 !(IOSt .l) -> IOSt .l
/* moveControlViewFrame moves the orientation of the CompoundControl over the given /* moveControlViewFrame moves the orientation of the CompoundControl over the given
vector, and updates the control if necessary. The control frame is not moved vector, and updates the control if necessary. The control frame is not moved
outside the ViewDomain of the control. MoveControlViewFrame has no effect if the outside the ViewDomain of the control. MoveControlViewFrame has no effect if the
indicated control has no ControlDomain attribute. indicated control has no ControlDomain attribute.
*/ */
setControlViewDomain :: !Id ViewDomain !(IOSt .l .p) -> IOSt .l .p setControlViewDomain :: !Id ViewDomain !(IOSt .l) -> IOSt .l
/* setControlViewDomain sets the view domain of the indicated CompoundControl as /* setControlViewDomain sets the view domain of the indicated CompoundControl as
given. The control view frame is moved such that a maximum portion of the view given. The control view frame is moved such that a maximum portion of the view
domain is visible. The control is not resized. domain is visible. The control is not resized.
...@@ -72,21 +72,21 @@ setControlViewDomain :: !Id ViewDomain !(IOSt .l .p) -> IOSt .l .p ...@@ -72,21 +72,21 @@ setControlViewDomain :: !Id ViewDomain !(IOSt .l .p) -> IOSt .l .p
effect. effect.
*/ */
setControlScrollFunction:: !Id Direction ScrollFunction !(IOSt .l .p) -> IOSt .l .p setControlScrollFunction:: !Id Direction ScrollFunction !(IOSt .l) -> IOSt .l
/* setControlScrollFunction set the ScrollFunction of the indicated CompoundControl /* setControlScrollFunction set the ScrollFunction of the indicated CompoundControl
in the given Direction if it has one. in the given Direction if it has one.
In all other cases, setControlScrollFunction has no effect. In all other cases, setControlScrollFunction has no effect.
*/ */
setControlTexts :: ![(Id,String)] !(IOSt .l .p) -> IOSt .l .p setControlTexts :: ![(Id,String)] !(IOSt .l) -> IOSt .l
setControlText :: !Id !String !(IOSt .l .p) -> IOSt .l .p setControlText :: !Id !String !(IOSt .l) -> IOSt .l
/* setControlText(s) sets the text of the indicated (Text/Edit/Button)Control(s). /* setControlText(s) sets the text of the indicated (Text/Edit/Button)Control(s).
If the indicated control is a (Text/Button)Control, then AltKey are interpreted If the indicated control is a (Text/Button)Control, then AltKey are interpreted
by the system. by the system.
If the indicated control is an EditControl, then the text is taken as it is. If the indicated control is an EditControl, then the text is taken as it is.
*/ */
setEditControlCursor :: !Id !Int !(IOSt .l .p) -> IOSt .l .p setEditControlCursor :: !Id !Int !(IOSt .l) -> IOSt .l
/* setEditControlCursor sets the cursor at position @2 of the current content of /* setEditControlCursor sets the cursor at position @2 of the current content of
the EditControl. the EditControl.
In case @2<0, then the cursor is set at the start of the current content. In case @2<0, then the cursor is set at the start of the current content.
...@@ -94,18 +94,18 @@ setEditControlCursor :: !Id !Int !(IOSt .l .p) -> IOSt .l .p ...@@ -94,18 +94,18 @@ setEditControlCursor :: !Id !Int !(IOSt .l .p) -> IOSt .l .p
content. content.
*/ */
setControlLooks :: ![(Id, Bool,(Bool,Look))] !(IOSt .l .p) -> IOSt .l .p setControlLooks :: ![(Id, Bool,(Bool,Look))] !(IOSt .l) -> IOSt .l
setControlLook :: !Id !Bool (Bool,Look) !(IOSt .l .p) -> IOSt .l .p setControlLook :: !Id !Bool (Bool,Look) !(IOSt .l) -> IOSt .l
/* setControlLook(s) sets the (render,look) attribute of the indicated /* setControlLook(s) sets the (render,look) attribute of the indicated
(Custom(Button)/Compound)Control(s). If this concerns a transparant (Custom(Button)/Compound)Control(s). If this concerns a transparant
CompoundControl then it becomes non-transparant. CompoundControl then it becomes non-transparant.
An indicated control is only redrawn if the first Boolean is True. An indicated control is only redrawn if the first Boolean is True.
*/ */
setSliderStates :: ![(Id, IdFun SliderState)] !(IOSt .l .p) -> IOSt .l .p setSliderStates :: ![(Id, IdFun SliderState)] !(IOSt .l) -> IOSt .l
setSliderState :: !Id (IdFun SliderState) !(IOSt .l .p) -> IOSt .l .p setSliderState :: !Id (IdFun SliderState) !(IOSt .l) -> IOSt .l
setSliderThumbs :: ![(Id,Int)] !(IOSt .l .p) -> IOSt .l .p setSliderThumbs :: ![(Id,Int)] !(IOSt .l) -> IOSt .l
setSliderThumb :: !Id Int !(IOSt .l .p) -> IOSt .l .p setSliderThumb :: !Id Int !(IOSt .l) -> IOSt .l
/* setSliderState(s) /* setSliderState(s)
applies the function to the current SliderState of the indicated applies the function to the current SliderState of the indicated
SliderControl(s) and redraws the settings if necessary. SliderControl(s) and redraws the settings if necessary.
...@@ -114,9 +114,9 @@ setSliderThumb :: !Id Int !(IOSt .l .p) -> IOSt .l .p ...@@ -114,9 +114,9 @@ setSliderThumb :: !Id Int !(IOSt .l .p) -> IOSt .l .p
settings if necessary. settings if necessary.
*/ */
appControlPicture :: !Id !.(IdFun *Picture) !(IOSt .l .p) -> IOSt .l .p appControlPicture :: !Id !.(IdFun *Picture) !(IOSt .l) -> IOSt .l
accControlPicture :: !Id !.(St *Picture .x) !(IOSt .l .p) accControlPicture :: !Id !.(St *Picture .x) !(IOSt .l)
-> (!Maybe .x,!IOSt .l .p) -> (!Maybe .x,!IOSt .l)