mirror of
https://github.com/vale981/emacs-ipython-notebook
synced 2025-03-05 17:11:41 -05:00
Add [+] button
This commit is contained in:
parent
1fe2c1cb15
commit
1848fc2f6a
1 changed files with 39 additions and 20 deletions
|
@ -40,6 +40,7 @@
|
||||||
|
|
||||||
(defvar ein:header-line-format '(:eval (ein:header-line)))
|
(defvar ein:header-line-format '(:eval (ein:header-line)))
|
||||||
(defvar ein:header-line-tab-map (make-sparse-keymap))
|
(defvar ein:header-line-tab-map (make-sparse-keymap))
|
||||||
|
(defvar ein:header-line-insert-tab-map (make-sparse-keymap))
|
||||||
(defvar ein:header-line-tab-help
|
(defvar ein:header-line-tab-help
|
||||||
"\
|
"\
|
||||||
mouse-1 (left click) : switch to this tab
|
mouse-1 (left click) : switch to this tab
|
||||||
|
@ -222,26 +223,33 @@ insert-prev insert-next move-prev move-next)"
|
||||||
(get-name (oref tab :get-name)))
|
(get-name (oref tab :get-name)))
|
||||||
(ein:join-str
|
(ein:join-str
|
||||||
" "
|
" "
|
||||||
(loop for i from 1
|
(append
|
||||||
for elem in list
|
(loop for i from 1
|
||||||
if (eq elem current)
|
for elem in list
|
||||||
collect (propertize
|
if (eq elem current)
|
||||||
(or (ein:and-let* ((name (funcall get-name elem)))
|
collect (propertize
|
||||||
(format "/%d: %s\\" i name))
|
(or (ein:and-let* ((name (funcall get-name elem)))
|
||||||
(format "/%d\\" i))
|
(format "/%d: %s\\" i name))
|
||||||
'ein:worksheet elem
|
(format "/%d\\" i))
|
||||||
'keymap ein:header-line-tab-map
|
'ein:worksheet elem
|
||||||
'help-echo ein:header-line-tab-help
|
'keymap ein:header-line-tab-map
|
||||||
'mouse-face 'highlight
|
'help-echo ein:header-line-tab-help
|
||||||
'face 'ein:notification-tab-selected)
|
'mouse-face 'highlight
|
||||||
else
|
'face 'ein:notification-tab-selected)
|
||||||
collect (propertize
|
else
|
||||||
(format "/%d\\" i)
|
collect (propertize
|
||||||
'ein:worksheet elem
|
(format "/%d\\" i)
|
||||||
'keymap ein:header-line-tab-map
|
'ein:worksheet elem
|
||||||
'help-echo ein:header-line-tab-help
|
'keymap ein:header-line-tab-map
|
||||||
'mouse-face 'highlight
|
'help-echo ein:header-line-tab-help
|
||||||
'face 'ein:notification-tab-normal)))))
|
'mouse-face 'highlight
|
||||||
|
'face 'ein:notification-tab-normal))
|
||||||
|
(list
|
||||||
|
(propertize "[+]"
|
||||||
|
'keymap ein:header-line-insert-tab-map
|
||||||
|
'help-echo "Click (mouse-1) to insert a new tab."
|
||||||
|
'mouse-face 'highlight
|
||||||
|
'face 'ein:notification-tab-normal))))))
|
||||||
|
|
||||||
|
|
||||||
;;; Header line
|
;;; Header line
|
||||||
|
@ -255,6 +263,9 @@ insert-prev insert-next move-prev move-next)"
|
||||||
(define-key map [header-line mouse-2] 'ein:header-line-delete-this-tab)
|
(define-key map [header-line mouse-2] 'ein:header-line-delete-this-tab)
|
||||||
(define-key map [header-line mouse-3] 'ein:header-line-pop-to-this-tab))
|
(define-key map [header-line mouse-3] 'ein:header-line-pop-to-this-tab))
|
||||||
|
|
||||||
|
(define-key ein:header-line-insert-tab-map
|
||||||
|
[header-line mouse-1] 'ein:header-line-insert-new-tab)
|
||||||
|
|
||||||
(defmacro ein:with-destructuring-bind-key-event (key-event &rest body)
|
(defmacro ein:with-destructuring-bind-key-event (key-event &rest body)
|
||||||
(declare (debug (form &rest form))
|
(declare (debug (form &rest form))
|
||||||
(indent 1))
|
(indent 1))
|
||||||
|
@ -312,6 +323,14 @@ Generated by `ein:header-line-define-mouse-commands'" slot)
|
||||||
ein:header-line-move-next-tab :move-next
|
ein:header-line-move-next-tab :move-next
|
||||||
)
|
)
|
||||||
|
|
||||||
|
(defun ein:header-line-insert-new-tab (key-event)
|
||||||
|
"Insert new tab."
|
||||||
|
(interactive "e")
|
||||||
|
(ein:header-line-select-window key-event)
|
||||||
|
(let ((notification (oref ein:%notification% :tab)))
|
||||||
|
(funcall (oref notification :insert-next)
|
||||||
|
(car (last (funcall (oref notification :get-list)))))))
|
||||||
|
|
||||||
(defun ein:header-line ()
|
(defun ein:header-line ()
|
||||||
(format
|
(format
|
||||||
"IP[%s]: %s"
|
"IP[%s]: %s"
|
||||||
|
|
Loading…
Add table
Reference in a new issue