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 void add_ref(cef_render_handler_t* self) { lock (SyncRoot) { var result = ++_refct; if (result == 1) { lock (_roots) { _roots.Add((IntPtr)_self, this); } } } }
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 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 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; }
internal static void Free(cef_render_handler_t* ptr) { Marshal.FreeHGlobal((IntPtr)ptr); }
private int has_one_ref(cef_render_handler_t* self) { lock (SyncRoot) { return _refct == 1 ? 1 : 0; } }
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 update_drag_cursor(cef_render_handler_t* self, cef_browser_t* browser, CefDragOperationsMask operation) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); UpdateDragCursor(m_browser, operation); }
private int start_dragging(cef_render_handler_t* self, cef_browser_t* browser, cef_drag_data_t* drag_data, CefDragOperationsMask allowed_ops, int x, int y) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); var m_dragData = CefDragData.FromNative(drag_data); var m_result = StartDragging(m_browser, m_dragData, allowed_ops, x, y); return m_result ? 1 : 0; }
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_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_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 int release(cef_render_handler_t* self) { lock (SyncRoot) { var result = --_refct; if (result == 0) { lock (_roots) { _roots.Remove((IntPtr)_self); } } return result; } }
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 void on_cursor_change(cef_render_handler_t* self, cef_browser_t* browser, IntPtr cursor, CefCursorType type, cef_cursor_info_t* custom_cursor_info) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); var m_cefCursorInfo = type == CefCursorType.Custom ? new CefCursorInfo(custom_cursor_info) : null; OnCursorChange(m_browser, cursor, type, m_cefCursorInfo); if (m_cefCursorInfo != null) m_cefCursorInfo.Dispose(); }