;; --------------------------------------------------------------------
;;; Commentary:
-;;
-;; See xwidget.c for more api functions.
+
+;; See xwidget.c for more API functions.
+
+;;; Code:
;; This breaks compilation when we don't have xwidgets.
;; And is pointless when we do, since it's in C and so preloaded.
;;(require 'xwidget-internal)
-;;; Code:
-
(require 'cl-lib)
(require 'bookmark)
(require 'format-spec)
(xwidget-perform-lispy-event (xwidget-webkit-current-session)
last-command-event)))
-;;todo.
-;; - check that the webkit support is compiled in
-(defvar xwidget-webkit-mode-map
- (let ((map (make-sparse-keymap)))
- (define-key map "g" 'xwidget-webkit-browse-url)
- (define-key map "a" 'xwidget-webkit-adjust-size-dispatch)
- (define-key map "b" 'xwidget-webkit-back)
- (define-key map "f" 'xwidget-webkit-forward)
- (define-key map "r" 'xwidget-webkit-reload)
- (define-key map "\C-m" 'xwidget-webkit-insert-string)
- (define-key map "w" 'xwidget-webkit-current-url)
- (define-key map "+" 'xwidget-webkit-zoom-in)
- (define-key map "-" 'xwidget-webkit-zoom-out)
- (define-key map "e" 'xwidget-webkit-edit-mode)
- (define-key map "\C-r" 'xwidget-webkit-isearch-mode)
- (define-key map "\C-s" 'xwidget-webkit-isearch-mode)
- (define-key map "H" 'xwidget-webkit-browse-history)
-
- ;;similar to image mode bindings
- (define-key map (kbd "SPC") 'xwidget-webkit-scroll-up)
- (define-key map (kbd "S-SPC") 'xwidget-webkit-scroll-down)
- (define-key map (kbd "DEL") 'xwidget-webkit-scroll-down)
-
- (define-key map [remap scroll-up] 'xwidget-webkit-scroll-up-line)
- (define-key map [remap scroll-up-command] 'xwidget-webkit-scroll-up)
-
- (define-key map [remap scroll-down] 'xwidget-webkit-scroll-down-line)
- (define-key map [remap scroll-down-command] 'xwidget-webkit-scroll-down)
-
- (define-key map [remap forward-char] 'xwidget-webkit-scroll-forward)
- (define-key map [remap backward-char] 'xwidget-webkit-scroll-backward)
- (define-key map [remap right-char] 'xwidget-webkit-scroll-forward)
- (define-key map [remap left-char] 'xwidget-webkit-scroll-backward)
- (define-key map [remap previous-line] 'xwidget-webkit-scroll-down-line)
- (define-key map [remap next-line] 'xwidget-webkit-scroll-up-line)
-
- ;; (define-key map [remap move-beginning-of-line] 'image-bol)
- ;; (define-key map [remap move-end-of-line] 'image-eol)
- (define-key map [remap beginning-of-buffer] 'xwidget-webkit-scroll-top)
- (define-key map [remap end-of-buffer] 'xwidget-webkit-scroll-bottom)
- map)
- "Keymap for `xwidget-webkit-mode'.")
+(defvar-keymap xwidget-webkit-mode-map
+ :doc "Keymap for `xwidget-webkit-mode'."
+ "g" #'xwidget-webkit-browse-url
+ "a" #'xwidget-webkit-adjust-size-dispatch
+ "b" #'xwidget-webkit-back
+ "f" #'xwidget-webkit-forward
+ "r" #'xwidget-webkit-reload
+ "RET" #'xwidget-webkit-insert-string
+ "w" #'xwidget-webkit-current-url
+ "+" #'xwidget-webkit-zoom-in
+ "-" #'xwidget-webkit-zoom-out
+ "e" #'xwidget-webkit-edit-mode
+ "C-r" #'xwidget-webkit-isearch-mode
+ "C-s" #'xwidget-webkit-isearch-mode
+ "H" #'xwidget-webkit-browse-history
+ ;; Similar to image mode bindings
+ "SPC" #'xwidget-webkit-scroll-up
+ "S-SPC" #'xwidget-webkit-scroll-down
+ "DEL" #'xwidget-webkit-scroll-down
+ "<remap> <scroll-up>" #'xwidget-webkit-scroll-up-line
+ "<remap> <scroll-up-command>" #'xwidget-webkit-scroll-up
+ "<remap> <scroll-down>" #'xwidget-webkit-scroll-down-line
+ "<remap> <scroll-down-command>" #'xwidget-webkit-scroll-down
+ "<remap> <forward-char>" #'xwidget-webkit-scroll-forward
+ "<remap> <backward-char>" #'xwidget-webkit-scroll-backward
+ "<remap> <right-char>" #'xwidget-webkit-scroll-forward
+ "<remap> <left-char>" #'xwidget-webkit-scroll-backward
+ "<remap> <previous-line>" #'xwidget-webkit-scroll-down-line
+ "<remap> <next-line>" #'xwidget-webkit-scroll-up-line
+ ;; "<remap> <move-beginning-of-line>" #'image-bol
+ ;; "<remap> <move-end-of-line>" #'image-eol
+ "<remap> <beginning-of-buffer>" #'xwidget-webkit-scroll-top
+ "<remap> <end-of-buffer>" #'xwidget-webkit-scroll-bottom)
(easy-menu-define nil xwidget-webkit-mode-map "Xwidget WebKit menu."
(list "Xwidget WebKit"
(set-xwidget-plist xwidget
(plist-put (xwidget-plist xwidget) propname value)))
-(defvar-keymap xwidget-webkit-edit-mode-map :full t)
-
-(define-key xwidget-webkit-edit-mode-map [backspace] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [tab] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [left] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [right] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [up] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [down] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [return] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [C-left] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [C-right] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [C-up] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [C-down] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [C-return] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [S-left] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [S-right] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [S-up] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [S-down] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [S-return] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [M-left] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [M-right] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [M-up] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [M-down] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [M-return] 'xwidget-webkit-pass-command-event)
-(define-key xwidget-webkit-edit-mode-map [C-backspace] 'xwidget-webkit-pass-command-event)
+(defvar-keymap xwidget-webkit-edit-mode-map
+ :full t
+ "<backspace>" #'xwidget-webkit-pass-command-event
+ "<tab>" #'xwidget-webkit-pass-command-event
+ "<left>" #'xwidget-webkit-pass-command-event
+ "<right>" #'xwidget-webkit-pass-command-event
+ "<up>" #'xwidget-webkit-pass-command-event
+ "<down>" #'xwidget-webkit-pass-command-event
+ "<return>" #'xwidget-webkit-pass-command-event
+ "C-<left>" #'xwidget-webkit-pass-command-event
+ "C-<right>" #'xwidget-webkit-pass-command-event
+ "C-<up>" #'xwidget-webkit-pass-command-event
+ "C-<down>" #'xwidget-webkit-pass-command-event
+ "C-<return>" #'xwidget-webkit-pass-command-event
+ "S-<left>" #'xwidget-webkit-pass-command-event
+ "S-<right>" #'xwidget-webkit-pass-command-event
+ "S-<up>" #'xwidget-webkit-pass-command-event
+ "S-<down>" #'xwidget-webkit-pass-command-event
+ "S-<return>" #'xwidget-webkit-pass-command-event
+ "M-<left>" #'xwidget-webkit-pass-command-event
+ "M-<right>" #'xwidget-webkit-pass-command-event
+ "M-<up>" #'xwidget-webkit-pass-command-event
+ "M-<down>" #'xwidget-webkit-pass-command-event
+ "M-<return>" #'xwidget-webkit-pass-command-event
+ "C-<backspace>" #'xwidget-webkit-pass-command-event)
(define-minor-mode xwidget-webkit-edit-mode
"Minor mode for editing the content of WebKit buffers.