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

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

[elpa] externals/sketch-mode da9e1d7 13/38: Implement help-echo showing


From: ELPA Syncer
Subject: [elpa] externals/sketch-mode da9e1d7 13/38: Implement help-echo showing coordinates
Date: Wed, 15 Sep 2021 16:57:35 -0400 (EDT)

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

    Implement help-echo showing coordinates
---
 sketch-mode.el | 40 ++++++++++++++++++++++++++++++++++------
 1 file changed, 34 insertions(+), 6 deletions(-)

diff --git a/sketch-mode.el b/sketch-mode.el
index 0f820af..713c67c 100644
--- a/sketch-mode.el
+++ b/sketch-mode.el
@@ -67,6 +67,14 @@
 (defgroup sketch nil
   "Configure default sketch (object) properties.")
 
+(defcustom sketch-im-x-offset 7
+  "Default grid line separation distance (integer)."
+  :type 'integer)
+
+(defcustom sketch-im-y-offset 1
+  "Default grid line separation distance (integer)."
+  :type 'integer)
+
 (defcustom sketch-default-image-size '(800 . 600)
   "Default size for sketch canvas.
 Cons cell with car and cdr both integers, respectively
@@ -157,7 +165,7 @@ In sketch-mode buffer press \\[sketch-transient] to 
activate the
 transient."
   :lighter "sketch-mode"
   :keymap
-  '(([drag-mouse-1] . sketch-interactively)
+  '(([sketch drag-mouse-1] . sketch-interactively)
     ;; ([C-S-drag-mouse-1] . sketch-interactively)
     ("" . sketch-transient)))
 
@@ -203,7 +211,17 @@ transient."
              (svg-line svg-grid 0 pos width pos :stroke-dasharray (when dash 
"2,4"))
              (setq dash (if dash nil t)))))
        (setq svg (append svg-canvas (when sketch-show-grid (cddr svg-grid))))
-       (svg-image svg :pointer 'arrow :grid-param grid-param)))
+       (svg-image svg
+                  :grid-param grid-param
+                  :pointer 'arrow
+                  :map `(((rect . ((0 . 0) . (,(dom-attr svg 'width) . 
,(dom-attr svg 'height))))
+                          ;; :map '(((rect . ((0 . 0) . (800 . 600)))
+                          sketch
+                          (pointer arrow help-echo (lambda (_ _ pos)
+                                                     (let ((coords (cdr 
(mouse-pixel-position))))
+                                                       (print (format "(%s, 
%s)"
+                                                                      (- (car 
coords) sketch-im-x-offset)
+                                                                      (+ (cdr 
coords) sketch-im-y-offset)))))))))))
     (sketch-mode)
     (call-interactively 'sketch-transient)
     (setq svg-sketch (svg-create width height)))
@@ -367,9 +385,9 @@ values"
    ["Labels"
     ("l" "Toggle labels" sketch-toggle-labels)]]
   ["Commands"
-   [([drag-mouse-1] "Draw object"  sketch-interactively-1)
-    ([mouse-1] "Draw text"  sketch-text-interactively)
-    ([C-S-drag-mouse-1] "Crop image" sketch-crop)]
+   [([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)
     ("r" "Redo" sketch-redo)]
@@ -493,7 +511,17 @@ values"
                     (cddr svg-sketch)
                     (when sketch-show-labels (sketch-labels))))
   (erase-buffer) ;; a (not exact) alternative is to use (kill-backward-chars 1)
-  (insert-image (svg-image svg :pointer 'arrow :grid-param grid-param)))
+  (insert-image (svg-image svg
+                           :pointer 'arrow
+                           :grid-param grid-param
+                           :map `(((rect . ((0 . 0) . (,(dom-attr svg 'width) 
. ,(dom-attr svg 'height))))
+                           ;; :map '(((rect . ((0 . 0) . (800 . 600)))
+                                   sketch
+                                   (pointer arrow help-echo (lambda (_ _ pos)
+                                                              (let ((coords 
(mouse-pixel-position)))
+                                                                (print (format 
"(%s, %s)"
+                                                                               
(- (cadr coords) pos)
+                                                                               
(cddr coords)))))))))))
 
 (transient-define-suffix sketch-interactively-1 (event)
   (interactive "@e")



reply via email to

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