コード例 #1
0
        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;
        }
コード例 #2
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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
ファイル: CefPrintSettings.cs プロジェクト: rajsite/lvcef
        /// <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
                );
        }
コード例 #5
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);
 }
コード例 #6
0
 /// <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);
 }
コード例 #7
0
ファイル: cef_browser_host_t.g.cs プロジェクト: whztt07/SDK
 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);
 }