[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/sketch-mode 8b63796 19/38: First try: implement update
From: |
ELPA Syncer |
Subject: |
[elpa] externals/sketch-mode 8b63796 19/38: First try: implement update for both type side-winows |
Date: |
Wed, 15 Sep 2021 16:57:36 -0400 (EDT) |
branch: externals/sketch-mode
commit 8b63796df62712976b745527a9b73ae11e9cc485
Author: Daniel Nicolai <dalanicolai@gmail.com>
Commit: Daniel Nicolai <dalanicolai@gmail.com>
First try: implement update for both type side-winows
---
sketch-mode.el | 60 ++++++++++++++++++++++++++++++++++++++++++++++---------
sketch-scratch.el | 17 ----------------
2 files changed, 51 insertions(+), 26 deletions(-)
diff --git a/sketch-mode.el b/sketch-mode.el
index 85f9b2c..f757bc1 100644
--- a/sketch-mode.el
+++ b/sketch-mode.el
@@ -34,18 +34,18 @@
;; DONE add remove (objects) functionality (see `svg-remove')
-;; TODO move font transient (also its suffix) into main sketch transient
(suffix)
+;; DONE move font transient (also its suffix) into main sketch transient
(suffix)
-;; TODO add functionality to crop/select part of image (on save)
+;; DONE add functionality to crop/select part of image (on save)
-;; TODO add functionality to modify objects
+;; TODO add functionality to modify objects (see `add-object-modify-feature'
branch)
;; TODO enable defining global svg settings (object properties)
;; TODO maybe transform relevant transient argument (strings) to variables
;; TODO add function to open svg code in 'other buffer' and quickly reload
-;; (after editing)
+;; (after editing, DONE see `add-object-modify-feature' branch)
;; TODO add functionality to start drawing from org-mode source block and
update
;; source block after each draw/edit
@@ -396,8 +396,9 @@ values"
[([sketch drag-mouse-1] "Draw object" sketch-interactively-1)
([sketch mouse-1] "Draw text" sketch-text-interactively)
([sketch C-S-drag-mouse-1] "Crop image" sketch-crop)]
- [("R" "Remove object" sketch-remove-object)
- ("u" "Undo" sketch-undo)
+ [("T" "Transfrom object" sketch-modify-object)
+ ("R" "Remove object" sketch-remove-object)]
+ [("u" "Undo" sketch-undo)
("r" "Redo" sketch-redo)]
[("d" "Show definition" sketch-show-definition)
("D" "Copy definition" sketch-copy-definition)
@@ -511,9 +512,15 @@ values"
(sketch-translate-node-coords node dy 'y))))
(cddr sketch-root)))
-(defun sketch-redraw ()
+(defun sketch-redraw (&optional lisp lisp-buffer)
(unless sketch-mode
(user-error "Not in sketch-mode buffer"))
+ (let ((lisp-window (or (get-buffer-window "*sketch-root*")
+ (get-buffer-window lisp-buffer))))
+ (unless (string= (buffer-name (window-buffer lisp-window)) "*sketch*")
+ (if-let (buf (get-buffer"*sketch-root*"))
+ (sketch-update-lisp-window sketch-root buf)
+ (sketch-update-lisp-window lisp lisp-buffer))))
(setq sketch-svg (append svg-canvas
(when sketch-show-grid (cddr svg-grid))
(cddr sketch-root)
@@ -616,9 +623,9 @@ values"
(transient-define-suffix sketch-show-definition ()
;; :transient 'transient--do-exit
(interactive)
- (if-let (win (get-buffer-window "sketch-svg"))
+ (if-let (win (get-buffer-window "*sketch-root*"))
(delete-window win)
- (let ((buffer (get-buffer-create "sketch-svg"))
+ (let ((buffer (get-buffer-create "*sketch-root*"))
(sketch sketch-root))
(set-window-dedicated-p
(get-buffer-window
@@ -730,5 +737,40 @@ values"
(transient-define-suffix sketch-save ()
(interactive)
(image-save))
+
+
+;;; Modify object
+
+(transient-define-suffix sketch-translate-down (args)
+ (interactive (list (transient-args 'sketch-modify-object)))
+ (let* ((object (transient-arg-value "--object=" args))
+ (object-def (dom-by-id sketch-svg (format "^a$" object)))
+ (props (cadar object-def)))
+ (dolist (coord '(y1 y2))
+ (cl-incf (alist-get coord props) 10))
+ (sketch-redraw object-def)))
+
+(transient-define-prefix sketch-modify-object ()
+ "Set object properties."
+ :transient-suffix 'transient--do-call
+ ["Properties"
+ [("o" "object" "--object=")]]
+ [("<down>" "Down" sketch-translate-down)
+ ("q" "Quit" transient-quit-one)]
+ (interactive)
+ (let* ((object (completing-read "Transform element with id: "
+ (sketch-labels-list)))
+ (buffer (get-buffer-create (format "*sketch-object-%s*" object))))
+ (display-buffer buffer '(display-buffer-in-side-window . ((side . right)
(window-width . 70))))
+ (pp (cadar (dom-by-id sketch-svg (format "^%s$" object))) buffer)
+ (transient-setup 'sketch-modify-object nil nil :value (list (format
"--object=%s" object)))))
+
+(defun sketch-update-lisp-window (lisp buffer)
+ ;; (let ((sketch sketch-root))
+ (with-current-buffer buffer
+ (erase-buffer)
+ (pp lisp (current-buffer))))
+
+
(provide 'sketch-mode)
;;; sketch-mode.el ends here
diff --git a/sketch-scratch.el b/sketch-scratch.el
index 7c52f85..d89b298 100644
--- a/sketch-scratch.el
+++ b/sketch-scratch.el
@@ -42,20 +42,3 @@
props)))))
(tabulated-list-print)))
-(defun sketch-translate-down ()
- (interactive)
- (let* ((props (cadar (dom-by-id svg "^a$"))))
- (dolist (coord '(y1 y2))
- (cl-incf (alist-get coord props) 10)))
- (sketch-redraw))
-
-(transient-define-prefix sketch-modify-object ()
- "Set object properties."
- :transient-suffix 'transient--do-call
- ["Properties"
- [("x1" "author" "author=")
- ("y" "year" "year=")]]
- [("<down>" "Down" sketch-translate-down)
- ("q" "Quit" transient-quit-one)])
- ;; (interactive)
- ;; (djvu-switch-shared))
- [elpa] externals/sketch-mode 4c6a675 36/38: Fix load definition functionality (also set layers list), (continued)
- [elpa] externals/sketch-mode 4c6a675 36/38: Fix load definition functionality (also set layers list), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode bcb99c9 35/38: Implement text label and modify feature, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 49c3c04 34/38: Add dasharray feature, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 4a4e2ba 33/38: Implement import/snippet functionality, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 37af8f4 01/38: Initial commit, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 0f870a1 20/38: Implement load from definition buffer & modify object functionality, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode fadc554 21/38: Add xml processing instruction and DOCTYPE element (see #4), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 414ec7c 15/38: Don't print coordinates to message buffer, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 87a0808 16/38: Fix file header, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 7583fcb 17/38: Fix variable names and implement svg lisp togglable side window, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 8b63796 19/38: First try: implement update for both type side-winows,
ELPA Syncer <=
- [elpa] externals/sketch-mode ec35bb4 23/38: Add xml processing instruction and DOCTYPE element (see #4), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 846f4a0 24/38: Implement layers (incl. reformat labels), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 6433b20 30/38: Add circle/ellipse labels, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 406f51d 25/38: Fix undo-redo (i.e. switch to use undo-tree-mode), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 9eb86b8 31/38: Add comments and cleanup, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode aaac04d 38/38: Fix indentation (simply auto indent complete file), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 0005a3a 27/38: Add sketch-mapcons function (refactor sketch--circle-radius), ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode bebba7b 37/38: Fix add layer mechanism, ELPA Syncer, 2021/09/15
- [elpa] externals/sketch-mode 19202c7 32/38: Implement first step for snippets/import, ELPA Syncer, 2021/09/15