Commit 87911bdb authored by Chong Yidong's avatar Chong Yidong
Browse files

* cus-edit.el (custom-button, custom-button-pressed): New vars.

	(custom-raised-buttons): Add :set spec.
	(custom-button-unraised, custom-button-pressed-unraised): New
	faces, so that custom-raised-buttons actually does something.
	(custom-mode): Use custom-button and custom-button-pressed.

	* wid-edit.el (widget-specify-button): Don't ignore
	widget-mouse-face on graphic terminals.
	(widget-move-and-invoke): Cleanup.
parent f6a18aa2
2005-10-23 Chong Yidong <cyd@stupidchicken.com>
* cus-edit.el (custom-button, custom-button-pressed): New vars.
(custom-raised-buttons): Add :set spec.
(custom-button-unraised, custom-button-pressed-unraised): New
faces, so that custom-raised-buttons actually does something.
(custom-mode): Use custom-button and custom-button-pressed.
* wid-edit.el (widget-specify-button): Don't ignore
widget-mouse-face on graphic terminals.
(widget-move-and-invoke): Cleanup.
2005-10-23 Thien-Thi Nguyen <ttn@gnu.org>
* whitespace.el (whitespace-cleanup): Doc fix.
......
......@@ -1377,13 +1377,27 @@ This button will have a menu with all three reset operations."
(interactive)
(quit-window custom-buffer-done-kill))
(defvar custom-button nil
"Face used for buttons in customization buffers.")
(defvar custom-button-pressed nil
"Face used for pressed buttons in customization buffers.")
(defcustom custom-raised-buttons (not (equal (face-valid-attribute-values :box)
'(("unspecified" . unspecified))))
"If non-nil, indicate active buttons in a `raised-button' style.
Otherwise use brackets."
:type 'boolean
:version "21.1"
:group 'custom-buffer)
:group 'custom-buffer
:set (lambda (variable value)
(custom-set-default variable value)
(setq custom-button
(if value 'custom-button 'custom-button-unraised))
(setq custom-button-pressed
(if value
'custom-button-pressed
'custom-button-pressed-unraised))))
(defun custom-buffer-create-internal (options &optional description)
(custom-mode)
......@@ -1896,24 +1910,52 @@ and `face'."
:background "lightgrey" :foreground "black"))
(t
nil))
"Face used for buttons in customization buffers."
"Face for custom buffer buttons if `custom-raised-buttons' is non-nil."
:version "21.1"
:group 'custom-faces)
;; backward-compatibility alias
(put 'custom-button-face 'face-alias 'custom-button)
(defface custom-button-unraised
'((((min-colors 88)
(class color) (background light)) :foreground "blue1" :underline t)
(((class color) (background light)) :foreground "blue" :underline t)
(((min-colors 88)
(class color) (background dark)) :foreground "cyan1" :underline t)
(((class color) (background dark)) :foreground "cyan" :underline t)
(t :underline t))
"Face for custom buffer buttons if `custom-raised-buttons' is nil."
:version "22.1"
:group 'custom-faces)
(setq custom-button
(if custom-raised-buttons 'custom-button 'custom-button-unraised))
(defface custom-button-pressed
'((((type x w32 mac) (class color))
(:box (:line-width 2 :style pressed-button)
:background "lightgrey" :foreground "black"))
(t
(:inverse-video t)))
"Face used for buttons in customization buffers."
"Face for pressed custom buttons if `custom-raised-buttons' is non-nil."
:version "21.1"
:group 'custom-faces)
;; backward-compatibility alias
(put 'custom-button-pressed-face 'face-alias 'custom-button-pressed)
(defface custom-button-pressed-unraised
'((default :inherit custom-button-unraised)
(((class color) (background light)) :foreground "magenta4")
(((class color) (background dark)) :foreground "violet"))
"Face for pressed custom buttons if `custom-raised-buttons' is nil."
:version "22.1"
:group 'custom-faces)
(setq custom-button-pressed
(if custom-raised-buttons
'custom-button-pressed
'custom-button-pressed-unraised))
(defface custom-documentation nil
"Face used for documentation strings in customization buffers."
:group 'custom-faces)
......@@ -4311,10 +4353,11 @@ if that value is non-nil."
(make-local-variable 'widget-documentation-face)
(setq widget-documentation-face 'custom-documentation)
(make-local-variable 'widget-button-face)
(setq widget-button-face 'custom-button)
(set (make-local-variable 'widget-button-pressed-face) 'custom-button-pressed)
(set (make-local-variable 'widget-mouse-face)
'custom-button-pressed) ; buttons `depress' when moused
(setq widget-button-face custom-button)
(set (make-local-variable 'widget-button-pressed-face) custom-button-pressed)
(if custom-raised-buttons
(set (make-local-variable 'widget-mouse-face) custom-button))
;; When possible, use relief for buttons, not bracketing. This test
;; may not be optimal.
(when custom-raised-buttons
......
......@@ -403,10 +403,7 @@ new value.")
;; We want to avoid the face with image buttons.
(unless (widget-get widget :suppress-face)
(overlay-put overlay 'face (widget-apply widget :button-face-get))
; Text terminals cannot change mouse pointer shape, so use mouse
; face instead.
(or (display-graphic-p)
(overlay-put overlay 'mouse-face widget-mouse-face)))
(overlay-put overlay 'mouse-face widget-mouse-face))
(overlay-put overlay 'pointer 'hand)
(overlay-put overlay 'follow-link follow-link)
(overlay-put overlay 'help-echo help-echo)))
......@@ -664,11 +661,9 @@ button is pressed or inactive, respectively. These are currently ignored."
"Move to where you click, and if it is an active field, invoke it."
(interactive "e")
(mouse-set-point event)
(if (widget-event-point event)
(let* ((pos (widget-event-point event))
(button (get-char-property pos 'button)))
(if button
(widget-button-click event)))))
(let ((pos (widget-event-point event)))
(if (and pos (get-char-property pos 'button))
(widget-button-click event))))
;;; Buttons.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment