1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2025-01-18 18:05:07 +00:00
emacs/lisp/term/sup-mouse.el
Chong Yidong 3726946669 Remove incorrect uses of "modeline".
* ansi-color.el (ansi-color-faces-vector): Change default faces.

* cus-edit.el (mode-line):
* dframe.el (dframe-mouse-hscroll):
* emacs-lisp/re-builder.el:
* emacs-lisp/easy-mmode.el (define-minor-mode):
* frame.el (set-frame-name):
* help.el (lookup-minor-mode-from-indicator):
* net/rcirc.el (rcirc-activity-string, rcirc-short-buffer-name):
* progmodes/cc-cmds.el (c-toggle-auto-newline)
(c-toggle-hungry-state):
* progmodes/antlr-mode.el (antlr-language-alist):
* progmodes/idlw-shell.el (idlwave-shell-electric-stop-line-face):
* progmodes/vhdl-mode.el (vhdl-mode):
* progmodes/which-func.el (which-func, which-func-cleanup-function):
* term/ns-win.el (ns-face-at-pos):
* term/sup-mouse.el (sup-mouse-report):
* textmodes/flyspell.el (flyspell-mode-line-string):
* textmodes/ispell.el (ispell-highlight-face):
* textmodes/reftex-global.el:
* vc/vc-arch.el (vc-arch-mode-line-string):
* vc/vc-cvs.el (vc-cvs-mode-line-string):
* vc/vc-git.el (vc-git-mode-line-string):
* vc/vc-hooks.el (vc-display-status)
(vc-default-mode-line-string):
* vc/vc-mtn.el (vc-mtn-mode-line-string): Doc fixes.

* dired.el (dired-sort-set-mode-line): Rename from
dired-sort-set-modeline.  All callers changed.

* foldout.el (foldout-mode-line-string): Rename from
foldout-modeline-string.  All callers changed.
(foldout-update-mode-line): Rename from foldout-update-modeline.

* strokes.el (strokes-lighter): Rename from
strokes-modeline-string.

* subr.el (redraw-modeline): Make into obsolete alias.

* calendar/timeclock.el (timeclock-mode-line-display): Rename from
timeclock-modeline-display.  Make old name an alias.
(timeclock-update-mode-line): Likewise.  All callers changed.
(timeclock-mode-line-display): No need to check before using
add-hook.
(timeclock-relative, timeclock-day-over-hook)
(timeclock-use-elapsed, timeclock-mode-string)
(timeclock-mode-line-display): Doc fix, "modeline" -> "mode line".

* emulation/crisp.el (crisp-mode-mode-line-string): Rename from
crisp-mode-modeline-string.

* erc-track.el (erc-track, erc-track-faces-priority-list)
(erc-track-faces-normal-list, erc-track-find-face)
(erc-track-modified-channels): Fix modeline -> mode line in docs.

* eshell/esh-mode.el (eshell-status-in-mode-line): Rename from
eshell-status-in-modeline.

* org-clock.el (org-clock-string-limit)
(org-clock-modeline-total, org-clock-task-overrun-text)
(org-clock-mode-line-entry): Doc fix, "modeline" -> "mode line".

* play/solitaire.el (solitaire-build-mode-line): Rename from
solitaire-build-modeline.  All callers changed.

