Hello,

Find attached a patch to highlight 2 types of "calendar events":

- "appointments" (or whatever close to that), that is events based on an
  active timestamp;

- S-expressions to compute active timestamps for events.

The change is quite straightforward.

Best regards,
  Seb

-- 
Sebastien Vauban
>From 271dc5a7bb1c377cc38df63c50f2af41019abb34 Mon Sep 17 00:00:00 2001
From: Sebastien Vauban <s...@mygooglest.com>
Date: Fri, 18 Nov 2011 13:41:47 +0100
Subject: [PATCH] Add faces for "calendar events" (active timestamps, or
 S-expressions).

	* org-agenda.el (org-agenda-get-timestamps)
	(org-agenda-get-sexps): Use face for highlighting "calendar"
	events.

	* org-faces.el: Add faces `org-agenda-calendar-event' and
	`org-agenda-calendar-sexp'.
---
 lisp/org-agenda.el |    9 +++++----
 lisp/org-faces.el  |   12 ++++++++++++
 2 files changed, 17 insertions(+), 4 deletions(-)

diff --git a/lisp/org-agenda.el b/lisp/org-agenda.el
index 0a98fbe..70c6c17 100644
--- a/lisp/org-agenda.el
+++ b/lisp/org-agenda.el
@@ -3636,7 +3636,7 @@ given in `org-agenda-start-on-weekday'."
 	      (setq rtn (apply 'org-agenda-get-day-entries
 			       file date
 			       org-agenda-entry-types)))))
-	  (setq rtnall (append rtnall rtn))))
+	  (setq rtnall (append rtnall rtn)))) ;; all entries
       (if org-agenda-include-diary
 	  (let ((org-agenda-search-headline-for-time t))
 	    (require 'diary-lib)
@@ -3658,7 +3658,7 @@ given in `org-agenda-start-on-weekday'."
 	    (put-text-property s (1- (point)) 'org-day-cnt day-cnt)
 	    (when todayp
 	      (put-text-property s (1- (point)) 'org-today t))
-	    (if rtnall (insert
+	    (if rtnall (insert ;; all entries
 			(org-finalize-agenda-entries
 			 (org-agenda-add-time-grid-maybe
 			  rtnall ndays todayp))
@@ -4721,7 +4721,7 @@ This function is invoked if `org-agenda-todo-ignore-deadlines',
 
 (defun org-agenda-get-timestamps ()
   "Return the date stamp information for agenda display."
-  (let* ((props (list 'face nil
+  (let* ((props (list 'face 'org-agenda-calendar-event
 		      'org-not-done-regexp org-not-done-regexp
 		      'org-todo-regexp org-todo-regexp
 		      'org-complex-heading-regexp org-complex-heading-regexp
@@ -4822,7 +4822,8 @@ This function is invoked if `org-agenda-todo-ignore-deadlines',
 (defun org-agenda-get-sexps ()
   "Return the sexp information for agenda display."
   (require 'diary-lib)
-  (let* ((props (list 'mouse-face 'highlight
+  (let* ((props (list 'face 'org-agenda-calendar-sexp
+		      'mouse-face 'highlight
 		      'help-echo
 		      (format "mouse-2 or RET jump to org file %s"
 			      (abbreviate-file-name buffer-file-name))))
diff --git a/lisp/org-faces.el b/lisp/org-faces.el
index 7b7dfa7..c15cb7d 100644
--- a/lisp/org-faces.el
+++ b/lisp/org-faces.el
@@ -695,6 +695,18 @@ month and 365.24 days for a year)."
   "Face used for agenda entries that come from the Emacs diary."
   :group 'org-faces)
 
+(defface org-agenda-calendar-event
+  '((((background light)) (:foreground "#FFFFFF" :background "#1662AF"))
+    (((background dark)) (:foreground "blue")))
+  "Face used to show events and appointments in the agenda."
+  :group 'org-faces)
+
+(defface org-agenda-calendar-sexp
+  '((((background light)) (:background "light blue"))
+    (((background dark)) (:foreground "light blue")))
+  "Face used to show events computed from a S-expression."
+  :group 'org-faces)
+
 (defconst org-level-faces
   '(org-level-1 org-level-2 org-level-3 org-level-4
     org-level-5 org-level-6 org-level-7 org-level-8
-- 
1.7.5.1

Reply via email to