private int get_view_rect(cef_render_handler_t* self, cef_browser_t* browser, cef_rect_t* rect) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); var m_rect = new CefRectangle(); var result = GetViewRect(m_browser, ref m_rect); if (result) { rect->x = m_rect.X; rect->y = m_rect.Y; rect->width = m_rect.Width; rect->height = m_rect.Height; return 1; } else return 0; }
private void on_paint(cef_render_handler_t* self, cef_browser_t* browser, CefPaintElementType type, UIntPtr dirtyRectsCount, cef_rect_t* dirtyRects, void* buffer, int width, int height) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); // TODO: reuse arrays? var m_dirtyRects = new CefRectangle[(int)dirtyRectsCount]; var count = (int)dirtyRectsCount; var rect = dirtyRects; for (var i = 0; i < count; i++) { m_dirtyRects[i].X = rect->x; m_dirtyRects[i].Y = rect->y; m_dirtyRects[i].Width = rect->width; m_dirtyRects[i].Height = rect->height; rect++; } OnPaint(m_browser, type, m_dirtyRects, (IntPtr)buffer, width, height); }
private void on_popup_size(cef_render_handler_t* self, cef_browser_t* browser, cef_rect_t* rect) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); var m_rect = new CefRectangle(rect->x, rect->y, rect->width, rect->height); OnPopupSize(m_browser, m_rect); }
/// <summary> /// Set the printer printable area in device units. /// Some platforms already provide flipped area. Set |landscape_needs_flip| /// to false on those platforms to avoid double flipping. /// </summary> public void SetPrinterPrintableArea(CefSize physicalSizeDeviceUnits, CefRectangle printableAreaDeviceUnits, bool landscapeNeedsFlip) { var n_physicalSizeDeviceUnits = new cef_size_t( physicalSizeDeviceUnits.Width, physicalSizeDeviceUnits.Height ); var n_printableAreaDeviceUnits = new cef_rect_t( printableAreaDeviceUnits.X, printableAreaDeviceUnits.Y, printableAreaDeviceUnits.Width, printableAreaDeviceUnits.Height ); cef_print_settings_t.set_printer_printable_area( _self, &n_physicalSizeDeviceUnits, &n_printableAreaDeviceUnits, landscapeNeedsFlip ? 1 : 0 ); }
public static void set_printer_printable_area(cef_print_settings_t* self, cef_size_t* physical_size_device_units, cef_rect_t* printable_area_device_units, int landscape_needs_flip) { set_printer_printable_area_delegate d; var p = self->_set_printer_printable_area; if (p == _p8) { d = _d8; } else { d = (set_printer_printable_area_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(set_printer_printable_area_delegate)); if (_p8 == IntPtr.Zero) { _d8 = d; _p8 = p; } } d(self, physical_size_device_units, printable_area_device_units, landscape_needs_flip); }
/// <summary> /// Invalidate the |dirtyRect| region of the view. The browser will call /// CefRenderHandler::OnPaint asynchronously with the updated regions. This /// method is only used when window rendering is disabled. /// </summary> public void Invalidate(CefRectangle dirtyRect, CefPaintElementType type) { var n_dirtyRect = new cef_rect_t(dirtyRect.X, dirtyRect.Y, dirtyRect.Width, dirtyRect.Height); cef_browser_host_t.invalidate(_self, &n_dirtyRect, type); }
public static void invalidate(cef_browser_host_t* self, cef_rect_t* dirtyRect, CefPaintElementType type) { invalidate_delegate d; var p = self->_invalidate; if (p == _p1a) { d = _d1a; } else { d = (invalidate_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(invalidate_delegate)); if (_p1a == IntPtr.Zero) { _d1a = d; _p1a = p; } } d(self, dirtyRect, type); }