(A-GT-K02849): New abstract node; unify A-U+8FB0-itaiji-001.
[chise/xemacs-chise.git.1] / lisp / modeline.el
index 778d2c9..3e10878 100644 (file)
   "Modeline customizations."
   :group 'environment)
 
+(defcustom modeline-3d-p ;; added for the options menu
+  (let ((thickness
+        (specifier-instance modeline-shadow-thickness)))
+    (and (integerp thickness)
+        (> thickness 0)))
+  "Whether the default toolbar is globally visible. This option can be
+customized through the options menu."
+  :group 'display
+  :type 'boolean
+  :set #'(lambda (var val)
+          (if val
+              (set-specifier modeline-shadow-thickness 2)
+            (set-specifier modeline-shadow-thickness 0))
+          (redraw-modeline t)
+          (setq modeline-3d-p val))
+  )
+
 (defcustom drag-divider-event-lag 150
   "*The pause (in msecs) between divider drag events before redisplaying.
 If this value is too small, dragging will be choppy because redisplay cannot
@@ -79,7 +96,23 @@ a scrollbar for its own text, which then moves in the opposite direction."
                  (set-glyph-image modeline-pointer-glyph "fleur" 'global 'x))
                 (t
                  (set-glyph-image modeline-pointer-glyph "sb_v_double_arrow"
-                                  'global 'x)))))
+                                  'global 'x))))
+        (when (featurep 'mswindows)
+          (cond ((eq val t)
+                 (set-glyph-image modeline-pointer-glyph
+                                  [mswindows-resource :resource-type cursor
+                                                      :resource-id "SizeAll"]
+                                  'global 'mswindows))
+                ((eq val 'scrollbar)
+                 (set-glyph-image modeline-pointer-glyph
+                                  [mswindows-resource :resource-type cursor
+                                                      :resource-id "Normal"]
+                                  'global 'mswindows))
+                (t
+                 (set-glyph-image modeline-pointer-glyph
+                                  [mswindows-resource :resource-type cursor
+                                                      :resource-id "SizeNS"]
+                                  'global 'mswindows)))))
   :group 'modeline)
 
 (defun mouse-drag-modeline (event)
@@ -293,13 +326,9 @@ the buffer of the window whose modeline was clicked upon.")
 (make-face 'modeline-mousable "Face for mousable portions of the modeline.")
 (set-face-parent 'modeline-mousable 'modeline nil '(default))
 (when (featurep 'window-system)
-  (set-face-foreground 'modeline-mousable
-                      '(((default color x) . "firebrick")
-                        ((default color mswindows) . "firebrick"))
-                        'global))
-(when (featurep 'x)
-  (set-face-font 'modeline-mousable [bold] nil '(default mono x))
-  (set-face-font 'modeline-mousable [bold] nil '(default grayscale x)))
+  (set-face-foreground 'modeline-mousable "firebrick" nil '(default color win))
+  (set-face-font 'modeline-mousable [bold] nil '(default mono win))
+  (set-face-font 'modeline-mousable [bold] nil '(default grayscale win)))
 
 (defmacro make-modeline-command-wrapper (command)
   `#'(lambda (event)
@@ -333,12 +362,8 @@ in the list takes precedence.")
 (set-face-parent 'modeline-mousable-minor-mode 'modeline-mousable nil
                 '(default))
 (when (featurep 'window-system)
-  (set-face-foreground 'modeline-mousable-minor-mode
-                      '(((default color x) . "green4")
-                        ((default color x) . "forestgreen")
-                        ((default color mswindows) . "green4")
-                        ((default color mswindows) . "forestgreen"))
-                      'global))
+  (set-face-foreground 'modeline-mousable-minor-mode '("green4" "forestgreen")
+                      nil '(default color win)))
 
 (defvar modeline-mousable-minor-mode-extent (make-extent nil nil)
   ;; alliteration at its finest.
@@ -538,13 +563,9 @@ parentheses on the modeline."
           "Face for the buffer ID string in the modeline.")
 (set-face-parent 'modeline-buffer-id 'modeline nil '(default))
 (when (featurep 'window-system)
-  (set-face-foreground 'modeline-buffer-id
-                      '(((default color x) . "blue4")
-                        ((default color mswindows) . "blue4"))
-                      'global))
-(when (featurep 'x)
-  (set-face-font 'modeline-buffer-id [bold-italic] nil '(default mono x))
-  (set-face-font 'modeline-buffer-id [bold-italic] nil '(default grayscale x)))
+  (set-face-foreground 'modeline-buffer-id "blue4" nil '(default color win))
+  (set-face-font 'modeline-buffer-id [bold-italic] nil '(default mono win))
+  (set-face-font 'modeline-buffer-id [bold-italic] nil '(default grayscale win)))
 (when (featurep 'tty)
   (set-face-font 'modeline-buffer-id [bold-italic] nil '(default tty)))
 
@@ -567,12 +588,17 @@ parentheses on the modeline."
                     "button2 cycles to the next buffer")
 
 (defconst modeline-buffer-identification
-  (list (cons modeline-buffer-id-left-extent (purecopy "XEmacs%N:"))
+  (list (cons modeline-buffer-id-left-extent "XEmacs%N:")
                                        ; this used to be "XEmacs:"
-       (cons modeline-buffer-id-right-extent (purecopy " %17b")))
+       (cons modeline-buffer-id-right-extent " %17b"))
   "Modeline control for identifying the buffer being displayed.
-Its default value is \"XEmacs: %17b\" (NOT!).  Major modes that edit things
-other than ordinary files may change this (e.g. Info, Dired,...)")
+Its default value is
+
+  (list (cons modeline-buffer-id-left-extent \"XEmacs%N:\")
+       (cons modeline-buffer-id-right-extent \" %17b\")))
+
+Major modes that edit things other than ordinary files may change this
+(e.g. Info, Dired,...).")
 (make-variable-buffer-local 'modeline-buffer-identification)
 
 ;; These are for the sake of minor mode menu.  #### All of this is
@@ -600,7 +626,7 @@ Normally nil in most modes, since there is no process to display.")
 (set-extent-property modeline-modified-extent 'help-echo
                     "button2 toggles the buffer's read-only status")
 
-(defconst modeline-modified (purecopy '("--%1*%1+-"))
+(defconst modeline-modified '("--%1*%1+-")
   "Modeline control for displaying whether current buffer is modified.")
 (make-variable-buffer-local 'modeline-modified)
 
@@ -619,21 +645,21 @@ Normally nil in most modes, since there is no process to display.")
 (setq-default
  modeline-format
  (list
-  (purecopy "")
+  ""
   (cons modeline-modified-extent 'modeline-modified)
   (cons modeline-buffer-id-extent 'modeline-buffer-identification)
-  (purecopy "   ")
+  "   "
   'global-mode-string
-  (purecopy "   %[(")
+  "   %[("
   (cons modeline-minor-mode-extent
-       (list (purecopy "") 'mode-name 'minor-mode-alist))
-  (cons modeline-narrowed-extent (purecopy "%n"))
+       (list "" 'mode-name 'minor-mode-alist))
+  (cons modeline-narrowed-extent "%n")
   'modeline-process
-  (purecopy ")%]----")
-  (list 'line-number-mode (purecopy "L%l--"))
-  (list 'column-number-mode (purecopy "C%c--"))
-  (cons -3 (purecopy "%p"))
-  (purecopy "-%-")))
+  ")%]----"
+  (list 'line-number-mode "L%l--")
+  (list 'column-number-mode "C%c--")
+  (cons -3 "%p")
+  "-%-"))
 
 ;;; Added for XEmacs 20.3.  Provide wrapper for vc since it may not always be
 ;;; present, and its symbols are not visible this early in the dump if it