implementation module pictCCall_12 from ostypes import :: OSRect{..}, :: HDC import rgnCCall_12 :: *PIC :== ( !HDC , !*OSToolbox ) :: Pt :== ( !Int , !Int ) :: RGBcolor :== ( !Int , !Int , !Int ) :: Fnt :== ( !{#Char} , !Int , !Int ) iWhitePattern :== 4 iLtGreyPattern :== 3 iGreyPattern :== 2 iDkGreyPattern :== 1 iBlackPattern :== 0 iModeNotBic :== 7 iModeNotXor :== 6 iModeNotOr :== 5 iModeNotCopy :== 4 iModeBic :== 3 iModeXor :== 2 iModeOr :== 1 iModeCopy :== 0 iStrikeOut :== 8 iUnderline :== 4 iItalic :== 2 iBold :== 1 // PA: constants for drawing polygons. ALTERNATE :== 1 WINDING :== 2 // PA: end of addition. // PA: win(Create/Destroy)ScreenHDC added to temporarily create a HDC of a screen. // Never use these values for a window or control. winCreateScreenHDC :: !*OSToolbox -> PIC winCreateScreenHDC _ = code { .inline WinCreateScreenHDC ccall WinCreateScreenHDC "I-II" .end } winDestroyScreenHDC :: !PIC -> *OSToolbox winDestroyScreenHDC _ = code { .inline WinDestroyScreenHDC ccall WinDestroyScreenHDC "II-I" .end } // MW: this is never used in the object IO winGetPicStringWidth :: !{#Char} !PIC -> ( !Int, !PIC) winGetPicStringWidth _ _ = code { .inline WinGetPicStringWidth ccall WinGetPicStringWidth "SII-III" .end } winGetPicCharWidth :: !Char !PIC -> ( !Int, !PIC) winGetPicCharWidth _ _ = code { .inline WinGetPicCharWidth ccall WinGetPicCharWidth "III-III" .end } // END MW winGetStringWidth :: !{#Char} !Fnt !Int !HDC !*OSToolbox -> ( !Int, !*OSToolbox) winGetStringWidth _ _ _ _ _ = code { .inline WinGetStringWidth ccall WinGetStringWidth "SSIIIII-II" .end } winGetCharWidth :: !Char !Fnt !Int !HDC !*OSToolbox -> ( !Int, !*OSToolbox) winGetCharWidth _ _ _ _ _ = code { .inline WinGetCharWidth ccall WinGetCharWidth "ISIIIII-II" .end } winGetPicFontInfo :: !PIC -> ( !Int, !Int, !Int, !Int, !PIC) winGetPicFontInfo _ = code { .inline WinGetPicFontInfo ccall WinGetPicFontInfo "II-IIIIII" .end } winGetFontInfo :: !Fnt !Int !HDC !*OSToolbox -> ( !Int, !Int, !Int, !Int, !*OSToolbox) winGetFontInfo _ _ _ _ = code { .inline WinGetFontInfo ccall WinGetFontInfo "SIIIII-IIIII" .end } winSetFontStyle :: !Int !PIC -> PIC winSetFontStyle _ _ = code { .inline WinSetFontStyle ccall WinSetFontStyle "III-II" .end } winSetFontSize :: !Int !PIC -> PIC winSetFontSize _ _ = code { .inline WinSetFontSize ccall WinSetFontSize "III-II" .end } winSetFontName :: !{#Char} !PIC -> PIC winSetFontName _ _ = code { .inline WinSetFontName ccall WinSetFontName "SII-II" .end } winSetFont :: !Fnt !PIC -> PIC winSetFont _ _ = code { .inline WinSetFont ccall WinSetFont "SIIII-II" .end } winPrintResizedBitmap :: !(!Int,!Int) !(!Int,!Int) !(!Int,!Int) !{#Char} !PIC -> PIC winPrintResizedBitmap _ _ _ _ _ = code { .inline WinPrintResizedBitmap ccall WinPrintResizedBitmap "IIIIIISII-II" .end } // PA: Routines to DRAW bitmaps. winDrawBitmap :: !(!Int,!Int) !(!Int,!Int) !Int !PIC -> PIC winDrawBitmap _ _ _ _ = code { .inline WinDrawBitmap ccall WinDrawBitmap "IIIIIII-II" .end } winDrawResizedBitmap :: !(!Int,!Int) !(!Int,!Int) !(!Int,!Int) !Int !PIC -> PIC winDrawResizedBitmap _ _ _ _ _ = code { .inline WinDrawResizedBitmap ccall WinDrawResizedBitmap "IIIIIIIII-II" .end } winCreateBitmap :: !Int !{#Char} !HDC !*OSToolbox -> (!Int,!*OSToolbox) winCreateBitmap _ _ _ _ = code { .inline WinCreateBitmap ccall WinCreateBitmap "ISII-II" .end } winInvertPolygon :: !PIC -> PIC winInvertPolygon _ = code { .inline WinInvertPolygon ccall WinInvertPolygon "II-II" .end } winErasePolygon :: !PIC -> PIC winErasePolygon _ = code { .inline WinErasePolygon ccall WinErasePolygon "II-II" .end } winFillPolygon :: !PIC -> PIC winFillPolygon _ = code { .inline WinFillPolygon ccall WinFillPolygon "II-II" .end } winDrawPolygon :: !PIC -> PIC winDrawPolygon _ = code { .inline WinDrawPolygon ccall WinDrawPolygon "II-II" .end } winAddPolygonPoint :: !Pt !*OSToolbox -> *OSToolbox winAddPolygonPoint _ _ = code { .inline WinAddPolygonPoint ccall WinAddPolygonPoint "III-I" .end } winStartPolygon :: !Int !*OSToolbox -> *OSToolbox winStartPolygon _ _ = code { .inline WinStartPolygon ccall WinStartPolygon "II-I" .end } winEndPolygon :: !*OSToolbox -> *OSToolbox winEndPolygon _ = code { .inline WinEndPolygon ccall WinEndPolygon "I-I" .end } /* Operations to create, modify, and destroy polygon shapes. */ winAllocPolyShape :: !Int !*OSToolbox -> (!Int,!*OSToolbox) winAllocPolyShape _ _ = code { .inline WinAllocPolyShape ccall WinAllocPolyShape "II-II" .end } winSetPolyPoint :: !Int !Int !Int !Int !*OSToolbox -> *OSToolbox winSetPolyPoint _ _ _ _ _ = code { .inline WinSetPolyPoint ccall WinSetPolyPoint "IIIII-I" .end } winFreePolyShape :: !Int !*OSToolbox -> *OSToolbox winFreePolyShape _ _ = code { .inline WinFreePolyShape ccall WinFreePolyShape "II-I" .end } winInvertWedge :: !OSRect !Pt !Pt !PIC -> PIC winInvertWedge _ _ _ _ = code { .inline WinInvertWedge ccall WinInvertWedge "IIIIIIIIII-II" .end } winEraseWedge :: !OSRect !Pt !Pt !PIC -> PIC winEraseWedge _ _ _ _ = code { .inline WinEraseWedge ccall WinEraseWedge "IIIIIIIIII-II" .end } winFillWedge :: !OSRect !Pt !Pt !PIC -> PIC winFillWedge _ _ _ _ = code { .inline WinFillWedge ccall WinFillWedge "IIIIIIIIII-II" .end } winDrawWedge :: !OSRect !Pt !Pt !PIC -> PIC winDrawWedge _ _ _ _ = code { .inline WinDrawWedge ccall WinDrawWedge "IIIIIIIIII-II" .end } winInvertCircle :: !Pt !Int !PIC -> PIC winInvertCircle _ _ _ = code { .inline WinInvertCircle ccall WinInvertCircle "IIIII-II" .end } winEraseCircle :: !Pt !Int !PIC -> PIC winEraseCircle _ _ _ = code { .inline WinEraseCircle ccall WinEraseCircle "IIIII-II" .end } winFillCircle :: !Pt !Int !PIC -> PIC winFillCircle _ _ _ = code { .inline WinFillCircle ccall WinFillCircle "IIIII-II" .end } winDrawCircle :: !Pt !Int !PIC -> PIC winDrawCircle _ _ _ = code { .inline WinDrawCircle ccall WinDrawCircle "IIIII-II" .end } winInvertOval :: !OSRect !PIC -> PIC winInvertOval _ _ = code { .inline WinInvertOval ccall WinInvertOval "IIIIII-II" .end } winEraseOval :: !OSRect !PIC -> PIC winEraseOval _ _ = code { .inline WinEraseOval ccall WinEraseOval "IIIIII-II" .end } winFillOval :: !OSRect !PIC -> PIC winFillOval _ _ = code { .inline WinFillOval ccall WinFillOval "IIIIII-II" .end } winDrawOval :: !OSRect !PIC -> PIC winDrawOval _ _ = code { .inline WinDrawOval ccall WinDrawOval "IIIIII-II" .end } winInvertRoundRectangle :: !OSRect !Int !Int !PIC -> PIC winInvertRoundRectangle _ _ _ _ = code { .inline WinInvertRoundRectangle ccall WinInvertRoundRectangle "IIIIIIII-II" .end } winEraseRoundRectangle :: !OSRect !Int !Int !PIC -> PIC winEraseRoundRectangle _ _ _ _ = code { .inline WinEraseRoundRectangle ccall WinEraseRoundRectangle "IIIIIIII-II" .end } winFillRoundRectangle :: !OSRect !Int !Int !PIC -> PIC winFillRoundRectangle _ _ _ _ = code { .inline WinFillRoundRectangle ccall WinFillRoundRectangle "IIIIIIII-II" .end } winDrawRoundRectangle :: !OSRect !Int !Int !PIC -> PIC winDrawRoundRectangle _ _ _ _ = code { .inline WinDrawRoundRectangle ccall WinDrawRoundRectangle "IIIIIIII-II" .end } winScrollRectangle :: !OSRect !Pt !PIC -> (!OSRect,!PIC) winScrollRectangle _ _ _ = code { .inline WinScrollRectangle ccall WinScrollRectangle "IIIIIIII-IIIIII" .end } winScrollRectangle2 :: !OSRect !Pt !PIC -> (!OSRect,!PIC) winScrollRectangle2 _ _ _ = code { .inline WinScrollRectangle2 ccall WinScrollRectangle2 "IIIIIIII-IIIIII" .end } winCopyRectangle :: !OSRect !Pt !PIC -> PIC winCopyRectangle _ _ _ = code { .inline WinCopyRectangle ccall WinCopyRectangle "IIIIIIII-II" .end } winCopyRectangleTo :: !OSRect !Pt !PIC -> PIC winCopyRectangleTo _ _ _ = code { .inline WinCopyRectangleTo ccall WinCopyRectangleTo "IIIIIIII-II" .end } winMoveRectangle :: !OSRect !Pt !PIC -> PIC winMoveRectangle _ _ _ = code { .inline WinMoveRectangle ccall WinMoveRectangle "IIIIIIII-II" .end } winMoveRectangleTo :: !OSRect !Pt !PIC -> PIC winMoveRectangleTo _ _ _ = code { .inline WinMoveRectangleTo ccall WinMoveRectangleTo "IIIIIIII-II" .end } winInvertRectangle :: !OSRect !PIC -> PIC winInvertRectangle _ _ = code { .inline WinInvertRectangle ccall WinInvertRectangle "IIIIII-II" .end } winEraseRectangle :: !OSRect !PIC -> PIC winEraseRectangle _ _ = code { .inline WinEraseRectangle ccall WinEraseRectangle "IIIIII-II" .end } winFillRectangle :: !OSRect !PIC -> PIC winFillRectangle _ _ = code { .inline WinFillRectangle ccall WinFillRectangle "IIIIII-II" .end } winDrawRectangle :: !OSRect !PIC -> PIC winDrawRectangle _ _ = code { .inline WinDrawRectangle ccall WinDrawRectangle "IIIIII-II" .end } winDrawChar :: !Int !PIC -> PIC winDrawChar _ _ = code { .inline WinDrawChar ccall WinDrawChar "III-II" .end } winDrawString :: !{#Char} !PIC -> PIC winDrawString _ _ = code { .inline WinDrawString ccall WinDrawString "SII-II" .end } winDrawCCurve :: !OSRect !Pt !Pt !RGBcolor !PIC -> PIC winDrawCCurve _ _ _ _ _ = code { .inline WinDrawCCurve ccall WinDrawCCurve "IIIIIIIIIIIII-II" .end } winDrawCLine :: !Pt !Pt !RGBcolor !PIC -> PIC winDrawCLine _ _ _ _ = code { .inline WinDrawCLine ccall WinDrawCLine "IIIIIIIII-II" .end } winDrawCPoint :: !Pt !RGBcolor !PIC -> PIC winDrawCPoint _ _ _ = code { .inline WinDrawCPoint ccall WinDrawCPoint "IIIIIII-II" .end } winDrawCurve :: !OSRect !Pt !Pt !PIC -> PIC winDrawCurve _ _ _ _ = code { .inline WinDrawCurve ccall WinDrawCurve "IIIIIIIIII-II" .end } winDrawLine :: !Pt !Pt !PIC -> PIC winDrawLine _ _ _ = code { .inline WinDrawLine ccall WinDrawLine "IIIIII-II" .end } winDrawPoint :: !Pt !PIC -> PIC winDrawPoint _ _ = code { .inline WinDrawPoint ccall WinDrawPoint "IIII-II" .end } winLinePen :: !Pt !PIC -> PIC winLinePen _ _ = code { .inline WinLinePen ccall WinLinePen "IIII-II" .end } winLinePenTo :: !Pt !PIC -> PIC winLinePenTo _ _ = code { .inline WinLinePenTo ccall WinLinePenTo "IIII-II" .end } winMovePen :: !Pt !PIC -> PIC winMovePen _ _ = code { .inline WinMovePen ccall WinMovePen "IIII-II" .end } winMovePenTo :: !Pt !PIC -> PIC winMovePenTo _ _ = code { .inline WinMovePenTo ccall WinMovePenTo "IIII-II" .end } winGetPenPos :: !PIC -> (!Int,!Int,!HDC,!*OSToolbox) winGetPenPos _ = code { .inline WinGetPenPos ccall WinGetPenPos "II-IIII" .end } winSetPenSize :: !Int !PIC -> PIC winSetPenSize _ _ = code { .inline WinSetPenSize ccall WinSetPenSize "III-II" .end } winSetPattern :: !Int !PIC -> PIC winSetPattern _ _ = code { .inline WinSetPattern ccall WinSetPattern "III-II" .end } winSetMode :: !Int !PIC -> PIC winSetMode _ _ = code { .inline WinSetMode ccall WinSetMode "III-II" .end } winSetBackColor :: !RGBcolor !PIC -> PIC winSetBackColor _ _ = code { .inline WinSetBackColor ccall WinSetBackColor "IIIII-II" .end } winSetPenColor :: !RGBcolor !PIC -> PIC winSetPenColor _ _ = code { .inline WinSetPenColor ccall WinSetPenColor "IIIII-II" .end } winClipPicture :: !OSRect !PIC -> PIC winClipPicture _ _ = code { .inline WinClipPicture ccall WinClipPicture "IIIIII-II" .end } // PA: operation to set the clipping region. winClipRgnPicture :: !HRGN !PIC -> PIC winClipRgnPicture _ _ = code { .inline WinClipRgnPicture ccall WinClipRgnPicture "III-II" .end } // PA+++: new operation to set the complete clipping region. winSetClipRgnPicture :: !HRGN !PIC -> PIC winSetClipRgnPicture _ _ = code { .inline WinSetClipRgnPicture ccall WinSetClipRgnPicture "III-II" .end } // PA+++: new operation to retrieve the current clipping region. winGetClipRgnPicture :: !PIC -> (!HRGN,!PIC) winGetClipRgnPicture _ = code { .inline WinGetClipRgnPicture ccall WinGetClipRgnPicture "II-III" .end } winDeleteObject :: !Int !*OSToolbox -> *OSToolbox winDeleteObject _ _ = code { .inline WinDeleteObject ccall WinDeleteObject "II-I" .end } winDonePicture :: !PIC -> (!Int,!Int,!RGBcolor,!RGBcolor,!Pt,!Fnt,!PIC) winDonePicture _ = code { .inline WinDonePicture ccall WinDonePicture "II-IIIIIIIIIISIIII" .end } winInitPicture :: !Int !Int !RGBcolor !RGBcolor !Pt !Fnt !Pt !PIC -> PIC winInitPicture _ _ _ _ _ _ _ _ = code { .inline WinInitPicture ccall WinInitPicture "IIIIIIIIIISIIIIII-II" .end }