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

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

[elpa] externals-release/activities 0eef05103b 057/103: Add: (activities


From: ELPA Syncer
Subject: [elpa] externals-release/activities 0eef05103b 057/103: Add: (activities-tabs-face)
Date: Tue, 30 Jan 2024 03:57:51 -0500 (EST)

branch: externals-release/activities
commit 0eef05103b656842bedd1e044bce18c57d3462cf
Author: Adam Porter <adam@alphapapa.net>
Commit: Adam Porter <adam@alphapapa.net>

    Add: (activities-tabs-face)
---
 activities-tabs.el | 27 +++++++++++++++++++++++++--
 1 file changed, 25 insertions(+), 2 deletions(-)

diff --git a/activities-tabs.el b/activities-tabs.el
index 62fca09158..7e22cd6eba 100644
--- a/activities-tabs.el
+++ b/activities-tabs.el
@@ -32,6 +32,12 @@
 
 (require 'tab-bar)
 
+;;;; Variables
+
+(defvar activities-tabs-tab-bar-tab-face-function-original nil
+  "Records the original value of `tab-bar-tab-face-function'.
+When `activities-tabs-mode' is enabled.")
+
 ;;;; Customization
 
 (defgroup activities-tabs nil
@@ -47,6 +53,10 @@ Each is called with one argument, the activity."
   "Prepended to activity names in tabs."
   :type 'string)
 
+(defface activities-tabs-face
+  `((t :foreground ,(face-foreground 'font-lock-string-face nil 'default)))
+  "Applied to tab-bar faces for tabs representing activities.")
+
 ;;;; Mode
 
 ;;;###autoload
@@ -66,10 +76,14 @@ accordingly."
           (tab-bar-mode 1)
           (advice-add #'activities-resume :before 
#'activities-tabs-before-resume)
           (pcase-dolist (`(,symbol . ,function) override-map)
-            (advice-add symbol :override function)))
+            (advice-add symbol :override function))
+          (setf activities-tabs-tab-bar-tab-face-function-original 
tab-bar-tab-face-function
+                tab-bar-tab-face-function 
#'activities-tabs--tab-bar-tab-face-function))
       (advice-remove #'activities-resume #'activities-tabs-before-resume)
       (pcase-dolist (`(,symbol . ,function) override-map)
-        (advice-remove symbol function)))))
+        (advice-remove symbol function))
+      (setf tab-bar-tab-face-function 
activities-tabs-tab-bar-tab-face-function-original
+            activities-tabs-tab-bar-tab-face-function-original nil))))
 
 ;;;; Functions
 
@@ -105,6 +119,15 @@ Selects its tab, making one if needed.  Its state is not 
changed."
   ;; TODO: Make this a gv.
   (alist-get parameter (cdr tab)))
 
+(defun activities-tabs--tab-bar-tab-face-function (tab)
+  "Return a face for TAB.
+If TAB represents an activity, `activities-tabs-face' is added."
+  ;; TODO: Propose a tab-bar equivalent of `tab-line-tab-face-functions'.
+  (let ((face (funcall activities-tabs-tab-bar-tab-face-function-original 
tab)))
+    (if (activities-tabs--tab-parameter 'activity tab)
+        `(:inherit (activities-tabs-face ,face))
+      face)))
+
 (defun activities-tabs-activity--set (activity)
   "Set the current activity.
 Sets the current tab's `activity' parameter to ACTIVITY."



reply via email to

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