| 42 | */ |
| 43 | class CefSystem protected constructor() { |
| 44 | private val cefApp: CefApp |
| 45 | private val client: CefClient |
| 46 | private val router: CefMessageRouter |
| 47 | |
| 48 | fun interface PaintCallback { |
| 49 | fun onPaint(popup: Boolean, dirtyRects: Array<Rectangle>?, buffer: ByteBuffer?, width: Int, height: Int) |
| 50 | } |
| 51 | |
| 52 | fun interface MessageCallback { |
| 53 | fun message(id: Long, message: String?, answer: Consumer<String?>?) |
| 54 | } |
| 55 | |
| 56 | var callbacks: MutableMap<CefBrowser, MessageCallback> = MapMaker().weakKeys().makeMap() |
| 57 | var completionCallbacks: MutableMap<CefBrowser, Runnable> = MapMaker().weakKeys().makeMap() |
| 58 | fun makeBrowser( |
| 59 | w: Int, |
| 60 | h: Int, |
| 61 | callback: PaintCallback, |
| 62 | message: MessageCallback, |
| 63 | completionCallback: Runnable |
| 64 | ): CefBrowserOsrWithHandler { |
| 65 | // CefRenderer cefRenderer = new CefRenderer(false) { |
| 66 | // |
| 67 | // |
| 68 | // @Override |
| 69 | // public void onPaint(boolean popup, Rectangle[] dirtyRects, ByteBuffer buffer, int width, int height) { |
| 70 | // callback.onPaint(popup, dirtyRects, buffer, width, height); |
| 71 | // } |
| 72 | // }; |
| 73 | // CefRendererBrowserBuffer browser = (CefRendererBrowserBuffer) CefBrowserFactory.create(client, null, CefRendering.BYTEBUFFER, false, null, w, h, cefRenderer); |
| 74 | val r = Rectangle(0, 0, w, h) |
| 75 | val browser = CefBrowserOsrWithHandler( |
| 76 | client, |
| 77 | null, |
| 78 | CefRequestContext.getGlobalContext(), |
| 79 | object : CefRenderHandlerAdapter() { |
| 80 | override fun getViewRect(browser: CefBrowser): Rectangle { |
| 81 | // println(" ** getViewRect $browser ** ") |
| 82 | // return super.getViewRect(browser); |
| 83 | return r |
| 84 | } |
| 85 | |
| 86 | override fun getScreenPoint(browser: CefBrowser, viewPoint: Point): Point { |
| 87 | // println(" ** getScreenPoint $browser $viewPoint ** ") |
| 88 | return super.getScreenPoint(browser, viewPoint) |
| 89 | } |
| 90 | |
| 91 | override fun getDeviceScaleFactor(browser: CefBrowser): Double { |
| 92 | println(" ** getDeviceScaleFactor ** ") |
| 93 | return 1.0 |
| 94 | } |
| 95 | |
| 96 | override fun onPopupShow(browser: CefBrowser, show: Boolean) { |
| 97 | println(" ** onPopupShow ** ") |
| 98 | super.onPopupShow(browser, show) |
| 99 | } |
| 100 | |
| 101 | override fun onPopupSize(browser: CefBrowser, size: Rectangle) { |
no outgoing calls
no test coverage detected