implementation module ostoolbar import StdMisc, StdTuple from osbitmap import :: OSBitmap, osGetBitmapHandle from ostypes import :: HWND, :: OSWindowPtr, OSNoWindowPtr from pictCCall_12 import winCreateBitmap import clCrossCall_12, windowCCall_12 :: OSToolbar = { toolbarPtr :: !OSToolbarHandle // The toolbar of the frame window (zero if no toolbar) , toolbarHeight :: !Int // The height of the toolbar (zero if no toolbar) } :: OSToolbarHandle :== OSWindowPtr OSdefaultToolbarHeight :== 16 // The default height of the toolbar /* osCreateToolbar wPtr height creates a toolbar in the argument window with the given size of the bitmap images. The return Int is the actual height of the toolbar. */ osCreateToolbar :: !Bool !OSWindowPtr !(!Int,!Int) !*OSToolbox -> (!(!OSToolbarHandle,!Int),!*OSToolbox) osCreateToolbar forMDI hwnd (w,h) tb # (rcci,tb) = issueCleanRequest2 (errorCallback2 "osCreateToolbar") (Rq3Cci (if forMDI CcRqCREATEMDITOOLBAR CcRqCREATESDITOOLBAR) hwnd w h) tb tbPtr_Height = case rcci.ccMsg of CcRETURN2 -> (rcci.p1,rcci.p2) CcWASQUIT -> (OSNoWindowPtr,0) other -> abort "[osCreateToolbar] expected CcRETURN1 value." = (tbPtr_Height,tb) osCreateBitmapToolbarItem :: !OSToolbarHandle !OSBitmap !Int !*OSToolbox -> *OSToolbox osCreateBitmapToolbarItem tbPtr osBitmap index tb = snd (issueCleanRequest2 (errorCallback2 "osCreateBitmapToolbarItem") (Rq3Cci CcRqCREATETOOLBARITEM tbPtr hbmp index) tb) where hbmp = osGetBitmapHandle osBitmap osCreateToolbarSeparator :: !OSToolbarHandle !*OSToolbox -> *OSToolbox osCreateToolbarSeparator tbPtr tb = snd (issueCleanRequest2 (errorCallback2 "osCreateToolbarSeparator") (Rq1Cci CcRqCREATETOOLBARSEPARATOR tbPtr) tb)