diff --git a/lcl/interfaces/cocoa/cocoawinapi.inc b/lcl/interfaces/cocoa/cocoawinapi.inc index 1d16072367..2c641fa38a 100644 --- a/lcl/interfaces/cocoa/cocoawinapi.inc +++ b/lcl/interfaces/cocoa/cocoawinapi.inc @@ -2047,6 +2047,34 @@ begin end; end; +{------------------------------------------------------------------------------ +Method: PtInRegion +Params: RNG - Handle to region + X, Y - Point +Returns: If the specified point lies in the region +------------------------------------------------------------------------------} +function TCocoaWidgetSet.PtInRegion(RGN: HRGN; X, Y: Integer): Boolean; +begin + Result := False; + + {$IFDEF VerboseWinAPI} + DebugLn('TCocoaWidgetSet.PtInRegion RGN: ' + DbgS(RGN), ' X: ', DbgS(X), + ' Y: ', DbgS(Y)); + {$ENDIF} + + if not (TObject(RGN) is TCocoaRegion) then + begin + DebugLn('TCocoaWidgetSet.PtInRegion Error - invalid region ', DbgS(RGN), '!'); + Exit; + end; + + Result := TCocoaRegion(RGN).ContainsPoint(Classes.Point(X, Y)); + + {$IFDEF VerboseWinAPI} + DebugLn('TCocoaRegion.PtInRegion Result: ' + DbgS(Result)); + {$ENDIF} +end; + function TCocoaWidgetSet.Rectangle(DC: HDC; X1, Y1, X2, Y2: Integer): Boolean; var ctx: TCocoaContext; diff --git a/lcl/interfaces/cocoa/cocoawinapih.inc b/lcl/interfaces/cocoa/cocoawinapih.inc index 2b6e81a1fb..a9a61bfafd 100644 --- a/lcl/interfaces/cocoa/cocoawinapih.inc +++ b/lcl/interfaces/cocoa/cocoawinapih.inc @@ -148,6 +148,7 @@ function PolyBezier(DC: HDC; Points: PPoint; NumPts: Integer; Filled, Continuous function Polygon(DC: HDC; Points: PPoint; NumPts: Integer; Winding: boolean): boolean; override; function Polyline(DC: HDC; Points: PPoint; NumPts: Integer): boolean; override; function PostMessage(Handle: HWND; Msg: Cardinal; wParam: WParam; lParam: LParam): Boolean; override; +function PtInRegion(RGN: HRGN; X, Y: Integer): Boolean; override; function Rectangle(DC: HDC; X1, Y1, X2, Y2: Integer): Boolean; override; function RectVisible(dc : hdc; const ARect: TRect) : Boolean; override;