emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/sketch-mode 35255d0 04/38: Implement undo/redo and show


From: ELPA Syncer
Subject: [elpa] externals/sketch-mode 35255d0 04/38: Implement undo/redo and show/edit/(re)load definition
Date: Wed, 15 Sep 2021 16:57:33 -0400 (EDT)

branch: externals/sketch-mode
commit 35255d0a94d54c870090a25e888c5958183cc712
Author: Daniel Nicolai <dalanicolai@gmail.com>
Commit: Daniel Nicolai <dalanicolai@gmail.com>

    Implement undo/redo and show/edit/(re)load definition
---
 sketch-mode.el | 42 ++++++++++++++++++++++++++++++++----------
 1 file changed, 32 insertions(+), 10 deletions(-)

diff --git a/sketch-mode.el b/sketch-mode.el
index 480b36d..7d037e2 100644
--- a/sketch-mode.el
+++ b/sketch-mode.el
@@ -194,18 +194,19 @@ STOPS is a list of percentage/color pairs."
 ;;;###autoload
 (defun sketch (arg)
   "Initialize or switch to (new) SVG image.
-With prefix argument,  "
+With prefix argument, create sketch using default (customizable)
+values"
   (interactive "P")
-  (let ((width (if arg (car sketch-default-image-size) (read-number "Enter 
width: ") ))
-        (height (if arg 600 (read-number "Enter height: ")))
-        (buffer (get-buffer "*sketch")))
+  (let ((buffer (get-buffer "*sketch*")))
     (if buffer
         (progn (switch-to-buffer buffer)
-               (call-interactively 'tutorial-transient))
-      (switch-to-buffer (get-buffer-create "*sketch"))
-      (defvar-local grid-param 25)
-      (setq grid-param (if arg 25 (read-number "Enter grid parameter (enter 0 
for no grid): ")))
-      (sketch--create-canvas width height grid-param))))
+               (call-interactively 'sketch-transient))
+      (let ((width (if arg (car sketch-default-image-size) (read-number "Enter 
width: ") ))
+            (height (if arg 600 (read-number "Enter height: "))))
+        (switch-to-buffer (get-buffer-create "*sketch"))
+        (defvar-local grid-param 25)
+        (setq grid-param (if arg 25 (read-number "Enter grid parameter (enter 
0 for no grid): ")))
+        (sketch--create-canvas width height grid-param)))))
 
 
 (defun sketch-snap-to-grid (coord grid-param)
@@ -435,9 +436,11 @@ With prefix argument,  "
   ;; (call-interactively 'tutorial-transient)
 
 (transient-define-suffix sketch-show-definition ()
+  :transient 'transient--do-exit
   (interactive)
   (let ((buffer (get-buffer-create "svg")))
-    (pp svg buffer)
+    (transient-quit-one)
+    (pp svg-sketch buffer)
     (switch-to-buffer-other-window buffer)
     (emacs-lisp-mode)))
 
@@ -447,6 +450,25 @@ With prefix argument,  "
     (pp svg (current-buffer))
     (kill-new (buffer-string))))
 
+(defun sketch-load-definition ()
+  (interactive)
+  (setq svg-sketch (read (buffer-string))))
+
+(transient-define-suffix sketch-undo ()
+  (interactive)
+  (defvar sketch-undo-redo nil)
+  (let ((sketch-reverse (nreverse svg-sketch)))
+    (push (pop sketch-reverse) sketch-undo-redo)
+    (setq svg-sketch (nreverse sketch-reverse)))
+  (sketch-redraw))
+
+(transient-define-suffix sketch-redo ()
+  (interactive)
+  (let ((sketch-reverse (nreverse svg-sketch)))
+    (push (pop sketch-undo-redo) sketch-reverse)
+    (setq svg-sketch (nreverse sketch-reverse)))
+  (sketch-redraw))
+
 (transient-define-suffix sketch-save ()
   (interactive)
   (image-save))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]