[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/svg-tag-mode a5af3041c4 07/63: Added customizable optio
From: |
ELPA Syncer |
Subject: |
[elpa] externals/svg-tag-mode a5af3041c4 07/63: Added customizable options |
Date: |
Mon, 27 Dec 2021 15:57:55 -0500 (EST) |
branch: externals/svg-tag-mode
commit a5af3041c43a3cb301fad2144023b9e7893359cb
Author: Nicolas P. Rougier <Nicolas.Rougier@inria.fr>
Commit: Nicolas P. Rougier <Nicolas.Rougier@inria.fr>
Added customizable options
---
example.el | 1 -
svg-tag-mode.el | 65 ++++++++++++++++++++++++++++++++++++++++++++-------------
2 files changed, 50 insertions(+), 16 deletions(-)
diff --git a/example.el b/example.el
index 4df1ebed81..813256b852 100644
--- a/example.el
+++ b/example.el
@@ -68,4 +68,3 @@
;; (1)(2)(3)(4)(5)(Z)(W)(12)(99)
;; ------------------------------------------------------------------------
-
diff --git a/svg-tag-mode.el b/svg-tag-mode.el
index 3f220843eb..c5237d6837 100644
--- a/svg-tag-mode.el
+++ b/svg-tag-mode.el
@@ -66,25 +66,59 @@
(defvar svg-tags nil)
(defvar active-svg-tags nil)
-(defgroup svg-tag nil
- "SVG tag mode"
- :group 'faces)
+(defgroup svg-tag-mode nil
+ "Replace keywords with SVG rounded box labels"
+ :group 'convenience
+ :prefix "svg-tag-")
+
+(defcustom svg-tag-default-outer-padding 1
+ "Default outer padding (in characters, null or positive)"
+ :type 'integer
+ :group 'svg-tag-mode)
+
+(defcustom svg-tag-default-inner-padding 1
+ "Default inner padding (in characters, null or positive)"
+ :type 'integer
+ :group 'svg-tag-mode)
+
+(defcustom svg-tag-default-radius 3
+ "Default radius (in pixels, null or positive)"
+ :type 'integer
+ :group 'svg-tag-mode)
+
+(defcustom svg-tag-vertical-offset 0
+ "Vertical offset for text (in pixels).
+This should be zero for most fonts but some fonts may need this."
+ :type 'integer
+ :group 'svg-tag-mode)
+
+(defcustom svg-tag-horizontal-offset 0
+ "Horizontal offset for text (in pixels).
+This should be zero for most fonts but some fonts may need this."
+ :type 'integer
+ :group 'svg-tag-mode)
+
(defface svg-tag-default-face
- '((t :foreground "white"
+ `((t :foreground "white"
:background "orange"
- :box "orange"
- :family "Roboto Mono"
- :weight light
+ :box `(:line-width 1 :color "orange" :style nil)
+ :family ,(face-attribute 'default :family)
+ :weight ,(face-attribute 'default :weight)
:height 120))
"Default face for tag"
:group 'svg-tag-mode)
+(plist-get (eval (face-attribute 'svg-tag-default-face :box)) :line-width)
+
(defun svg-tag-make (text &optional face inner-padding outer-padding radius)
(let* ((face (or face 'svg-tag-default-face))
(foreground (face-attribute face :foreground))
(background (face-attribute face :background))
- (border (face-attribute face :box))
+ (border (plist-get (eval (face-attribute face :box)) :color))
+ ;; Line below doesn't work for unknown reason
+ ;; (stroke (plist-get (eval (face-attribute face :box)) :line-width))
+ (stroke 1)
(family (face-attribute face :family))
(weight (face-attribute face :weight))
(size (/ (face-attribute face :height) 10))
@@ -93,8 +127,8 @@
(tag-char-height (window-font-height nil face))
(txt-char-width (window-font-width))
(txt-char-height (window-font-height))
- (inner-padding (or inner-padding 1))
- (outer-padding (or outer-padding 0))
+ (inner-padding (or inner-padding svg-tag-default-inner-padding))
+ (outer-padding (or outer-padding svg-tag-default-outer-padding))
(text (string-trim text))
(tag-width (* (+ (length text) inner-padding) txt-char-width))
@@ -107,22 +141,23 @@
(text-x (+ tag-x (/ (- tag-width (* (length text) tag-char-width))
2)))
(text-y (- tag-char-height (- txt-char-height tag-char-height)))
- (radius (or radius 3))
+ (radius (or radius svg-tag-default-radius))
(svg (svg-create svg-width svg-height)))
(svg-rectangle svg tag-x 0 tag-width tag-height
:fill border
:rx radius)
- (svg-rectangle svg (+ tag-x 0.5) 0.5 (- tag-width 1.0) (- tag-height 1.0)
+ (svg-rectangle svg (+ tag-x (/ stroke 2.0)) (/ stroke 2.0)
+ (- tag-width stroke) (- tag-height stroke)
:fill background
- :rx (- radius 0.5))
+ :rx (- radius (/ stroke 2.0)))
(svg-text svg text
:font-family family
:font-weight weight
:font-size size
:fill foreground
- :x text-x
- :y text-y)
+ :x (+ text-x svg-tag-horizontal-offset)
+ :y (+ text-y svg-tag-vertical-offset))
(svg-image svg :ascent 'center)))
(defun svg-tag-mode-on ()
- [elpa] externals/svg-tag-mode ede0edb5c3 25/63: Lint correction, (continued)
- [elpa] externals/svg-tag-mode ede0edb5c3 25/63: Lint correction, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 607d05d972 37/63: Fix conflict, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 60d56f3f41 29/63: Fixed terminal mode error, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 4fb494db21 43/63: Changed style of date, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 3dd9bef838 59/63: Removed `org-plist-delete` dependency., ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 60140b7526 62/63: Remove ununsed local variables., ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode c78500db2c 60/63: Fix bugs (typos)., ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode de9aba3f37 09/63: Fix style and naming, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 90c15ebc07 05/63: Load subr-x for string-trim, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode e9d0df33a6 12/63: Better default, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode a5af3041c4 07/63: Added customizable options,
ELPA Syncer <=
- [elpa] externals/svg-tag-mode 0944bb3bce 14/63: Simplified tag setup and added custom variable for tags, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode db4d223352 18/63: Fixed documentation, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 9649055e90 20/63: Trying to fix header, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode cec780a16f 21/63: Added version, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 4fdc7ffbb3 23/63: Fixed font weights, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 609ed7cc32 24/63: Removed free variable, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 0125ceca29 22/63: Fix README, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode a9e8d9e705 27/63: Fixes followign review at https://github.com/melpa/melpa/pull/7217, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode 40d7820143 28/63: Moved examples into a directory, ELPA Syncer, 2021/12/27
- [elpa] externals/svg-tag-mode c0492f9046 30/63: Fixed links, ELPA Syncer, 2021/12/27