summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2011-06-14 01:06:26 -0400
committerChong Yidong <cyd@stupidchicken.com>2011-06-14 01:06:26 -0400
commitc5dd5a516c9f0f4b622452c42e34e95ca2e2fae5 (patch)
tree4a811ae80c86691b1ad0a7ffd454621739a6299e
parentb9958282dc60f74c942f34412123ddc76f7c592e (diff)
Print theme summaries in *Custom Themes* buffer.
* lisp/cus-theme.el (describe-theme-1): Use custom-theme-p. (custom-theme-summary): New function. (customize-themes): Use it. * etc/themes/light-blue-theme.el: * etc/themes/misterioso-theme.el: * etc/themes/tango-dark-theme.el: * etc/themes/tango-theme.el: * etc/themes/tsdh-dark-theme.el: * etc/themes/tsdh-light-theme.el: * etc/themes/wheatgrass-theme.el: * etc/themes/wombat-theme.el: Tweak summaries for better listability.
-rw-r--r--etc/themes/light-blue-theme.el2
-rw-r--r--etc/themes/misterioso-theme.el2
-rw-r--r--etc/themes/tango-dark-theme.el2
-rw-r--r--etc/themes/tango-theme.el2
-rw-r--r--etc/themes/tsdh-dark-theme.el3
-rw-r--r--etc/themes/tsdh-light-theme.el3
-rw-r--r--etc/themes/wheatgrass-theme.el2
-rw-r--r--etc/themes/wombat-theme.el2
-rw-r--r--lisp/ChangeLog6
-rw-r--r--lisp/cus-theme.el73
10 files changed, 67 insertions, 30 deletions
diff --git a/etc/themes/light-blue-theme.el b/etc/themes/light-blue-theme.el
index 60f9fa8dc9..98c74b268a 100644
--- a/etc/themes/light-blue-theme.el
+++ b/etc/themes/light-blue-theme.el
@@ -26,7 +26,7 @@
;;; Code:
(deftheme light-blue
- "Theme with a light blue backgound.")
+ "Face colors utilizing a light blue backgound.")
(let ((class '((class color) (min-colors 89))))
(custom-theme-set-faces
diff --git a/etc/themes/misterioso-theme.el b/etc/themes/misterioso-theme.el
index 864d31d9b0..ab4b2bc619 100644
--- a/etc/themes/misterioso-theme.el
+++ b/etc/themes/misterioso-theme.el
@@ -22,7 +22,7 @@
;;; Code:
(deftheme misterioso
- "Theme for faces, using light colors on a dark gray background.")
+ "Predominantly blue/cyan faces on a dark cyan background.")
(let ((class '((class color) (min-colors 89))))
diff --git a/etc/themes/tango-dark-theme.el b/etc/themes/tango-dark-theme.el
index a5731ab7d7..b5621d1032 100644
--- a/etc/themes/tango-dark-theme.el
+++ b/etc/themes/tango-dark-theme.el
@@ -28,7 +28,7 @@
;;; Code:
(deftheme tango-dark
- "Theme for faces, based on the Tango palette with a dark background.
+ "Face colors using the Tango palette (dark background).
Basic, Font Lock, Isearch, Gnus, Message, Ediff, Flyspell,
Semantic, and Ansi-Color faces are included.")
diff --git a/etc/themes/tango-theme.el b/etc/themes/tango-theme.el
index 7be50a17f5..c58e003635 100644
--- a/etc/themes/tango-theme.el
+++ b/etc/themes/tango-theme.el
@@ -28,7 +28,7 @@
;;; Code:
(deftheme tango
- "Theme for faces, based on the Tango palette with a light background.
+ "Face colors using the Tango palette (light background).
Basic, Font Lock, Isearch, Gnus, Message, Ediff, Flyspell,
Semantic, and Ansi-Color faces are included.")
diff --git a/etc/themes/tsdh-dark-theme.el b/etc/themes/tsdh-dark-theme.el
index b4fe0b5923..aaa43435dd 100644
--- a/etc/themes/tsdh-dark-theme.el
+++ b/etc/themes/tsdh-dark-theme.el
@@ -20,7 +20,8 @@
;;; Code:
(deftheme tsdh-dark
- "Theme with dark background used and created by Tassilo Horn.")
+ "Minor tweaks to the Emacs dark-background defaults.
+Used and created by Tassilo Horn.")
(custom-theme-set-faces
'tsdh-dark
diff --git a/etc/themes/tsdh-light-theme.el b/etc/themes/tsdh-light-theme.el
index 4eda7a4b7c..e7a2bafb03 100644
--- a/etc/themes/tsdh-light-theme.el
+++ b/etc/themes/tsdh-light-theme.el
@@ -20,7 +20,8 @@
;;; Code:
(deftheme tsdh-light
- "Black on white theme used and created by Tassilo Horn.")
+ "Minor tweaks to the Emacs white-background defaults.
+Used and created by Tassilo Horn.")
(custom-theme-set-faces
'tsdh-light
diff --git a/etc/themes/wheatgrass-theme.el b/etc/themes/wheatgrass-theme.el
index 7fd241c505..3a08bb63d9 100644
--- a/etc/themes/wheatgrass-theme.el
+++ b/etc/themes/wheatgrass-theme.el
@@ -20,7 +20,7 @@
;;; Code:
(deftheme wheatgrass
- "A high-contrast theme with a black background.
+ "High-contrast green/blue/brown faces on a black background.
Basic, Font Lock, Isearch, Gnus, and Message faces are included.
The default face foreground is wheat, with other faces in shades
of green, brown, and blue.")
diff --git a/etc/themes/wombat-theme.el b/etc/themes/wombat-theme.el
index 6a16b52ee2..2aa64f894b 100644
--- a/etc/themes/wombat-theme.el
+++ b/etc/themes/wombat-theme.el
@@ -22,7 +22,7 @@
;;; Code:
(deftheme wombat
- "Theme for faces, using easy-on-the eyes colors on a dark gray background.
+ "Medium-contrast faces with a dark gray background.
Adapted, with permission, from a Vim color scheme by Lars H. Nielsen.
Basic, Font Lock, Isearch, Gnus, Message, and Ansi-Color faces
are included.")
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index 7dac139c29..2cf968505a 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,9 @@
+2011-06-14 Chong Yidong <cyd@stupidchicken.com>
+
+ * cus-theme.el (describe-theme-1): Use custom-theme-p.
+ (custom-theme-summary): New function.
+ (customize-themes): Use it.
+
2011-06-13 Glenn Morris <rgm@gnu.org>
* cus-dep.el (custom-make-dependencies): Use up command-line-args-left.
diff --git a/lisp/cus-theme.el b/lisp/cus-theme.el
index 86fb43be72..7f926c85e5 100644
--- a/lisp/cus-theme.el
+++ b/lisp/cus-theme.el
@@ -483,25 +483,24 @@ It includes all faces in list FACES."
'help-theme-def fn)
(princ "'"))
(princ ".\n")
- (if (not (memq theme custom-known-themes))
+ (if (custom-theme-p theme)
(progn
- (princ "It is not loaded.")
- ;; Attempt to grab the theme documentation
- (when fn
- (with-temp-buffer
- (insert-file-contents fn)
- (let ((sexp (let ((read-circle nil))
- (condition-case nil
- (read (current-buffer))
- (end-of-file nil)))))
- (and sexp (listp sexp)
- (eq (car sexp) 'deftheme)
- (setq doc (nth 2 sexp)))))))
- (if (custom-theme-enabled-p theme)
- (princ "It is loaded and enabled.")
- (princ "It is loaded but disabled."))
- (setq doc (get theme 'theme-documentation)))
-
+ (if (custom-theme-enabled-p theme)
+ (princ "It is loaded and enabled.")
+ (princ "It is loaded but disabled."))
+ (setq doc (get theme 'theme-documentation)))
+ (princ "It is not loaded.")
+ ;; Attempt to grab the theme documentation
+ (when fn
+ (with-temp-buffer
+ (insert-file-contents fn)
+ (let ((sexp (let ((read-circle nil))
+ (condition-case nil
+ (read (current-buffer))
+ (end-of-file nil)))))
+ (and sexp (listp sexp)
+ (eq (car sexp) 'deftheme)
+ (setq doc (nth 2 sexp)))))))
(princ "\n\nDocumentation:\n")
(princ (if (stringp doc)
doc
@@ -605,26 +604,56 @@ Theme files are named *-theme.el in `"))
(widget-create 'checkbox
:value custom-theme-allow-multiple-selections
:action 'custom-theme-selections-toggle)
- (widget-insert (propertize " Allow more than one theme at a time"
+ (widget-insert (propertize " Select more than one theme at a time"
'face '(variable-pitch (:height 0.9))))
(widget-insert "\n\nAvailable Custom Themes:\n")
- (let (widget)
+ (let ((help-echo "mouse-2: Enable this theme for this session")
+ widget)
(dolist (theme (custom-available-themes))
(setq widget (widget-create 'checkbox
:value (custom-theme-enabled-p theme)
:theme-name theme
+ :help-echo help-echo
:action 'custom-theme-checkbox-toggle))
(push (cons theme widget) custom--listed-themes)
(widget-create-child-and-convert widget 'push-button
:button-face-get 'ignore
:mouse-face-get 'ignore
:value (format " %s" theme)
- :action 'widget-parent-action)
- (widget-insert ?\n)))
+ :action 'widget-parent-action
+ :help-echo help-echo)
+ (widget-insert " -- "
+ (propertize (custom-theme-summary theme)
+ 'face 'shadow)
+ ?\n)))
(goto-char (point-min))
(widget-setup))
+(defun custom-theme-summary (theme)
+ "Return the summary line of THEME."
+ (let (doc)
+ (if (custom-theme-p theme)
+ (setq doc (get theme 'theme-documentation))
+ (let ((fn (locate-file (concat (symbol-name theme) "-theme.el")
+ (custom-theme--load-path)
+ '("" "c"))))
+ (when fn
+ (with-temp-buffer
+ (insert-file-contents fn)
+ (let ((sexp (let ((read-circle nil))
+ (condition-case nil
+ (read (current-buffer))
+ (end-of-file nil)))))
+ (and sexp (listp sexp)
+ (eq (car sexp) 'deftheme)
+ (setq doc (nth 2 sexp))))))))
+ (cond ((null doc)
+ "(no documentation available)")
+ ((string-match ".*" doc)
+ (match-string 0 doc))
+ (t doc))))
+
(defun custom-theme-checkbox-toggle (widget &optional event)
(let ((this-theme (widget-get widget :theme-name)))
(if (widget-value widget)