예제 #1
0
 public unsafe int OnKeyEvent(cef_browser_t *browser, [Immutable] cef_key_event_t * @event, CefEventHandle os_event)
 {
     fixed(cef_keyboard_handler_t *self = &this)
     {
         return(((delegate * unmanaged[Stdcall] < cef_keyboard_handler_t *, cef_browser_t *, cef_key_event_t *, CefEventHandle, int >)on_key_event)(self, browser, @event, os_event));
     }
 }
예제 #2
0
        internal unsafe void ToNative(cef_key_event_t *ptr)
        {
            if (ptr == null)
            {
                throw new ArgumentNullException("ptr");
            }

            ptr->type                    = EventType;
            ptr->modifiers               = Modifiers;
            ptr->windows_key_code        = WindowsKeyCode;
            ptr->native_key_code         = NativeKeyCode;
            ptr->is_system_key           = IsSystemKey ? 1 : 0;
            ptr->character               = Character;
            ptr->unmodified_character    = UnmodifiedCharacter;
            ptr->focus_on_editable_field = FocusOnEditableField ? 1 : 0;
        }
예제 #3
0
        public static void send_key_event(cef_browser_host_t *self, cef_key_event_t * @event)
        {
            send_key_event_delegate d;
            var p = self->_send_key_event;

            if (p == _p1b)
            {
                d = _d1b;
            }
            else
            {
                d = (send_key_event_delegate)Marshal.GetDelegateForFunctionPointer(p, typeof(send_key_event_delegate));
                if (_p1b == IntPtr.Zero)
                {
                    _d1b = d; _p1b = p;
                }
            }
            d(self, @event);
        }
예제 #4
0
        internal static unsafe CefKeyEvent FromNative(cef_key_event_t *ptr)
        {
            if (ptr == null)
            {
                throw new ArgumentNullException("ptr");
            }

            return(new CefKeyEvent
            {
                EventType = ptr->type,
                Modifiers = ptr->modifiers,
                WindowsKeyCode = ptr->windows_key_code,
                NativeKeyCode = ptr->native_key_code,
                IsSystemKey = ptr->is_system_key != 0,
                Character = (char)ptr->character,
                UnmodifiedCharacter = (char)ptr->unmodified_character,
                FocusOnEditableField = ptr->focus_on_editable_field != 0,
            });
        }
예제 #5
0
        private int on_key_event(cef_keyboard_handler_t *self, cef_browser_t *browser, cef_key_event_t * @event, IntPtr os_event)
        {
            CheckSelf(self);

            var m_browser = CefBrowser.FromNative(browser);
            var m_event   = CefKeyEvent.FromNative(@event);
            // TODO: wrap cef_event_handle_t (os_event)
            IntPtr m_os_event = IntPtr.Zero;

            if (os_event != IntPtr.Zero)
            {
            }

            var result = OnKeyEvent(m_browser, m_event, m_os_event);

            return(result ? 1 : 0);
        }
예제 #6
0
 public unsafe extern void SendKeyEvent([Immutable] cef_key_event_t * @event);
 /// <summary>
 /// Send a key event to the browser.
 /// </summary>
 public void SendKeyEvent(cef_key_event_t * @event)
 {
     throw new NotImplementedException(); // TODO: CefBrowserHost.SendKeyEvent
 }
예제 #8
0
 public unsafe extern int OnKeyEvent(cef_browser_t *browser, [Immutable] cef_key_event_t * @event, CefEventHandle os_event);
예제 #9
0
 public unsafe extern int OnPreKeyEvent(cef_browser_t *browser, [Immutable] cef_key_event_t * @event, CefEventHandle os_event, int *is_keyboard_shortcut);
예제 #10
0
        /// <summary>
        /// Called before a keyboard event is sent to the renderer. |event| contains
        /// information about the keyboard event. |os_event| is the operating system
        /// event message, if any. Return true if the event was handled or false
        /// otherwise. If the event will be handled in OnKeyEvent() as a keyboard
        /// shortcut set |is_keyboard_shortcut| to true and return false.
        /// </summary>
        // protected abstract int OnPreKeyEvent(cef_browser_t* browser, cef_key_event_t* @event, IntPtr os_event, int* is_keyboard_shortcut);

        private int on_key_event(cef_keyboard_handler_t *self, cef_browser_t *browser, cef_key_event_t * @event, IntPtr os_event)
        {
            CheckSelf(self);
            throw new NotImplementedException(); // TODO: CefKeyboardHandler.OnKeyEvent
        }