* 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.
This commit is contained in:
parent
f6a18aa2a4
commit
87911bdbb8
3 changed files with 66 additions and 16 deletions
|
|
@ -1,3 +1,15 @@
|
|||
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.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue