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

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

[nongnu] elpa/telephone-line 8372f7d37c 133/195: Add centered segment su


From: ELPA Syncer
Subject: [nongnu] elpa/telephone-line 8372f7d37c 133/195: Add centered segment support
Date: Wed, 5 Jan 2022 02:59:39 -0500 (EST)

branch: elpa/telephone-line
commit 8372f7d37c74df551087ee439c2d37e318c73d65
Author: Daniel Bordak <dbordak@fastmail.fm>
Commit: Daniel Bordak <dbordak@fastmail.fm>

    Add centered segment support
---
 telephone-line.el | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/telephone-line.el b/telephone-line.el
index 78c7c65c30..284aba3737 100644
--- a/telephone-line.el
+++ b/telephone-line.el
@@ -301,6 +301,12 @@ separators, as they are conditional, are evaluated 
on-the-fly."
   :type '(alist :key-type segment-color :value-type subsegment-list)
   :group 'telephone-line)
 
+(defcustom telephone-line-center
+  nil
+  "Center segment alist."
+  :type '(alist :key-type segment-color :value-type subsegment-list)
+  :group 'telephone-line)
+
 (defcustom telephone-line-rhs
   '((nil    . (telephone-line-misc-info-segment
                telephone-line-major-mode-segment))
@@ -314,6 +320,18 @@ separators, as they are conditional, are evaluated 
on-the-fly."
                    telephone-line-primary-left-separator
                    telephone-line-secondary-left-separator))
 
+(defun telephone-line--generate-mode-line-center ()
+  (when telephone-line-center
+    (let* ((part (seq-position telephone-line-center 'center))
+           (center-left (seq-take telephone-line-center part))
+           (center-right (seq-drop telephone-line-center (1+ part))))
+      (append (telephone-line-add-separators center-left
+                               telephone-line-primary-right-separator
+                               telephone-line-secondary-right-separator)
+              (telephone-line-add-separators center-right
+                               telephone-line-primary-left-separator
+                               telephone-line-secondary-left-separator)))))
+
 (defun telephone-line--generate-mode-line-rhs ()
   (telephone-line-add-separators telephone-line-rhs
                    telephone-line-primary-right-separator
@@ -321,6 +339,16 @@ separators, as they are conditional, are evaluated 
on-the-fly."
 
 (defun telephone-line--generate-mode-line ()
   `(,@(telephone-line--generate-mode-line-lhs)
+    (:eval (when telephone-line-center
+             (telephone-line-fill
+              (/ (+ (window-width)
+                    (telephone-line-width
+                     ',(telephone-line--generate-mode-line-center)
+                     ,(- (length telephone-line-rhs) 1)
+                     ,telephone-line-primary-right-separator))
+                 2)
+              (telephone-line-face-map (caar telephone-line-center)))))
+    ,@(telephone-line--generate-mode-line-center)
     (:eval (telephone-line-fill
             (telephone-line-width
              ',(telephone-line--generate-mode-line-rhs)



reply via email to

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