java/org/cef/handler/CefRenderHandler.java (34 lines of code) (raw):

// Copyright (c) 2014 The Chromium Embedded Framework Authors. All rights // reserved. Use of this source code is governed by a BSD-style license that // can be found in the LICENSE file. package org.cef.handler; import org.cef.browser.CefBrowser; import org.cef.browser.CefPaintEvent; import org.cef.callback.CefDragData; import org.cef.misc.CefRange; import java.awt.Point; import java.awt.Rectangle; import java.nio.ByteBuffer; import java.util.function.Consumer; /** * Implement this interface to handle events when window rendering is disabled. * The methods of this class will be called on the UI thread. */ public interface CefRenderHandler { /** * Retrieve the view rectangle. * @param browser The browser generating the event. * @return The view rectangle. */ public Rectangle getViewRect(CefBrowser browser); /** * Retrieve the screen info. * @param browser The browser generating the event. * @param screenInfo The screenInfo * @return True if this callback was handled. False to fallback to defaults. */ public boolean getScreenInfo(CefBrowser browser, CefScreenInfo screenInfo); /** * Retrieve the screen point for the specified view point. * @param browser The browser generating the event. * @param viewPoint The point in the view. * @return The screen point. */ public Point getScreenPoint(CefBrowser browser, Point viewPoint); /** * Retrieve the scale factor of the screen the browser is shown at. */ public double getDeviceScaleFactor(CefBrowser browser); /** * Show or hide the popup window. * @param browser The browser generating the event. * @param show True if the popup window is being shown. */ public void onPopupShow(CefBrowser browser, boolean show); /** * Size the popup window. * @param browser The browser generating the event. * @param size Size of the popup window. */ public void onPopupSize(CefBrowser browser, Rectangle size); /** * Handle painting. * @param browser The browser generating the event. * @param popup True if painting a popup window. * @param dirtyRects Array of dirty regions. * @param buffer Pixel buffer for the whole window. * @param width Width of the buffer. * @param height Height of the buffer. */ public void onPaint(CefBrowser browser, boolean popup, Rectangle[] dirtyRects, ByteBuffer buffer, int width, int height); default void onAcceleratedPaint(CefBrowser browser, boolean popup, Rectangle[] dirtyRects, CefAcceleratedPaintInfo info) { // remove after propagation the changes } /** * Add provided listener. * @param listener Code that gets executed after a frame was rendered. */ default public void addOnPaintListener(Consumer<CefPaintEvent> listener) { } /** * Remove existing listeners and replace with provided listener. * @param listener Code that gets executed after a frame was rendered. */ default public void setOnPaintListener(Consumer<CefPaintEvent> listener) { } /** * Remove provided listener. * @param listener Code that gets executed after a frame was rendered. */ default public void removeOnPaintListener(Consumer<CefPaintEvent> listener) { } /** * Handle cursor changes. * @param browser The browser generating the event. * @param cursorType The new cursor type. * @return true if the cursor change was handled. */ public boolean onCursorChange(CefBrowser browser, int cursorType); /** * Called when the user starts dragging content in the web view. Contextual * information about the dragged content is supplied by dragData. * OS APIs that run a system message loop may be used within the * StartDragging call. * * Return false to abort the drag operation. Don't call any of * CefBrowser-dragSource*Ended* methods after returning false. * * Return true to handle the drag operation. Call * CefBrowser.dragSourceEndedAt and CefBrowser.ragSourceSystemDragEnded either * synchronously or asynchronously to inform the web view that the drag * operation has ended. * @param browser The browser generating the event. * @param dragData Contextual information about the dragged content * @param mask Describes the allowed operation (none, move, copy, link). * @param x Coordinate within CefBrowser * @param y Coordinate within CefBrowser * @return false to abort the drag operation or true to handle the drag operation. */ public boolean startDragging(CefBrowser browser, CefDragData dragData, int mask, int x, int y); /** * Called when the web view wants to update the mouse cursor during a * drag & drop operation. * * @param browser The browser generating the event. * @param operation Describes the allowed operation (none, move, copy, link). */ public void updateDragCursor(CefBrowser browser, int operation); /** * Called when the IME composition range has changed. * * @param browser the browser for that the composition has been changed * @param selectionRange the range of characters that have been selected * @param characterBounds the bounds of each character in view coordinates */ public default void OnImeCompositionRangeChanged(CefBrowser browser, CefRange selectionRange, Rectangle[] characterBounds) { // To be removed } /** * Called when text selection has changed * * @param browser the browser for that the selection has been changed * @param selectedText the currently selected text * @param selectionRange the character range */ public default void OnTextSelectionChanged(CefBrowser browser, String selectedText, CefRange selectionRange) { // To be removed } }