aboutsummaryrefslogtreecommitdiff
path: root/menuCrossCall_12.icl
diff options
context:
space:
mode:
Diffstat (limited to 'menuCrossCall_12.icl')
-rw-r--r--menuCrossCall_12.icl101
1 files changed, 101 insertions, 0 deletions
diff --git a/menuCrossCall_12.icl b/menuCrossCall_12.icl
new file mode 100644
index 0000000..5f13588
--- /dev/null
+++ b/menuCrossCall_12.icl
@@ -0,0 +1,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)