# Interface ICefRenderHandler

Description
Hierarchy
Fields
Methods
Properties

## Unit

uCEFInterfaces

## Declaration

`type ICefRenderHandler = interface(ICefBaseRefCounted)`

## Description

Implement this interface to handle events when window rendering is disabled. The functions of this interface will be called on the UI thread.

UNKNOWN

<see href="https://bitbucket.org/chromiumembedded/cef/src/master/include/capi/cef_render_handler_capi.h">CEF source file: /include/capi/cef_render_handler_capi.h (cef_render_handler_t))

## Hierarchy

- IInterface
- ICefBaseRefCounted
- ICefRenderHandler

## Overview

### Methods

| `procedure GetAccessibilityHandler(var aAccessibilityHandler : ICefAccessibilityHandler);`
| `function GetRootScreenRect(const browser: ICefBrowser; var rect: TCefRect): Boolean;`
| `procedure GetViewRect(const browser: ICefBrowser; var rect: TCefRect);`
| `function GetScreenPoint(const browser: ICefBrowser; viewX, viewY: Integer; var screenX, screenY: Integer): Boolean;`
| `function GetScreenInfo(const browser: ICefBrowser; var screenInfo: TCefScreenInfo): Boolean;`
| `procedure OnPopupShow(const browser: ICefBrowser; show: Boolean);`
| `procedure OnPopupSize(const browser: ICefBrowser; const rect: PCefRect);`
| `procedure OnPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer);`
| `procedure OnAcceleratedPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const info: PCefAcceleratedPaintInfo);`
| `procedure GetTouchHandleSize(const browser: ICefBrowser; orientation: TCefHorizontalAlignment; var size: TCefSize);`
| `procedure OnTouchHandleStateChanged(const browser: ICefBrowser; const state: TCefTouchHandleState);`
| `function OnStartDragging(const browser: ICefBrowser; const dragData: ICefDragData; allowedOps: TCefDragOperations; x, y: Integer): Boolean;`
| `procedure OnUpdateDragCursor(const browser: ICefBrowser; operation: TCefDragOperation);`
| `procedure OnScrollOffsetChanged(const browser: ICefBrowser; x, y: Double);`
| `procedure OnIMECompositionRangeChanged(const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect);`
| `procedure OnTextSelectionChanged(const browser: ICefBrowser; const selected_text: ustring; const selected_range: PCefRange);`
| `procedure OnVirtualKeyboardRequested(const browser: ICefBrowser; input_mode: TCefTextInpuMode);`
| `procedure RemoveReferences;`

## Description

### Methods

| `procedure GetAccessibilityHandler(var aAccessibilityHandler : ICefAccessibilityHandler);`

Return the handler for accessibility notifications. If no handler is provided the default implementation will be used.

###### Attributes

GUID['{1FC1C22B-085A-4741-9366-5249B88EC410}']

| `function GetRootScreenRect(const browser: ICefBrowser; var rect: TCefRect): Boolean;`
Called to retrieve the root window rectangle in screen DIP coordinates. Return true (1) if the rectangle was provided. If this function returns false (0) the rectangle from GetViewRect will be used.

| `procedure GetViewRect(const browser: ICefBrowser; var rect: TCefRect);`
Called to retrieve the view rectangle in screen DIP coordinates. This function must always provide a non-NULL rectangle.

| `function GetScreenPoint(const browser: ICefBrowser; viewX, viewY: Integer; var screenX, screenY: Integer): Boolean;`
Called to retrieve the translation from view DIP coordinates to screen coordinates. Windows/Linux should provide screen device (pixel) coordinates and MacOS should provide screen DIP coordinates. Return true (1) if the requested coordinates were provided.

| `function GetScreenInfo(const browser: ICefBrowser; var screenInfo: TCefScreenInfo): Boolean;`
Called to allow the client to fill in the CefScreenInfo object with appropriate values. Return true (1) if the |screen_info| structure has been modified. If the screen info rectangle is left NULL the rectangle from GetViewRect will be used. If the rectangle is still NULL or invalid popups may not be drawn correctly.

| `procedure OnPopupShow(const browser: ICefBrowser; show: Boolean);`
Called when the browser wants to show or hide the popup widget. The popup should be shown if |show| is true (1) and hidden if |show| is false (0).

| `procedure OnPopupSize(const browser: ICefBrowser; const rect: PCefRect);`
Called when the browser wants to move or resize the popup widget. |rect| contains the new location and size in view coordinates.

| `procedure OnPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const buffer: Pointer; width, height: Integer);`

Called when an element should be painted. Pixel values passed to this function are scaled relative to view coordinates based on the value of TCefScreenInfo.device_scale_factor returned from GetScreenInfo. |type| indicates whether the element is the view or the popup widget. |buffer| contains the pixel data for the whole image. |dirtyRects| contains the set of rectangles in pixel coordinates that need to be repainted. |buffer| will be |width|*|height|*4 bytes in size and represents a BGRA image with an upper-left origin. This function is only called when TCefWindowInfo.shared_texture_enabled is set to false (0).

| `procedure OnAcceleratedPaint(const browser: ICefBrowser; kind: TCefPaintElementType; dirtyRectsCount: NativeUInt; const dirtyRects: PCefRectArray; const info: PCefAcceleratedPaintInfo);`

Called when an element has been rendered to the shared texture handle. |type| indicates whether the element is the view or the popup widget. |dirtyRects| contains the set of rectangles in pixel coordinates that need to be repainted. |info| contains the shared handle; on Windows it is a HANDLE to a texture that can be opened with D3D11 OpenSharedResource1 or D3D12 OpenSharedHandle, on macOS it is an IOSurface pointer that can be opened with Metal or OpenGL, and on Linux it contains several planes, each with an fd to the underlying system native buffer.

The underlying implementation uses a pool to deliver frames. As a result, the handle may differ every frame depending on how many frames are in- progress. The handle's resource cannot be cached and cannot be accessed outside of this callback. It should be reopened each time this callback is executed and the contents should be copied to a texture owned by the client application. The contents of |info| will be released back to the pool after this callback returns.

| `procedure GetTouchHandleSize(const browser: ICefBrowser; orientation: TCefHorizontalAlignment; var size: TCefSize);`
Called to retrieve the size of the touch handle for the specified |orientation|.

| `procedure OnTouchHandleStateChanged(const browser: ICefBrowser; const state: TCefTouchHandleState);`
Called when touch handle state is updated. The client is responsible for rendering the touch handles.

| `function OnStartDragging(const browser: ICefBrowser; const dragData: ICefDragData; allowedOps: TCefDragOperations; x, y: Integer): Boolean;`

Called when the user starts dragging content in the web view. Contextual information about the dragged content is supplied by |drag_data|. (|x|, |y|) is the drag start location in screen coordinates. OS APIs that run a system message loop may be used within the StartDragging call.

Return false (0) to abort the drag operation. Don't call any of ICefBrowserHost.DragSource*Ended* functions after returning false (0).

Return true (1) to handle the drag operation. Call ICefBrowserHost.DragSourceEndedAt and DragSourceSystemDragEnded either synchronously or asynchronously to inform the web view that the drag operation has ended.

| `procedure OnUpdateDragCursor(const browser: ICefBrowser; operation: TCefDragOperation);`
Called when the web view wants to update the mouse cursor during a drag & drop operation. |operation| describes the allowed operation (none, move, copy, link).

| `procedure OnScrollOffsetChanged(const browser: ICefBrowser; x, y: Double);`
Called when the scroll offset has changed.

| `procedure OnIMECompositionRangeChanged(const browser: ICefBrowser; const selected_range: PCefRange; character_boundsCount: NativeUInt; const character_bounds: PCefRect);`
Called when the IME composition range has changed. |selected_range| is the range of characters that have been selected. |character_bounds| is the bounds of each character in view coordinates.

| `procedure OnTextSelectionChanged(const browser: ICefBrowser; const selected_text: ustring; const selected_range: PCefRange);`
Called when text selection has changed for the specified |browser|. |selected_text| is the currently selected text and |selected_range| is the character range.

| `procedure OnVirtualKeyboardRequested(const browser: ICefBrowser; input_mode: TCefTextInpuMode);`
Called when an on-screen keyboard should be shown or hidden for the specified |browser|. |input_mode| specifies what kind of keyboard should be opened. If |input_mode| is CEF_TEXT_INPUT_MODE_NONE, any existing keyboard for this browser should be hidden.

| `procedure RemoveReferences;`
Custom procedure to clear all references.

Generated by PasDoc 0.17.0.snapshot.