changeset 111171:3b987881726e

Avoid inline image variables for checkboxes (Bug#7222). * etc/images/checked.xpm: * etc/images/unchecked.xpm: New images. * image.el (image-checkbox-checked, image-checkbox-unchecked): Deleted (Bug#7222). * startup.el (fancy-startup-tail): Instead of using inline images, refer to image files from etc/. * wid-edit.el (checkbox): Likewise. (widget-image-find): Center image specs.
author Chong Yidong <cyd@stupidchicken.com>
date Sun, 24 Oct 2010 19:40:55 -0400
parents 93d41f7676cf
children f8f3c137c1f2
files etc/ChangeLog etc/images/checked.xpm etc/images/unchecked.xpm lisp/ChangeLog lisp/image.el lisp/startup.el lisp/wid-edit.el
diffstat 7 files changed, 80 insertions(+), 33 deletions(-) [+]
line wrap: on
line diff
--- a/etc/ChangeLog	Sun Oct 24 15:45:10 2010 -0700
+++ b/etc/ChangeLog	Sun Oct 24 19:40:55 2010 -0400
@@ -1,3 +1,8 @@
+2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
+
+	* images/checked.xpm:
+	* images/unchecked.xpm: New images.
+
 2010-10-20  Richard Stallman  <rms@gnu.org>
 
 	* DISTRIB: Update donation section.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/checked.xpm	Sun Oct 24 19:40:55 2010 -0400
@@ -0,0 +1,20 @@
+/* XPM */
+static char * checked_xpm[] = {
+"12 12 5 1",
+" 	c None",
+".	c gray20",
+"+	c white",
+"@	c gray70",
+"#	c black",
+"............",
+"............",
+"..@@@@@@##+.",
+"..@@@@@@##+.",
+"..#@@@@##@+.",
+"..##@@@##@+.",
+"..###@##@@+.",
+"..@#####@@+.",
+"..@@###@@@+.",
+"..@++##++++.",
+".@+++++++++.",
+"............"};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/etc/images/unchecked.xpm	Sun Oct 24 19:40:55 2010 -0400
@@ -0,0 +1,20 @@
+/* XPM */
+static char * unchecked_xpm[] = {
+"12 12 5 1",
+" 	c None",
+".	c gray20",
+"+	c white",
+"@	c gray70",
+"#	c black",
+"............",
+"............",
+"..@@@@@@@@+.",
+"..@@@@@@@@+.",
+"..@@@@@@@@+.",
+"..@@@@@@@@+.",
+"..@@@@@@@@+.",
+"..@@@@@@@@+.",
+"..@@@@@@@@+.",
+"..@++++++++.",
+".@+++++++++.",
+"............"};
--- a/lisp/ChangeLog	Sun Oct 24 15:45:10 2010 -0700
+++ b/lisp/ChangeLog	Sun Oct 24 19:40:55 2010 -0400
@@ -1,3 +1,14 @@
+2010-10-24  Chong Yidong  <cyd@stupidchicken.com>
+
+	* image.el (image-checkbox-checked, image-checkbox-unchecked):
+	Deleted (Bug#7222).
+
+	* startup.el (fancy-startup-tail): Instead of using inline images,
+	refer to image files from etc/.
+
+	* wid-edit.el (checkbox): Likewise.
+	(widget-image-find): Center image specs.
+
 2010-10-24  Glenn Morris  <rgm@gnu.org>
 
 	* term/ns-win.el (x-select-text): Doc fix.
--- a/lisp/image.el	Sun Oct 24 15:45:10 2010 -0700
+++ b/lisp/image.el	Sun Oct 24 19:40:55 2010 -0400
@@ -723,21 +723,6 @@
 	 (cons (concat "\\." extension "\\'") 'imagemagick)
 	 image-type-file-name-regexps)))))
 
-
-;;; Inline stock images
-
-(defvar image-checkbox-checked
-  (create-image "\300\300\141\143\067\076\034\030"
-		'xbm t :width 8 :height 8 :background "grey75"
-		:foreground "black" :relief -2 :ascent 'center)
-  "Image of a checked checkbox.")
-
-(defvar image-checkbox-unchecked
-  (create-image (make-string 8 0)
-		'xbm t :width 8 :height 8 :background "grey75"
-		:foreground "black" :relief -2 :ascent 'center)
-  "Image of an unchecked checkbox.")
-
 (provide 'image)
 
 ;; arch-tag: 8e76a07b-eb48-4f3e-a7a0-1a7ba9f096b3
--- a/lisp/startup.el	Sun Oct 24 15:45:10 2010 -0700
+++ b/lisp/startup.el	Sun Oct 24 19:40:55 2010 -0400
@@ -1563,21 +1563,26 @@
 		 (kill-buffer "*GNU Emacs*")))
        "  ")
       (when (or user-init-file custom-file)
-	(insert-button
-	 " "
-	 :on-glyph image-checkbox-checked
-	 :off-glyph image-checkbox-unchecked
-	 'checked nil 'display image-checkbox-unchecked 'follow-link t
-	 'action (lambda (button)
-		   (if (overlay-get button 'checked)
-		       (progn (overlay-put button 'checked nil)
-			      (overlay-put button 'display
-					   (overlay-get button :off-glyph))
-			      (setq startup-screen-inhibit-startup-screen nil))
-		     (overlay-put button 'checked t)
-		     (overlay-put button 'display
-				  (overlay-get button :on-glyph))
-		     (setq startup-screen-inhibit-startup-screen t))))
+	(let ((checked (create-image "checked.xpm"
+				     nil nil :ascent 'center))
+	      (unchecked (create-image "unchecked.xpm"
+				       nil nil :ascent 'center)))
+	  (insert-button
+	   " "
+	   :on-glyph checked
+	   :off-glyph unchecked
+	   'checked nil 'display unchecked 'follow-link t
+	   'action (lambda (button)
+		     (if (overlay-get button 'checked)
+			 (progn (overlay-put button 'checked nil)
+				(overlay-put button 'display
+					     (overlay-get button :off-glyph))
+				(setq startup-screen-inhibit-startup-screen
+				      nil))
+		       (overlay-put button 'checked t)
+		       (overlay-put button 'display
+				    (overlay-get button :on-glyph))
+		       (setq startup-screen-inhibit-startup-screen t)))))
 	(fancy-splash-insert :face '(variable-pitch (:height 0.9))
 			     " Never show it again.")))))
 
--- a/lisp/wid-edit.el	Sun Oct 24 15:45:10 2010 -0700
+++ b/lisp/wid-edit.el	Sun Oct 24 19:40:55 2010 -0400
@@ -638,7 +638,8 @@
 		specs)
 	   (dolist (elt widget-image-conversion)
 	     (dolist (ext (cdr elt))
-	       (push (list :type (car elt) :file (concat image ext)) specs)))
+	       (push (list :type (car elt) :file (concat image ext)
+			   :ascent 'center) specs)))
  	   (find-image (nreverse specs))))
 	(t
 	 ;; Oh well.
@@ -2195,9 +2196,9 @@
   ;; We could probably do the same job as the images using single
   ;; space characters in a boxed face with a stretch specification to
   ;; make them square.
-  :on-glyph image-checkbox-checked
+  :on-glyph "checked"
   :off "[ ]"
-  :off-glyph image-checkbox-unchecked
+  :off-glyph "unchecked"
   :help-echo "Toggle this item."
   :action 'widget-checkbox-action)