1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
implementation module menuCrossCall_12
import StdInt, StdMisc, StdTuple
from StdIOCommon import :: Modifiers
import clCrossCall_12
from clCCall_12 import winMakeCString, winReleaseCString, :: CSTR, toModifiers
from ostypes import :: HWND
:: HITEM :== Int
:: HMENU :== Int
winCreatePopupMenuHandle :: !*OSToolbox -> (!HMENU,!*OSToolbox) // PA: check if this can be a C call
winCreatePopupMenuHandle tb
# (rcci,tb) = issueCleanRequest2 (errorCallback2 "winCreatePopupMenuHandle") (Rq0Cci CcRqCREATEPOPMENU) tb
menu = case rcci.ccMsg of
CcRETURN1 -> rcci.p1
CcWASQUIT -> 0
otherwise -> abort "[winCreatePopupMenuHandle] expected CcRETURN1 value."
= (menu,tb)
winTrackPopupMenu :: !HMENU !HWND !*OSToolbox -> (!Int,!Modifiers,!*OSToolbox)
winTrackPopupMenu menu framePtr tb
# (rcci,tb) = issueCleanRequest2 (errorCallback2 "winTrackPopupMenu") (Rq2Cci CcRqTRACKPOPMENU menu framePtr) tb
(menuItemID,mods) = case rcci.ccMsg of
CcRETURN2 -> (rcci.p1,rcci.p2)
CcWASQUIT -> (0, 0)
otherwise -> abort "[winTrackPopupMenu] expected CcRETURN2 value."
= (menuItemID,toModifiers mods,tb)
winInsertMenu :: !String !Bool !HMENU !HMENU !Int !*OSToolbox -> *OSToolbox
winInsertMenu text state submenu menu pos tb
# (textptr,tb) = winMakeCString text tb
# (_,tb) = issueCleanRequest2 (errorCallback2 "winInsertMenu") (Rq5Cci CcRqINSERTMENU (toInt state) menu textptr submenu pos) tb
= winReleaseCString textptr tb
winInsertMenuItem :: !String !Bool !Bool !HMENU !Int !*OSToolbox -> (!HITEM,!*OSToolbox)
winInsertMenuItem text ablestate markstate menu pos tb
# (textptr,tb) = winMakeCString text tb
insertCci = Rq5Cci CcRqINSERTMENUITEM (toInt ablestate) menu textptr (toInt markstate) pos
# (rcci,tb) = issueCleanRequest2 (errorCallback2 "winInsertMenuItem") insertCci tb
hitem = case rcci.ccMsg of
CcRETURN1 -> rcci.p1
CcWASQUIT -> 0
other -> abort "[winInsertMenuItem] expected CcRETURN1 value."
# tb = winReleaseCString textptr tb
= (hitem,tb)
winInsertSeparator :: !HMENU !Int !*OSToolbox -> *OSToolbox
winInsertSeparator menu pos tb
= snd (issueCleanRequest2 (errorCallback2 "winInsertSeparator") (Rq2Cci CcRqINSERTSEPARATOR menu pos) tb)
winChangeMenuItemCheck :: !HMENU !HITEM !Bool !*OSToolbox -> *OSToolbox
winChangeMenuItemCheck menu hitem state tb
= snd (issueCleanRequest2 (errorCallback2 "winChangeMenuItemCheck") (Rq3Cci CcRqCHECKMENUITEM menu hitem (toInt state)) tb)
winModifyMenu :: !String !HMENU !HMENU !*OSToolbox -> *OSToolbox
winModifyMenu text submenu menu tb
# (textptr,tb) = winMakeCString text tb
# (_,tb) = issueCleanRequest2 (errorCallback2 "winModifyMenu") (Rq3Cci CcRqMODIFYMENU submenu menu textptr) tb
= winReleaseCString textptr tb
winModifyMenuItem :: !String !HITEM !HMENU !*OSToolbox -> *OSToolbox
winModifyMenuItem text hitem menu tb
# (textptr,tb) = winMakeCString text tb
# (_,tb) = issueCleanRequest2 (errorCallback2 "winModifyMenuItem") (Rq3Cci CcRqMODIFYMENUITEM hitem menu textptr) tb
= winReleaseCString textptr tb
winDestroyMenu :: !HMENU !*OSToolbox -> *OSToolbox
winDestroyMenu menu tb
= snd (issueCleanRequest2 (errorCallback2 "winDestroyMenu") (Rq1Cci CcRqDESTROYMENU menu) tb)
winDeleteMenu :: !HMENU !HITEM !*OSToolbox -> *OSToolbox
winDeleteMenu menu hitem tb
= snd (issueCleanRequest2 (errorCallback2 "winDeleteMenu") (Rq2Cci CcRqDELETEMENU menu hitem) tb)
winRemoveMenuItem :: !HMENU !HITEM !*OSToolbox -> *OSToolbox
winRemoveMenuItem menu hitem tb
= snd (issueCleanRequest2 (errorCallback2 "winRemoveMenuItem") (Rq2Cci CcRqREMOVEMENUITEM menu hitem) tb)
winChangeItemAbility :: !HMENU !HITEM !Bool !*OSToolbox -> *OSToolbox
winChangeItemAbility parent hitem onoff tb
= snd (issueCleanRequest2 (errorCallback2 "winChangeItemAbility") (Rq3Cci CcRqITEMENABLE parent hitem (toInt onoff)) tb)
winChangeMenuAbility :: !HMENU !Int !Bool !*OSToolbox -> *OSToolbox
winChangeMenuAbility parent zIndex onoff tb
= snd (issueCleanRequest2 (errorCallback2 "winChangeMenuAbility") (Rq3Cci CcRqMENUENABLE parent zIndex (toInt onoff)) tb)
winDrawMenuBar :: !HWND !HWND !*OSToolbox -> *OSToolbox
winDrawMenuBar framePtr clientPtr tb
= snd (issueCleanRequest2 (errorCallback2 "winDrawMenuBar") (Rq2Cci CcRqDRAWMBAR framePtr clientPtr) tb)
winAddMenuShortKey :: !HWND !Int !Char !*OSToolbox -> *OSToolbox
winAddMenuShortKey framePtr cmd key tb
= snd (issueCleanRequest2 (errorCallback2 "winAddMenuShortKey") (Rq3Cci CcRqADDMENUSHORTKEY framePtr cmd (toInt key)) tb)
winRemoveMenuShortKey :: !HWND !Int !*OSToolbox -> *OSToolbox
winRemoveMenuShortKey framePtr cmd tb
= snd (issueCleanRequest2 (errorCallback2 "winRemoveMenuShortKey") (Rq2Cci CcRqREMOVEMENUSHORTKEY framePtr cmd) tb)
|