branch: externals/sketch-mode commit ec35bb44a6a6c7c1ec997908ad27801ee4ee937a Author: Daniel Nicolai <dalanico...@gmail.com> Commit: Daniel Nicolai <dalanico...@gmail.com>
Add xml processing instruction and DOCTYPE element (see #4) --- sketch-mode.el | 27 +++++++++++++++++++-------- 1 file changed, 19 insertions(+), 8 deletions(-) diff --git a/sketch-mode.el b/sketch-mode.el index 4713604..3ebe1ef 100644 --- a/sketch-mode.el +++ b/sketch-mode.el @@ -213,7 +213,7 @@ transient." (svg-line svg-grid 0 pos width pos :stroke-dasharray (when dash "2,4")) (setq dash (if dash nil t))))) (setq sketch-svg (append svg-canvas (when sketch-show-grid (cddr svg-grid)))) - (svg-image sketch-svg + (sketch-image sketch-svg :grid-param grid-parameter :pointer 'arrow :map `(((rect . ((0 . 0) . (,(dom-attr sketch-svg 'width) . ,(dom-attr sketch-svg 'height)))) @@ -533,7 +533,7 @@ values" (cddr sketch-root) (when sketch-show-labels (sketch-labels)))) (erase-buffer) ;; a (not exact) alternative is to use (kill-backward-chars 1) - (insert-image (svg-image sketch-svg + (insert-image (sketch-image sketch-svg :pointer 'arrow :grid-param grid-param :map `(((rect . ((0 . 0) . (,(dom-attr sketch-svg 'width) . ,(dom-attr sketch-svg 'height)))) @@ -619,7 +619,7 @@ values" ;; :fill "none")) ;; ('ellipse (apply 'svg-ellipse sketch-svg (append (sketch--ellipse-coords start-coords end-coords) '(:fill "none"))))) ;; (kill-backward-chars 1) -;; (insert-image (svg-image sketch-svg :pointer 'arrow :grid-param grid-param)))) +;; (insert-image (sketch-image sketch-svg :pointer 'arrow :grid-param grid-param)))) ;; (call-interactively 'tutorial-transient) (define-minor-mode sketch-lisp-mode @@ -744,6 +744,18 @@ values" (setf (cddr sketch-root) (sketch--svg-translate (car start-coords) (cdr start-coords))) (sketch-redraw))) +(defun sketch-image (svg &rest props) + "Return an image object from SVG. +PROPS is passed on to `create-image' as its PROPS list." + (apply + #'create-image + (with-temp-buffer + (insert "<?xml version=\"1.0\" encoding=\"UTF-8\"?> +<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n") + (svg-print svg) + (buffer-string)) + 'svg t props)) + (transient-define-suffix sketch-save () (interactive) (image-save)) @@ -816,11 +828,10 @@ values" (defun sketch-update-lisp-window (lisp buffer) ;; (let ((sketch sketch-root)) - (save-current-buffer - (switch-to-buffer-other-window buffer) - (erase-buffer) - (pp lisp (current-buffer)) - (end-of-buffer))) + (with-current-buffer buffer + (erase-buffer) + (pp lisp (current-buffer)) + (end-of-buffer))) (provide 'sketch-mode)