namespace Cef3 { using System; using System.Collections.Generic; using System.Diagnostics; using System.Runtime.InteropServices; using Cef3.Interop; public abstract unsafe partial class CefClient { private cef_context_menu_handler_t* get_context_menu_handler(cef_client_t* self) { CheckSelf(self); var result = GetContextMenuHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for context menus. If no handler is provided the default /// implementation will be used. /// protected virtual CefContextMenuHandler GetContextMenuHandler() { return null; } private cef_dialog_handler_t* get_dialog_handler(cef_client_t* self) { CheckSelf(self); var result = GetDialogHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for dialogs. If no handler is provided the default /// implementation will be used. /// protected virtual CefDialogHandler GetDialogHandler() { return null; } private cef_display_handler_t* get_display_handler(cef_client_t* self) { CheckSelf(self); var result = GetDisplayHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for browser display state events. /// protected virtual CefDisplayHandler GetDisplayHandler() { return null; } private cef_download_handler_t* get_download_handler(cef_client_t* self) { CheckSelf(self); var result = GetDownloadHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for download events. If no handler is returned downloads /// will not be allowed. /// protected virtual CefDownloadHandler GetDownloadHandler() { return null; } private cef_drag_handler_t* get_drag_handler(cef_client_t* self) { CheckSelf(self); var result = GetDragHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for drag events. /// protected virtual CefDragHandler GetDragHandler() { return null; } private cef_find_handler_t* get_find_handler(cef_client_t* self) { CheckSelf(self); var result = GetFindHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for find result events. /// protected virtual CefFindHandler GetFindHandler() { return null; } private cef_focus_handler_t* get_focus_handler(cef_client_t* self) { CheckSelf(self); var result = GetFocusHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for focus events. /// protected virtual CefFocusHandler GetFocusHandler() { return null; } private cef_geolocation_handler_t* get_geolocation_handler(cef_client_t* self) { CheckSelf(self); var result = GetGeolocationHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for geolocation permissions requests. If no handler is /// provided geolocation access will be denied by default. /// protected virtual CefGeolocationHandler GetGeolocationHandler() { return null; } private cef_jsdialog_handler_t* get_jsdialog_handler(cef_client_t* self) { CheckSelf(self); var result = GetJSDialogHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for JavaScript dialogs. If no handler is provided the /// default implementation will be used. /// protected virtual CefJSDialogHandler GetJSDialogHandler() { return null; } private cef_keyboard_handler_t* get_keyboard_handler(cef_client_t* self) { CheckSelf(self); var result = GetKeyboardHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for keyboard events. /// protected virtual CefKeyboardHandler GetKeyboardHandler() { return null; } private cef_life_span_handler_t* get_life_span_handler(cef_client_t* self) { CheckSelf(self); var result = GetLifeSpanHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for browser life span events. /// protected virtual CefLifeSpanHandler GetLifeSpanHandler() { return null; } private cef_load_handler_t* get_load_handler(cef_client_t* self) { CheckSelf(self); var result = GetLoadHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for browser load status events. /// protected virtual CefLoadHandler GetLoadHandler() { return null; } private cef_render_handler_t* get_render_handler(cef_client_t* self) { CheckSelf(self); var result = GetRenderHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for off-screen rendering events. /// protected virtual CefRenderHandler GetRenderHandler() { return null; } private cef_request_handler_t* get_request_handler(cef_client_t* self) { CheckSelf(self); var result = GetRequestHandler(); return result != null ? result.ToNative() : null; } /// /// Return the handler for browser request events. /// protected virtual CefRequestHandler GetRequestHandler() { return null; } private int on_process_message_received(cef_client_t* self, cef_browser_t* browser, CefProcessId source_process, cef_process_message_t* message) { CheckSelf(self); var m_browser = CefBrowser.FromNative(browser); var m_message = CefProcessMessage.FromNative(message); var result = OnProcessMessageReceived(m_browser, source_process, m_message); // m_browser.Dispose(); m_message.Dispose(); return result ? 1 : 0; } /// /// Called when a new message is received from a different process. Return true /// if the message was handled or false otherwise. Do not keep a reference to /// or attempt to access the message outside of this callback. /// protected virtual bool OnProcessMessageReceived(CefBrowser browser, CefProcessId sourceProcess, CefProcessMessage message) { return false; } } }