internal static cef_render_handler_t *Alloc() { var ptr = (cef_render_handler_t *)Marshal.AllocHGlobal(_sizeof); *ptr = new cef_render_handler_t(); ptr->_base._size = (UIntPtr)_sizeof; return(ptr); }
private int add_ref(cef_render_handler_t* self) { lock (SyncRoot) { var result = ++_refct; if (result == 1) { lock (_roots) { _roots.Add((IntPtr)_self, this); } } return result; } }
private int get_screen_point(cef_render_handler_t* self, cef_browser_t* browser, int viewX, int viewY, int* screenX, int* screenY) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); int m_screenX = 0; int m_screenY = 0; var result = GetScreenPoint(m_browser, viewX, viewY, ref m_screenX, ref m_screenY); if (result) { *screenX = m_screenX; *screenY = m_screenY; return 1; } else return 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; }
internal static void Free(cef_render_handler_t* ptr) { Marshal.FreeHGlobal((IntPtr)ptr); }
internal static cef_render_handler_t* Alloc() { var ptr = (cef_render_handler_t*)Marshal.AllocHGlobal(_sizeof); *ptr = new cef_render_handler_t(); ptr->_base._size = (UIntPtr)_sizeof; return ptr; }
private int release(cef_render_handler_t* self) { lock (SyncRoot) { var result = --_refct; if (result == 0) { lock (_roots) { _roots.Remove((IntPtr)_self); } } return result; } }
private void CheckSelf(cef_render_handler_t* self) { if (_self != self) throw ExceptionBuilder.InvalidSelfReference(); }
private int get_refct(cef_render_handler_t* self) { return _refct; }
private void on_scroll_offset_changed(cef_render_handler_t* self, cef_browser_t* browser) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); OnScrollOffsetChanged(m_browser); }
private void on_cursor_change(cef_render_handler_t* self, cef_browser_t* browser, IntPtr cursor) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); OnCursorChange(m_browser, cursor); }
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); }
private void on_popup_show(cef_render_handler_t* self, cef_browser_t* browser, int show) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); OnPopupShow(m_browser, show != 0); }
private int get_screen_info(cef_render_handler_t* self, cef_browser_t* browser, cef_screen_info_t* screen_info) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); var m_screenInfo = new CefScreenInfo(screen_info); var result = GetScreenInfo(m_browser, m_screenInfo); m_screenInfo.Dispose(); m_browser.Dispose(); return result ? 1 : 0; }