Commit 80d9508a authored by Stefan Monnier's avatar Stefan Monnier
Browse files

(cua-mode): Use define-minor-mode.

(cua-global-mark-face): Fix face format.
parent eb81f275
2003-04-18 Stefan Monnier <>
* emulation/cua-base.el (cua-mode): Use define-minor-mode.
(cua-global-mark-face): Fix face format.
* emacs-lisp/easy-mmode.el (define-minor-mode): Only echo a message
if the body didn't do so already.
(easy-mmode-define-keymap): Remove unused var `suppress'.
* view.el (view-read-only): Move to files.el.
* files.el (view-read-only): Move from view.el.
......@@ -260,29 +260,6 @@
:link '(emacs-commentary-link :tag "Commentary" "cua-base.el")
:link '(emacs-library-link :tag "Lisp File" "cua-base.el"))
(defcustom cua-mode nil
"Non-nil means that CUA emulation mode is enabled.
In CUA mode, shifted movement keys highlight and extend the region.
When a region is highlighted, the binding of the C-x and C-c keys are
temporarily changed to work as Motif, MAC or MS-Windows cut and paste.
Also, insertion commands first delete the region and then insert.
This mode enables Transient Mark mode and it provides a superset of the
PC Selection Mode and Delete Selection Modes.
Setting this variable directly does not take effect;
use either \\[customize] or the function `cua-mode'."
:set (lambda (symbol value)
(cua-mode (or value 0)))
:initialize 'custom-initialize-default
:set-after '(cua-enable-modeline-indications cua-use-hyper-key)
:require 'cua-base
:link '(emacs-commentary-link "cua-base.el")
:version "21.4"
:type 'boolean
:group 'cua)
(defcustom cua-enable-cua-keys t
"*Enable using C-z, C-x, C-c, and C-v for undo, cut, copy, and paste.
If the value is t, these mappings are always enabled. If the value is
......@@ -405,9 +382,9 @@ Can be toggled by [M-p] while the rectangle is active,"
:group 'cua)
(defface cua-global-mark-face '((((class color))
(:foreground "black")
(:background "yellow"))
(t (:bold t)))
:foreground "black"
:background "yellow")
(t :bold t))
"*Font used by CUA for highlighting the global mark."
:group 'cua)
......@@ -1181,19 +1158,17 @@ Extra commands should be added to `cua-movement-commands'")
(defvar cua--saved-state nil)
(defun cua-mode (&optional arg)
(define-minor-mode cua-mode
"Toggle CUA key-binding mode.
When enabled, using shifted movement keys will activate the region (and
highlight the region using `transient-mark-mode'), and typed text replaces
the active selection. C-z, C-x, C-c, and C-v will undo, cut, copy, and
paste (in addition to the normal emacs bindings)."
(interactive "P")
(setq cua-mode
((null arg) (not cua-mode))
((symbolp arg) t)
(t (> (prefix-numeric-value arg) 0))))
:global t
:set-after '(cua-enable-modeline-indications cua-use-hyper-key)
:require 'cua-base
:link '(emacs-commentary-link "cua-base.el")
:version "21.4"
(setq mark-even-if-inactive t)
(setq highlight-nonselected-windows nil)
(make-variable-buffer-local 'cua--explicit-region-start)
......@@ -1235,9 +1210,7 @@ paste (in addition to the normal emacs bindings)."
(setq transient-mark-mode (and cua-mode
(if cua-highlight-region-shift-only
(not cua--explicit-region-start)
(if (interactive-p)
(message "CUA mode enabled")))
(setq transient-mark-mode (car cua--saved-state))
(if (nth 1 cua--saved-state)
......@@ -1250,11 +1223,7 @@ paste (in addition to the normal emacs bindings)."
(if (and (nth 1 cua--saved-state) (nth 2 cua--saved-state)) " and" "")
(if (nth 2 cua--saved-state) " PC-Selection" "")
(if (or (nth 1 cua--saved-state) (nth 2 cua--saved-state)) " enabled" "")))
(setq cua--saved-state nil))
(if (interactive-p)
(message "CUA mode disabled")))))
(setq cua--saved-state nil))))
(defun cua-debug ()
"Toggle cua debugging."
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