emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] /srv/bzr/emacs/trunk r101488: * lisp/fringe.el (fringe-sty


From: Stefan Monnier
Subject: [Emacs-diffs] /srv/bzr/emacs/trunk r101488: * lisp/fringe.el (fringe-styles): New var.
Date: Sun, 19 Sep 2010 11:32:52 +0200
User-agent: Bazaar (2.0.3)

------------------------------------------------------------
revno: 101488
committer: Stefan Monnier <address@hidden>
branch nick: trunk
timestamp: Sun 2010-09-19 11:32:52 +0200
message:
  * lisp/fringe.el (fringe-styles): New var.
  (fringe-mode, fringe-query-style): Use it.
modified:
  lisp/ChangeLog
  lisp/fringe.el
=== modified file 'lisp/ChangeLog'
--- a/lisp/ChangeLog    2010-09-19 02:11:18 +0000
+++ b/lisp/ChangeLog    2010-09-19 09:32:52 +0000
@@ -1,7 +1,12 @@
+2010-09-19  Stefan Monnier  <address@hidden>
+
+       * fringe.el (fringe-styles): New var.
+       (fringe-mode, fringe-query-style): Use it.
+
 2010-09-18  Michael R. Mauger  <address@hidden>
 
        * progmodes/sql.el: Version 2.8
-       (sql-login-params): Updated widget structure; changes still
+       (sql-login-params): Update widget structure; changes still
        needed.
        (sql-product-alist): Add :list-all and :list-table features for
        SQLite, Postgres and MySQL products.

=== modified file 'lisp/fringe.el'
--- a/lisp/fringe.el    2010-09-18 09:38:52 +0000
+++ b/lisp/fringe.el    2010-09-19 09:32:52 +0000
@@ -136,6 +136,14 @@
       ;; Otherwise impose the user-specified value of fringe-mode.
       (custom-initialize-reset symbol value))))
 
+(defconst fringe-styles
+  '(("default" . nil)
+    ("no-fringes" . 0)
+    ("right-only" . (0 . nil))
+    ("left-only" . (nil . 0))
+    ("half-width" . (4 . 4))
+    ("minimal" . (1 . 1))))
+
 (defcustom fringe-mode nil
   "Specify appearance of fringes on all frames.
 This variable can be nil (the default) meaning the fringes should have
@@ -152,16 +160,19 @@
 Setting the variable with a customization buffer also takes effect.
 If you only want to modify the appearance of the fringe in one frame,
 you can use the interactive function `set-fringe-style'."
-  :type '(choice (const :tag "Default width" nil)
-                (const :tag "No fringes" 0)
-                (const :tag "Only right" (0 . nil))
-                (const :tag "Only left" (nil . 0))
-                (const :tag "Half width" (4 . 4))
-                (const :tag "Minimal" (1 . 1))
-                (integer :tag "Specific width")
-                (cons :tag "Different left/right sizes"
-                      (integer :tag "Left width")
-                      (integer :tag "Right width")))
+  :type `(choice
+          ,@ (mapcar (lambda (style)
+                      (let ((name
+                             (replace-regexp-in-string "-" " " (car style))))
+                        `(const :tag
+                                ,(concat (capitalize (substring name 0 1))
+                                         (substring name 1))
+                                ,(cdr style))))
+                    fringe-styles)
+          (integer :tag "Specific width")
+          (cons :tag "Different left/right sizes"
+                (integer :tag "Left width")
+                (integer :tag "Right width")))
   :group 'fringe
   :require 'fringe
   :initialize 'fringe-mode-initialize
@@ -178,27 +189,20 @@
 `default-frame-alist' is used when user enters the empty string.
 Otherwise the negation of the fringe value in the currently selected
 frame parameter is used."
-  (let ((mode (intern (completing-read
-                      (concat
-                       "Select fringe mode for "
-                       (if all-frames "all frames" "selected frame")
-                       " (type ? for list): ")
-                      '(("none") ("default") ("left-only")
-                        ("right-only") ("half") ("minimal"))
-                      nil t))))
-    (cond ((eq mode 'none) 0)
-         ((eq mode 'default) nil)
-         ((eq mode 'left-only) '(nil . 0))
-         ((eq mode 'right-only) '(0 . nil))
-         ((eq mode 'half) '(4 . 4))
-         ((eq mode 'minimal) '(1 . 1))
-         ((eq mode (intern ""))
-          (if (eq 0 (cdr (assq 'left-fringe
-                               (if all-frames
-                                   default-frame-alist
-                                 (frame-parameters (selected-frame))))))
-              nil
-            0)))))
+  (let* ((mode (completing-read
+                (concat
+                 "Select fringe mode for "
+                 (if all-frames "all frames" "selected frame")
+                 " (type ? for list): ")
+                fringe-styles nil t))
+         (style (assoc (downcase mode) fringe-styles)))
+    (if style (cdr style)
+      (if (eq 0 (cdr (assq 'left-fringe
+                           (if all-frames
+                               default-frame-alist
+                             (frame-parameters (selected-frame))))))
+          nil
+        0))))
 
 (defun fringe-mode (&optional mode)
   "Set the default appearance of fringes on all frames.


reply via email to

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