Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
clean-compiler-and-rts
stdenv
Commits
86e750ec
Commit
86e750ec
authored
Nov 30, 1999
by
Peter Achten
Browse files
(PA) public state component removed from PSt/IOSt
parent
8fb27ad6
Changes
82
Show whitespace changes
Inline
Side-by-side
ObjectIO/GameLib/StdGame.dcl
View file @
86e750ec
...
@@ -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
)
...
...
ObjectIO/GameLib/StdGame.icl
View file @
86e750ec
...
@@ -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
...
...
ObjectIO/ObjectIO/OS Windows/menuevent.dcl
View file @
86e750ec
...
@@ -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
ObjectIO/ObjectIO/OS Windows/menuevent.icl
View file @
86e750ec
...
@@ -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.
*/
*/
...
...
ObjectIO/ObjectIO/OS Windows/osprint.dcl
View file @
86e750ec
...
@@ -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
...
...
ObjectIO/ObjectIO/OS Windows/osprint.icl
View file @
86e750ec
...
@@ -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
)
...
...
ObjectIO/ObjectIO/OS Windows/processevent.dcl
View file @
86e750ec
...
@@ -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
)
ObjectIO/ObjectIO/OS Windows/processevent.icl
View file @
86e750ec
...
@@ -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
...
...
ObjectIO/ObjectIO/OS Windows/receiverevent.dcl
View file @
86e750ec
...
@@ -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
)
ObjectIO/ObjectIO/OS Windows/receiverevent.icl
View file @
86e750ec
...
@@ -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
...
...
ObjectIO/ObjectIO/OS Windows/timerevent.dcl
View file @
86e750ec
...
@@ -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
)
ObjectIO/ObjectIO/OS Windows/timerevent.icl
View file @
86e750ec
...
@@ -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
...
...
ObjectIO/ObjectIO/OS Windows/windowevent.dcl
View file @
86e750ec
...
@@ -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
)
ObjectIO/ObjectIO/OS Windows/windowevent.icl
View file @
86e750ec
...
@@ -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
...
...
ObjectIO/ObjectIO/StdClipboard.dcl
View file @
86e750ec
...
@@ -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.
*/
*/
ObjectIO/ObjectIO/StdClipboard.icl
View file @
86e750ec
...
@@ -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
...
...
ObjectIO/ObjectIO/StdControl.dcl
View file @
86e750ec
...
@@ -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
)
/* (app/acc)ControlPicture applies the given drawing function to the Picture of
/* (app/acc)ControlPicture applies the given drawing function to the Picture of
the indicated (Custom(Button)/Compound)Control. If the CompoundControl is
the indicated (Custom(Button)/Compound)Control. If the CompoundControl is
transparant, or the indicated control could not be found then this operation
transparant, or the indicated control could not be found then this operation
...
@@ -131,8 +131,8 @@ accControlPicture :: !Id !.(St *Picture .x) !(IOSt .l .p)
...
@@ -131,8 +131,8 @@ accControlPicture :: !Id !.(St *Picture .x) !(IOSt .l .p)
::
WState
::
WState