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

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

[elpa] externals/sketch-mode 8111309 02/12: Add first sketch for simple


From: ELPA Syncer
Subject: [elpa] externals/sketch-mode 8111309 02/12: Add first sketch for simple rotate function
Date: Tue, 26 Oct 2021 14:57:41 -0400 (EDT)

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

    Add first sketch for simple rotate function
---
 sketch-mode.el | 40 +++++++++++++++++++++++++++++++++++++++-
 1 file changed, 39 insertions(+), 1 deletion(-)

diff --git a/sketch-mode.el b/sketch-mode.el
index 5deb44d..92b8c60 100644
--- a/sketch-mode.el
+++ b/sketch-mode.el
@@ -876,6 +876,43 @@ selection shows all object in sketch."
                        value)
                " "))
 
+(defun sketch--svg-rotate (dt &optional object-def)
+  (interactive)
+  (let ((transform (sketch-parse-transform-value
+                    (or (dom-attr object-def 'transform)
+                        "rotate(0)"))))
+    (cl-decf (cl-first (alist-get 'rotate transform)) dt)
+    (dom-set-attribute object-def
+                       'transform
+                       (sketch-format-transfrom-value transform))))
+
+(defun sketch-rotate (deg)
+  (interactive)
+  (let ((node (car (dom-by-id sketch-svg (car sketch-selection)))))
+    (sketch--svg-rotate deg node)
+    (sketch-redraw)))
+
+(defun sketch-rotate-by-5 (arg)
+  (interactive)
+  (let ((node (car (dom-by-id sketch-svg (car sketch-selection)))))
+    (sketch--svg-rotate (if arg -5 5) node)
+    (sketch-redraw)))
+
+(defun sketch-rotate-by-min-5 ()
+  (interactive)
+  (sketch-rotate-by-5 t))
+
+(defun sketch--svg-translate (dx dy &optional object-def)
+  (interactive)
+  (let ((transform (sketch-parse-transform-value
+                    (or (dom-attr object-def 'transform)
+                        "translate(0,0)"))))
+    (cl-decf (cl-first (alist-get 'translate transform)) dx)
+    (cl-decf (cl-second (alist-get 'translate transform)) dy)
+    (dom-set-attribute object-def
+                       'transform
+                       (sketch-format-transfrom-value transform))))
+
 (defun sketch--svg-translate (dx dy &optional object-def)
   (interactive)
   (let ((transform (sketch-parse-transform-value
@@ -1303,7 +1340,8 @@ color."
         (insert " ")
         (insert s)
         (insert "\n"))
-      (goto-char (point-min)))))
+      (goto-char (point-min))
+      (special-mode))))
 
 (defun sketch-set-color ()
   (interactive)



reply via email to

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