* play/zone.el (zone-hiding-mode-line): Rename from
zone-hiding-modeline.  All callers changed.
(zone): Remove unusued `modeline-hidden-level' property.

* progmodes/xscheme.el (xscheme-mode-line-initialize): Rename from
xscheme-modeline-initialize.  All callers changed.

* textmodes/sgml-mode.el (html-face-tag-alist)
(html-tag-face-alist): Use mode-line face instead of obsolete
alias modeline.

Fixes: debbugs:10329
2012-06-02 18:56:09 +08:00

201 lines
5.6 KiB
EmacsLisp
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

;;; sup-mouse.el --- supdup mouse support for lisp machines
;; Copyright (C) 1985-1986, 2001-2012 Free Software Foundation, Inc.
;; Author: Wolfgang Rupprecht
;; Maintainer: FSF
;; Created: 21 Nov 1986
;; Keywords: hardware
;; (from code originally written by John Robinson@bbn for the bitgraph)
;; This file is part of GNU Emacs.
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
;; the Free Software Foundation, either version 3 of the License, or
;; (at your option) any later version.
;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
;;; Commentary:
;;; Code:
;;; User customization option:
(defcustom sup-mouse-fast-select-window nil
"Non-nil means mouse hits select new window, then execute.
Otherwise just select."
:type 'boolean
:group 'mouse)
(defconst mouse-left 0)
(defconst mouse-center 1)
(defconst mouse-right 2)
(defconst mouse-2left 4)
(defconst mouse-2center 5)
(defconst mouse-2right 6)
(defconst mouse-3left 8)
(defconst mouse-3center 9)
(defconst mouse-3right 10)
;;; Defuns:
(defun sup-mouse-report ()
"This function is called directly by the mouse, it parses and
executes the mouse commands.
L move point * |---- These apply for mouse click in a window.
2L delete word |
3L copy word | If sup-mouse-fast-select-window is nil,
C move point and yank * | just selects that window.
2C yank pop |
R set mark * |
2R delete region |
3R copy region |
on mode line on \"scroll bar\" in minibuffer
L scroll-up line to top execute-extended-command
C proportional goto-char line to middle mouse-help
R scroll-down line to bottom eval-expression"
(interactive)
(let*
;; expect a string of <esc>:<buttons>;<x-pos>;<y-pos>c
((buttons (sup-get-tty-num ?\;))
(x (sup-get-tty-num ?\;))
(y (sup-get-tty-num ?c))
(window (sup-pos-to-window x y))
(edges (window-edges window))
(old-window (selected-window))
(in-minibuf-p (eq y (1- (frame-height))))
(same-window-p (and (not in-minibuf-p) (eq window old-window)))
(in-mode-line-p (eq y (1- (nth 3 edges))))
(in-scrollbar-p (>= x (1- (nth 2 edges)))))
(setq x (- x (nth 0 edges)))
(setq y (- y (nth 1 edges)))
; (error "mouse-hit %d %d %d" buttons x y) ;;;; debug
(cond (in-mode-line-p
(select-window window)
(cond ((= buttons mouse-left)
(scroll-up))
((= buttons mouse-right)
(scroll-down))
((= buttons mouse-center)
(goto-char (/ (* x
(- (point-max) (point-min)))
(1- (window-width))))
(beginning-of-line)
(what-cursor-position)))
(select-window old-window))
(in-scrollbar-p
(select-window window)
(scroll-up
(cond ((= buttons mouse-left)
y)
((= buttons mouse-right)
(+ y (- 2 (window-height))))
((= buttons mouse-center)
(/ (+ 2 y y (- (window-height))) 2))
(t
0)))
(select-window old-window))
(same-window-p
(cond ((= buttons mouse-left)
(sup-move-point-to-x-y x y))
((= buttons mouse-2left)
(sup-move-point-to-x-y x y)
(kill-word 1))
((= buttons mouse-3left)
(sup-move-point-to-x-y x y)
(save-excursion
(copy-region-as-kill
(point) (progn (forward-word 1) (point))))
(setq this-command 'yank)
)
((= buttons mouse-right)
(push-mark)
(sup-move-point-to-x-y x y)
(exchange-point-and-mark))
((= buttons mouse-2right)
(push-mark)
(sup-move-point-to-x-y x y)
(kill-region (mark) (point)))
((= buttons mouse-3right)
(push-mark)
(sup-move-point-to-x-y x y)
(copy-region-as-kill (mark) (point))
(setq this-command 'yank))
((= buttons mouse-center)
(sup-move-point-to-x-y x y)
(setq this-command 'yank)
(yank))
((= buttons mouse-2center)
(yank-pop 1))
)
)
(in-minibuf-p
(cond ((= buttons mouse-right)
(call-interactively 'eval-expression))
((= buttons mouse-left)
(call-interactively 'execute-extended-command))
((= buttons mouse-center)
(describe-function 'sup-mouse-report)); silly self help
))
(t ;in another window
(select-window window)
(cond ((not sup-mouse-fast-select-window))
((= buttons mouse-left)
(sup-move-point-to-x-y x y))
((= buttons mouse-right)
(push-mark)
(sup-move-point-to-x-y x y)
(exchange-point-and-mark))
((= buttons mouse-center)
(sup-move-point-to-x-y x y)
(setq this-command 'yank)
(yank))
))
)))
(defun sup-get-tty-num (term-char)
"Read from terminal until TERM-CHAR is read, and return intervening number.
Upon non-numeric not matching TERM-CHAR signal an error."
(let
((num 0)
(char (read-char)))
(while (and (>= char ?0)
(<= char ?9))
(setq num (+ (* num 10) (- char ?0)))
(setq char (read-char)))
(or (eq term-char char)
(error "Invalid data format in mouse command"))
num))
(defun sup-move-point-to-x-y (x y)
"Position cursor in window coordinates.
X and Y are 0-based character positions in the window."
(move-to-window-line y)
(move-to-column x)
)
(defun sup-pos-to-window (x y)
"Find window corresponding to frame coordinates.
X and Y are 0-based character positions on the frame."
(get-window-with-predicate (lambda (w)
(coordinates-in-window-p (cons x y) w))))
;;; sup-mouse.el ends here