Mercurial > emacs
annotate lisp/term/ns-win.el @ 111243:0989a3a741bd
gnus-start.el (gnus-find-new-newsgroups): Remove gnus-check-first-time-used.
gnus.el: Remove gnus-backup-default-subscribed-newsgroups.
gnus-group.el: Remove gnus-group-fetch-control.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Sat, 30 Oct 2010 15:01:14 +0000 |
parents | 99e2b63fd6dd |
children | 1303259207a9 |
rev | line source |
---|---|
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
1 ;;; ns-win.el --- lisp side of interface with NeXT/Open/GNUstep/MacOS X window system |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
2 |
106815 | 3 ;; Copyright (C) 1993, 1994, 2005, 2006, 2007, 2008, 2009, 2010 |
96805
f38d566bd19b
Add 2007 to copyright years, since was available then.
Glenn Morris <rgm@gnu.org>
parents:
96799
diff
changeset
|
4 ;; Free Software Foundation, Inc. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
5 |
101087
ffd82d2cb8ec
Comments (minor fixes of some header conventions).
Glenn Morris <rgm@gnu.org>
parents:
100908
diff
changeset
|
6 ;; Authors: Carl Edman |
ffd82d2cb8ec
Comments (minor fixes of some header conventions).
Glenn Morris <rgm@gnu.org>
parents:
100908
diff
changeset
|
7 ;; Christian Limpach |
ffd82d2cb8ec
Comments (minor fixes of some header conventions).
Glenn Morris <rgm@gnu.org>
parents:
100908
diff
changeset
|
8 ;; Scott Bender |
ffd82d2cb8ec
Comments (minor fixes of some header conventions).
Glenn Morris <rgm@gnu.org>
parents:
100908
diff
changeset
|
9 ;; Christophe de Dinechin |
ffd82d2cb8ec
Comments (minor fixes of some header conventions).
Glenn Morris <rgm@gnu.org>
parents:
100908
diff
changeset
|
10 ;; Adrian Robert |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
11 ;; Keywords: terminals |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
12 |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
13 ;; This file is part of GNU Emacs. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
14 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
15 ;; GNU Emacs is free software: you can redistribute it and/or modify |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
16 ;; it under the terms of the GNU General Public License as published by |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
17 ;; the Free Software Foundation, either version 3 of the License, or |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
18 ;; (at your option) any later version. |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
19 |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
20 ;; GNU Emacs is distributed in the hope that it will be useful, |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
21 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
22 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
23 ;; GNU General Public License for more details. |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
24 |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
25 ;; You should have received a copy of the GNU General Public License |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
26 ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
27 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
28 ;;; Commentary: |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
29 |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
30 ;; ns-win.el: this file is loaded from ../lisp/startup.el when it |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
31 ;; recognizes that Nextstep windows are to be used. Command line |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
32 ;; switches are parsed and those pertaining to Nextstep are processed |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
33 ;; and removed from the command line. The Nextstep display is opened |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
34 ;; and hooks are set for popping up the initial window. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
35 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
36 ;; startup.el will then examine startup files, and eventually call the hooks |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
37 ;; which create the first window (s). |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
38 |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
39 ;; A number of other Nextstep convenience functions are defined in |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
40 ;; this file, which works in close coordination with src/nsfns.m. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
41 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
42 ;;; Code: |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
43 |
111183 | 44 (or (featurep 'ns) |
98512 | 45 (error "%s: Loading ns-win.el but not compiled for GNUstep/MacOS" |
111183 | 46 (invocation-name))) |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
47 |
111198
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
48 (eval-when-compile (require 'cl)) ; lexical-let |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
49 |
111201 | 50 ;; Documentation-purposes only: actually loaded in loadup.el. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
51 (require 'frame) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
52 (require 'mouse) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
53 (require 'faces) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
54 (require 'menu-bar) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
55 (require 'fontset) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
56 |
101783
9f9c03710f3b
(ns): Define as a custom group.
Glenn Morris <rgm@gnu.org>
parents:
101741
diff
changeset
|
57 (defgroup ns nil |
9f9c03710f3b
(ns): Define as a custom group.
Glenn Morris <rgm@gnu.org>
parents:
101741
diff
changeset
|
58 "GNUstep/Mac OS X specific features." |
9f9c03710f3b
(ns): Define as a custom group.
Glenn Morris <rgm@gnu.org>
parents:
101741
diff
changeset
|
59 :group 'environment) |
9f9c03710f3b
(ns): Define as a custom group.
Glenn Morris <rgm@gnu.org>
parents:
101741
diff
changeset
|
60 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
61 ;;;; Command line argument handling. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
62 |
111185
050a28bd1797
Remove ns-handle-* functions that duplicate x-handle-*.
Glenn Morris <rgm@gnu.org>
parents:
111183
diff
changeset
|
63 (defvar x-invocation-args) |
050a28bd1797
Remove ns-handle-* functions that duplicate x-handle-*.
Glenn Morris <rgm@gnu.org>
parents:
111183
diff
changeset
|
64 (defvar ns-command-line-resources nil) ; FIXME unused? |
96757
18b856a0216f
(ns-handle-switch): Simplify. Handle the numeric case.
Glenn Morris <rgm@gnu.org>
parents:
96748
diff
changeset
|
65 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
66 ;; nsterm.m. |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
67 (defvar ns-input-file) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
68 |
111201 | 69 (defun ns-handle-nxopen (switch &optional temp) |
70 (setq unread-command-events (append unread-command-events | |
71 (if temp '(ns-open-temp-file) | |
72 '(ns-open-file))) | |
111185
050a28bd1797
Remove ns-handle-* functions that duplicate x-handle-*.
Glenn Morris <rgm@gnu.org>
parents:
111183
diff
changeset
|
73 ns-input-file (append ns-input-file (list (pop x-invocation-args))))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
74 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
75 (defun ns-handle-nxopentemp (switch) |
111201 | 76 (ns-handle-nxopen switch t)) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
77 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
78 (defun ns-ignore-1-arg (switch) |
111185
050a28bd1797
Remove ns-handle-* functions that duplicate x-handle-*.
Glenn Morris <rgm@gnu.org>
parents:
111183
diff
changeset
|
79 (setq x-invocation-args (cdr x-invocation-args))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
80 |
97447
378d7afbbe93
(ns-parse-geometry): Rename from x-parse-geometry.
Chong Yidong <cyd@stupidchicken.com>
parents:
97423
diff
changeset
|
81 (defun ns-parse-geometry (geom) |
97423 | 82 "Parse a Nextstep-style geometry string GEOM. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
83 Returns an alist of the form ((top . TOP), (left . LEFT) ... ). |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
84 The properties returned may include `top', `left', `height', and `width'." |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
85 (when (string-match "\\([0-9]+\\)\\( \\([0-9]+\\)\\( \\([0-9]+\\)\ |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
86 \\( \\([0-9]+\\) ?\\)?\\)?\\)?" |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
87 geom) |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
88 (apply |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
89 'append |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
90 (list |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
91 (list (cons 'top (string-to-number (match-string 1 geom)))) |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
92 (if (match-string 3 geom) |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
93 (list (cons 'left (string-to-number (match-string 3 geom))))) |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
94 (if (match-string 5 geom) |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
95 (list (cons 'height (string-to-number (match-string 5 geom))))) |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
96 (if (match-string 7 geom) |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
97 (list (cons 'width (string-to-number (match-string 7 geom))))))))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
98 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
99 ;;;; Keyboard mapping. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
100 |
111183 | 101 (define-obsolete-variable-alias 'ns-alternatives-map 'x-alternatives-map "24.1") |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
102 |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
103 ;; Here are some Nextstep-like bindings for command key sequences. |
102771
15dc97800b2f
(ns-expand-space): remove defvar.
David Reitter <david.reitter@gmail.com>
parents:
102641
diff
changeset
|
104 (define-key global-map [?\s-,] 'customize) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
105 (define-key global-map [?\s-'] 'next-multiframe-window) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
106 (define-key global-map [?\s-`] 'other-frame) |
109379
863ed9bd7c0e
term/ns-win.el: Bind M-~ to 'ns-prev-frame (due to Matthew Dempsky; bug#5084). Remove incorrect binding for S-tab. (ns-alternatives-map): Change S-tab binding to backtab (bug#6616). * simple.el (normal-erase-is-backspace-setup-frame): Set mode on under ns.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
106815
diff
changeset
|
107 (define-key global-map [?\s-~] 'ns-prev-frame) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
108 (define-key global-map [?\s--] 'center-line) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
109 (define-key global-map [?\s-:] 'ispell) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
110 (define-key global-map [?\s-\;] 'ispell-next) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
111 (define-key global-map [?\s-?] 'info) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
112 (define-key global-map [?\s-^] 'kill-some-buffers) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
113 (define-key global-map [?\s-&] 'kill-this-buffer) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
114 (define-key global-map [?\s-C] 'ns-popup-color-panel) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
115 (define-key global-map [?\s-D] 'dired) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
116 (define-key global-map [?\s-E] 'edit-abbrevs) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
117 (define-key global-map [?\s-L] 'shell-command) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
118 (define-key global-map [?\s-M] 'manual-entry) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
119 (define-key global-map [?\s-S] 'ns-write-file-using-panel) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
120 (define-key global-map [?\s-a] 'mark-whole-buffer) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
121 (define-key global-map [?\s-c] 'ns-copy-including-secondary) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
122 (define-key global-map [?\s-d] 'isearch-repeat-backward) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
123 (define-key global-map [?\s-e] 'isearch-yank-kill) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
124 (define-key global-map [?\s-f] 'isearch-forward) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
125 (define-key global-map [?\s-g] 'isearch-repeat-forward) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
126 (define-key global-map [?\s-h] 'ns-do-hide-emacs) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
127 (define-key global-map [?\s-H] 'ns-do-hide-others) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
128 (define-key global-map [?\s-j] 'exchange-point-and-mark) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
129 (define-key global-map [?\s-k] 'kill-this-buffer) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
130 (define-key global-map [?\s-l] 'goto-line) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
131 (define-key global-map [?\s-m] 'iconify-frame) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
132 (define-key global-map [?\s-n] 'make-frame) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
133 (define-key global-map [?\s-o] 'ns-open-file-using-panel) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
134 (define-key global-map [?\s-p] 'ns-print-buffer) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
135 (define-key global-map [?\s-q] 'save-buffers-kill-emacs) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
136 (define-key global-map [?\s-s] 'save-buffer) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
137 (define-key global-map [?\s-t] 'ns-popup-font-panel) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
138 (define-key global-map [?\s-u] 'revert-buffer) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
139 (define-key global-map [?\s-v] 'yank) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
140 (define-key global-map [?\s-w] 'delete-frame) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
141 (define-key global-map [?\s-x] 'kill-region) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
142 (define-key global-map [?\s-y] 'ns-paste-secondary) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
143 (define-key global-map [?\s-z] 'undo) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
144 (define-key global-map [?\s-|] 'shell-command-on-region) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
145 (define-key global-map [s-kp-bar] 'shell-command-on-region) |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
146 ;; (as in Terminal.app) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
147 (define-key global-map [s-right] 'ns-next-frame) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
148 (define-key global-map [s-left] 'ns-prev-frame) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
149 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
150 (define-key global-map [home] 'beginning-of-buffer) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
151 (define-key global-map [end] 'end-of-buffer) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
152 (define-key global-map [kp-home] 'beginning-of-buffer) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
153 (define-key global-map [kp-end] 'end-of-buffer) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
154 (define-key global-map [kp-prior] 'scroll-down) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
155 (define-key global-map [kp-next] 'scroll-up) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
156 |
111201 | 157 ;; Allow shift-clicks to work similarly to under Nextstep. |
97348
bf45b2dcafff
* startup.el (command-line-ns-option-alist): Use ignore instead of ns-ignore-0-arg. * term/ns-win.el (ns-ignore-0-arg, mouse-extend-region) (ns-win-suspend-error, ns-yes-or-no-p, colors): Drop. (ns-alternatives-map): New variable. (x-set-up-function-keys): Use it. (global): Comment out 'put backspace ascii-character...' and friends. Move function-key-map into ns-alternatives-map. Don't call precompute-menubar-bindings. Don't set anything connected with browse-url. (after-make-frame-functions): Clarify comment why a hook is added.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97279
diff
changeset
|
158 (define-key global-map [S-mouse-1] 'mouse-save-then-kill) |
bf45b2dcafff
* startup.el (command-line-ns-option-alist): Use ignore instead of ns-ignore-0-arg. * term/ns-win.el (ns-ignore-0-arg, mouse-extend-region) (ns-win-suspend-error, ns-yes-or-no-p, colors): Drop. (ns-alternatives-map): New variable. (x-set-up-function-keys): Use it. (global): Comment out 'put backspace ascii-character...' and friends. Move function-key-map into ns-alternatives-map. Don't call precompute-menubar-bindings. Don't set anything connected with browse-url. (after-make-frame-functions): Clarify comment why a hook is added.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97279
diff
changeset
|
159 (global-unset-key [S-down-mouse-1]) |
bf45b2dcafff
* startup.el (command-line-ns-option-alist): Use ignore instead of ns-ignore-0-arg. * term/ns-win.el (ns-ignore-0-arg, mouse-extend-region) (ns-win-suspend-error, ns-yes-or-no-p, colors): Drop. (ns-alternatives-map): New variable. (x-set-up-function-keys): Use it. (global): Comment out 'put backspace ascii-character...' and friends. Move function-key-map into ns-alternatives-map. Don't call precompute-menubar-bindings. Don't set anything connected with browse-url. (after-make-frame-functions): Clarify comment why a hook is added.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97279
diff
changeset
|
160 |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
161 ;; Special Nextstep-generated events are converted to function keys. Here |
111191
ed5bac97776a
* term/ns-win.el (ns-new-frame, ns-show-prefs): Don't add to global map. * term/common-win.el (x-setup-function-keys): Remove most of the keymappings. Comment on the remaining ones.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
111187
diff
changeset
|
162 ;; are the bindings for them. Note, these keys are actually declared in |
ed5bac97776a
* term/ns-win.el (ns-new-frame, ns-show-prefs): Don't add to global map. * term/common-win.el (x-setup-function-keys): Remove most of the keymappings. Comment on the remaining ones.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
111187
diff
changeset
|
163 ;; x-setup-function-keys in common-win. |
102560
291f6c889881
Unify shutdown handling under NS, via ns-power-off key event (where appropriate) and save-buffers-kill-emacs.
David Reitter <david.reitter@gmail.com>
parents:
102253
diff
changeset
|
164 (define-key global-map [ns-power-off] 'save-buffers-kill-emacs) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
165 (define-key global-map [ns-open-file] 'ns-find-file) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
166 (define-key global-map [ns-open-temp-file] [ns-open-file]) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
167 (define-key global-map [ns-drag-file] 'ns-insert-file) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
168 (define-key global-map [ns-drag-color] 'ns-set-foreground-at-mouse) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
169 (define-key global-map [S-ns-drag-color] 'ns-set-background-at-mouse) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
170 (define-key global-map [ns-drag-text] 'ns-insert-text) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
171 (define-key global-map [ns-change-font] 'ns-respond-to-change-font) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
172 (define-key global-map [ns-open-file-line] 'ns-open-file-select-line) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
173 (define-key global-map [ns-spi-service-call] 'ns-spi-service-call) |
101491
305655dc1e3a
* term/ns-win.el (ns-insert-working-text, ns-delete-working-text):
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101427
diff
changeset
|
174 (define-key global-map [ns-toggle-toolbar] 'ns-toggle-toolbar) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
175 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
176 |
96788
c4b6acf322cc
Contents of ns-carbon-compat.el moved here.
Chong Yidong <cyd@stupidchicken.com>
parents:
96767
diff
changeset
|
177 ;; Set up a number of aliases and other layers to pretend we're using |
c4b6acf322cc
Contents of ns-carbon-compat.el moved here.
Chong Yidong <cyd@stupidchicken.com>
parents:
96767
diff
changeset
|
178 ;; the Choi/Mitsuharu Carbon port. |
c4b6acf322cc
Contents of ns-carbon-compat.el moved here.
Chong Yidong <cyd@stupidchicken.com>
parents:
96767
diff
changeset
|
179 |
c4b6acf322cc
Contents of ns-carbon-compat.el moved here.
Chong Yidong <cyd@stupidchicken.com>
parents:
96767
diff
changeset
|
180 (defvaralias 'mac-allow-anti-aliasing 'ns-antialias-text) |
c4b6acf322cc
Contents of ns-carbon-compat.el moved here.
Chong Yidong <cyd@stupidchicken.com>
parents:
96767
diff
changeset
|
181 (defvaralias 'mac-command-modifier 'ns-command-modifier) |
c4b6acf322cc
Contents of ns-carbon-compat.el moved here.
Chong Yidong <cyd@stupidchicken.com>
parents:
96767
diff
changeset
|
182 (defvaralias 'mac-control-modifier 'ns-control-modifier) |
c4b6acf322cc
Contents of ns-carbon-compat.el moved here.
Chong Yidong <cyd@stupidchicken.com>
parents:
96767
diff
changeset
|
183 (defvaralias 'mac-option-modifier 'ns-option-modifier) |
110930
b6cf32bb07a1
Bug#7150: Distinguishing between left and right Alt keys on NextStep/OSX.
Jan D. <jan.h.d@swipnet.se>
parents:
106815
diff
changeset
|
184 (defvaralias 'mac-right-option-modifier 'ns-right-option-modifier) |
96788
c4b6acf322cc
Contents of ns-carbon-compat.el moved here.
Chong Yidong <cyd@stupidchicken.com>
parents:
96767
diff
changeset
|
185 (defvaralias 'mac-function-modifier 'ns-function-modifier) |
99588
a61ecfde8504
(ns-do-applescript, ns-popup-font-panel): Declare.
Glenn Morris <rgm@gnu.org>
parents:
98512
diff
changeset
|
186 (declare-function ns-do-applescript "nsfns.m" (script)) |
97044
68cf271f3d30
rename do-applescript,do_applescript in keeping with NS code conventions
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97042
diff
changeset
|
187 (defalias 'do-applescript 'ns-do-applescript) |
68cf271f3d30
rename do-applescript,do_applescript in keeping with NS code conventions
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97042
diff
changeset
|
188 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
189 ;;;; Services |
96757
18b856a0216f
(ns-handle-switch): Simplify. Handle the numeric case.
Glenn Morris <rgm@gnu.org>
parents:
96748
diff
changeset
|
190 (declare-function ns-perform-service "nsfns.m" (service send)) |
18b856a0216f
(ns-handle-switch): Simplify. Handle the numeric case.
Glenn Morris <rgm@gnu.org>
parents:
96748
diff
changeset
|
191 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
192 (defun ns-define-service (path) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
193 (let ((mapping [menu-bar services]) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
194 (service (mapconcat 'identity path "/")) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
195 (name (intern |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
196 (subst-char-in-string |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
197 ?\s ?- |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
198 (mapconcat 'identity (cons "ns-service" path) "-"))))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
199 ;; This defines the function. |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
200 (defalias name |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
201 (lexical-let ((service service)) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
202 (lambda (arg) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
203 (interactive "p") |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
204 (let* ((in-string |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
205 (cond ((stringp arg) arg) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
206 (mark-active |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
207 (buffer-substring (region-beginning) (region-end))))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
208 (out-string (ns-perform-service service in-string))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
209 (cond |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
210 ((stringp arg) out-string) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
211 ((and out-string (or (not in-string) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
212 (not (string= in-string out-string)))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
213 (if mark-active (delete-region (region-beginning) (region-end))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
214 (insert out-string) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
215 (setq deactivate-mark nil))))))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
216 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
217 ((lookup-key global-map mapping) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
218 (while (cdr path) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
219 (setq mapping (vconcat mapping (list (intern (car path))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
220 (if (not (keymapp (lookup-key global-map mapping))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
221 (define-key global-map mapping |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
222 (cons (car path) (make-sparse-keymap (car path))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
223 (setq path (cdr path))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
224 (setq mapping (vconcat mapping (list (intern (car path))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
225 (define-key global-map mapping (cons (car path) name)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
226 name)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
227 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
228 ;; nsterm.m |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
229 (defvar ns-input-spi-name) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
230 (defvar ns-input-spi-arg) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
231 |
97422
6e551caf98f6
Add declarations for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
97348
diff
changeset
|
232 (declare-function dnd-open-file "dnd" (uri action)) |
6e551caf98f6
Add declarations for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
97348
diff
changeset
|
233 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
234 (defun ns-spi-service-call () |
96799
6cfed26789b7
(ns-submit-bug-report): Function removed. Bug
Chong Yidong <cyd@stupidchicken.com>
parents:
96792
diff
changeset
|
235 "Respond to a service request." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
236 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
237 (cond ((string-equal ns-input-spi-name "open-selection") |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
238 (switch-to-buffer (generate-new-buffer "*untitled*")) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
239 (insert ns-input-spi-arg)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
240 ((string-equal ns-input-spi-name "open-file") |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
241 (dnd-open-file ns-input-spi-arg nil)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
242 ((string-equal ns-input-spi-name "mail-selection") |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
243 (compose-mail) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
244 (rfc822-goto-eoh) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
245 (forward-line 1) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
246 (insert ns-input-spi-arg)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
247 ((string-equal ns-input-spi-name "mail-to") |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
248 (compose-mail ns-input-spi-arg)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
249 (t (error (concat "Service " ns-input-spi-name " not recognized"))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
250 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
251 |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
252 ;; Composed key sequence handling for Nextstep system input methods. |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
253 ;; (On Nextstep systems, input methods are provided for CJK |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
254 ;; characters, etc. which require multiple keystrokes, and during |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
255 ;; entry a partial ("working") result is typically shown in the |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
256 ;; editing window.) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
257 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
258 (defface ns-working-text-face |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
259 '((t :underline t)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
260 "Face used to highlight working text during compose sequence insert." |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
261 :group 'ns) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
262 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
263 (defvar ns-working-overlay nil |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
264 "Overlay used to highlight working text during compose sequence insert. |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
265 When text is in th echo area, this just stores the length of the working text.") |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
266 |
101491
305655dc1e3a
* term/ns-win.el (ns-insert-working-text, ns-delete-working-text):
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101427
diff
changeset
|
267 (defvar ns-working-text) ; nsterm.m |
305655dc1e3a
* term/ns-win.el (ns-insert-working-text, ns-delete-working-text):
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101427
diff
changeset
|
268 |
305655dc1e3a
* term/ns-win.el (ns-insert-working-text, ns-delete-working-text):
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101427
diff
changeset
|
269 ;; Test if in echo area, based on mac-win.el 2007/08/26 unicode-2. |
305655dc1e3a
* term/ns-win.el (ns-insert-working-text, ns-delete-working-text):
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101427
diff
changeset
|
270 ;; This will fail if called from a NONASCII_KEYSTROKE event on the global map. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
271 (defun ns-in-echo-area () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
272 "Whether, for purposes of inserting working composition text, the minibuffer |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
273 is currently being used." |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
274 (or isearch-mode |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
275 (and cursor-in-echo-area (current-message)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
276 ;; Overlay strings are not shown in some cases. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
277 (get-char-property (point) 'invisible) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
278 (and (not (bobp)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
279 (or (and (get-char-property (point) 'display) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
280 (eq (get-char-property (1- (point)) 'display) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
281 (get-char-property (point) 'display))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
282 (and (get-char-property (point) 'composition) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
283 (eq (get-char-property (1- (point)) 'composition) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
284 (get-char-property (point) 'composition))))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
285 |
101401
93936c347fa1
* term/ns-win.el (ns-insert-working-text, ns-put-working-text): Switch names and update comments for clarity.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101354
diff
changeset
|
286 ;; The 'interactive' here stays for subinvocations, so the ns-in-echo-area |
93936c347fa1
* term/ns-win.el (ns-insert-working-text, ns-put-working-text): Switch names and update comments for clarity.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101354
diff
changeset
|
287 ;; always returns nil for some reason. If this WASN'T the case, we could |
93936c347fa1
* term/ns-win.el (ns-insert-working-text, ns-put-working-text): Switch names and update comments for clarity.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101354
diff
changeset
|
288 ;; map this to [ns-insert-working-text] and eliminate Fevals in nsterm.m. |
101491
305655dc1e3a
* term/ns-win.el (ns-insert-working-text, ns-delete-working-text):
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101427
diff
changeset
|
289 ;; These functions test whether in echo area and delegate accordingly. |
101401
93936c347fa1
* term/ns-win.el (ns-insert-working-text, ns-put-working-text): Switch names and update comments for clarity.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101354
diff
changeset
|
290 (defun ns-put-working-text () |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
291 (interactive) |
101401
93936c347fa1
* term/ns-win.el (ns-insert-working-text, ns-put-working-text): Switch names and update comments for clarity.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101354
diff
changeset
|
292 (if (ns-in-echo-area) (ns-echo-working-text) (ns-insert-working-text))) |
101491
305655dc1e3a
* term/ns-win.el (ns-insert-working-text, ns-delete-working-text):
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101427
diff
changeset
|
293 (defun ns-unput-working-text () |
305655dc1e3a
* term/ns-win.el (ns-insert-working-text, ns-delete-working-text):
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101427
diff
changeset
|
294 (interactive) |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
295 (ns-delete-working-text)) |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
296 |
101401
93936c347fa1
* term/ns-win.el (ns-insert-working-text, ns-put-working-text): Switch names and update comments for clarity.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101354
diff
changeset
|
297 (defun ns-insert-working-text () |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
298 "Insert contents of `ns-working-text' as UTF-8 string and mark with |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
299 `ns-working-overlay'. Any previously existing working text is cleared first. |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
300 The overlay is assigned the face `ns-working-text-face'." |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
301 ;; FIXME: if buffer is read-only, don't try to insert anything |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
302 ;; and if text is bound to a command, execute that instead (Bug#1453) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
303 (interactive) |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
304 (ns-delete-working-text) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
305 (let ((start (point))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
306 (insert ns-working-text) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
307 (overlay-put (setq ns-working-overlay (make-overlay start (point) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
308 (current-buffer) nil t)) |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
309 'face 'ns-working-text-face))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
310 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
311 (defun ns-echo-working-text () |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
312 "Echo contents of `ns-working-text' in message display area. |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
313 See `ns-insert-working-text'." |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
314 (ns-delete-working-text) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
315 (let* ((msg (current-message)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
316 (msglen (length msg)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
317 message-log-max) |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
318 (setq ns-working-overlay (length ns-working-text)) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
319 (setq msg (concat msg ns-working-text)) |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
320 (put-text-property msglen (+ msglen ns-working-overlay) |
101427
1b7286db7263
* term/ns-win.el (menu-bar-select-frame): Drop this override.\n\t(menu-bar-update-frames): Update call to menu-bar-select-frame.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101401
diff
changeset
|
321 'face 'ns-working-text-face msg) |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
322 (message "%s" msg))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
323 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
324 (defun ns-delete-working-text() |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
325 "Delete working text and clear `ns-working-overlay'." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
326 (interactive) |
102253
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
327 (cond |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
328 ((and (overlayp ns-working-overlay) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
329 ;; Still alive? |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
330 (overlay-buffer ns-working-overlay)) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
331 (with-current-buffer (overlay-buffer ns-working-overlay) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
332 (delete-region (overlay-start ns-working-overlay) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
333 (overlay-end ns-working-overlay)) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
334 (delete-overlay ns-working-overlay))) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
335 ((integerp ns-working-overlay) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
336 (let ((msg (current-message)) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
337 message-log-max) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
338 (setq msg (substring msg 0 (- (length msg) ns-working-overlay))) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
339 (message "%s" msg)))) |
8a3d30f9b513
(ns-working-overlay): Don't make it buffer-local.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
101783
diff
changeset
|
340 (setq ns-working-overlay nil)) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
341 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
342 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
343 (declare-function ns-convert-utf8-nfd-to-nfc "nsfns.m" (str)) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
344 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
345 ;;;; OS X file system Unicode UTF-8 NFD (decomposed form) support |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
346 ;; Lisp code based on utf-8m.el, by Seiji Zenitani, Eiji Honjoh, and |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
347 ;; Carsten Bormann. |
111198
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
348 (when (eq system-type 'darwin) |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
349 (defun ns-utf8-nfd-post-read-conversion (length) |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
350 "Calls `ns-convert-utf8-nfd-to-nfc' to compose char sequences." |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
351 (save-excursion |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
352 (save-restriction |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
353 (narrow-to-region (point) (+ (point) length)) |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
354 (let ((str (buffer-string))) |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
355 (delete-region (point-min) (point-max)) |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
356 (insert (ns-convert-utf8-nfd-to-nfc str)) |
111201 | 357 (- (point-max) (point-min)))))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
358 |
111198
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
359 (define-coding-system 'utf-8-nfd |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
360 "UTF-8 NFD (decomposed) encoding." |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
361 :coding-type 'utf-8 |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
362 :mnemonic ?U |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
363 :charset-list '(unicode) |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
364 :post-read-conversion 'ns-utf8-nfd-post-read-conversion) |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
365 (set-file-name-coding-system 'utf-8-nfd)) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
366 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
367 ;;;; Inter-app communications support. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
368 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
369 (defvar ns-input-text) ; nsterm.m |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
370 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
371 (defun ns-insert-text () |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
372 "Insert contents of `ns-input-text' at point." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
373 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
374 (insert ns-input-text) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
375 (setq ns-input-text nil)) |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
376 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
377 (defun ns-insert-file () |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
378 "Insert contents of file `ns-input-file' like insert-file but with less |
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
379 prompting. If file is a directory perform a `find-file' on it." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
380 (interactive) |
111203
d9447313bf33
* lisp/term/ns-win.el (ns-insert-file): Init in let.
Glenn Morris <rgm@gnu.org>
parents:
111201
diff
changeset
|
381 (let ((f (pop ns-input-file))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
382 (if (file-directory-p f) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
383 (find-file f) |
111201 | 384 (push-mark (+ (point) (cadr (insert-file-contents f))))))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
385 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
386 (defvar ns-select-overlay nil |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
387 "Overlay used to highlight areas in files requested by Nextstep apps.") |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
388 (make-variable-buffer-local 'ns-select-overlay) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
389 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
390 (defvar ns-input-line) ; nsterm.m |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
391 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
392 (defun ns-open-file-select-line () |
96792
50bfb208e018
Contents of ns-grabenv.el moved here.
Chong Yidong <cyd@stupidchicken.com>
parents:
96788
diff
changeset
|
393 "Open a buffer containing the file `ns-input-file'. |
50bfb208e018
Contents of ns-grabenv.el moved here.
Chong Yidong <cyd@stupidchicken.com>
parents:
96788
diff
changeset
|
394 Lines are highlighted according to `ns-input-line'." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
395 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
396 (ns-find-file) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
397 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
398 ((and ns-input-line (buffer-modified-p)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
399 (if ns-select-overlay |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
400 (setq ns-select-overlay (delete-overlay ns-select-overlay))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
401 (deactivate-mark) |
104774
468b7fa34d2c
Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104387
diff
changeset
|
402 (goto-char (point-min)) |
468b7fa34d2c
Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104387
diff
changeset
|
403 (forward-line (1- (if (consp ns-input-line) |
468b7fa34d2c
Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104387
diff
changeset
|
404 (min (car ns-input-line) (cdr ns-input-line)) |
468b7fa34d2c
Use forward-line rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104387
diff
changeset
|
405 ns-input-line)))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
406 (ns-input-line |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
407 (if (not ns-select-overlay) |
104387
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
408 (overlay-put (setq ns-select-overlay (make-overlay (point-min) |
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
409 (point-min))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
410 'face 'highlight)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
411 (let ((beg (save-excursion |
104387
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
412 (goto-char (point-min)) |
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
413 (line-beginning-position |
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
414 (if (consp ns-input-line) |
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
415 (min (car ns-input-line) (cdr ns-input-line)) |
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
416 ns-input-line)))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
417 (end (save-excursion |
104387
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
418 (goto-char (point-min)) |
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
419 (line-beginning-position |
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
420 (1+ (if (consp ns-input-line) |
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
421 (max (car ns-input-line) (cdr ns-input-line)) |
1229ad8aec26
(ns-open-file-select-line): Use line-beginning-position rather than goto-line.
Glenn Morris <rgm@gnu.org>
parents:
104066
diff
changeset
|
422 ns-input-line)))))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
423 (move-overlay ns-select-overlay beg end) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
424 (deactivate-mark) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
425 (goto-char beg))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
426 (t |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
427 (if ns-select-overlay |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
428 (setq ns-select-overlay (delete-overlay ns-select-overlay)))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
429 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
430 (defun ns-unselect-line () |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
431 "Removes any Nextstep highlight a buffer may contain." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
432 (if ns-select-overlay |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
433 (setq ns-select-overlay (delete-overlay ns-select-overlay)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
434 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
435 (add-hook 'first-change-hook 'ns-unselect-line) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
436 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
437 ;;;; Preferences handling. |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
438 (declare-function ns-get-resource "nsfns.m" (owner name)) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
439 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
440 (defun get-lisp-resource (arg1 arg2) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
441 (let ((res (ns-get-resource arg1 arg2))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
442 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
443 ((not res) 'unbound) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
444 ((string-equal (upcase res) "YES") t) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
445 ((string-equal (upcase res) "NO") nil) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
446 (t (read res))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
447 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
448 ;; nsterm.m |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
449 |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
450 (declare-function ns-read-file-name "nsfns.m" |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
451 (prompt &optional dir isLoad init)) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
452 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
453 ;;;; File handling. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
454 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
455 (defun ns-open-file-using-panel () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
456 "Pop up open-file panel, and load the result in a buffer." |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
457 (interactive) |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
458 ;; Prompt dir defaultName isLoad initial. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
459 (setq ns-input-file (ns-read-file-name "Select File to Load" nil t nil)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
460 (if ns-input-file |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
461 (and (setq ns-input-file (list ns-input-file)) (ns-find-file)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
462 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
463 (defun ns-write-file-using-panel () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
464 "Pop up save-file panel, and save buffer in resulting name." |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
465 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
466 (let (ns-output-file) |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
467 ;; Prompt dir defaultName isLoad initial. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
468 (setq ns-output-file (ns-read-file-name "Save As" nil nil nil)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
469 (message ns-output-file) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
470 (if ns-output-file (write-file ns-output-file)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
471 |
102875
fae9460dc1e1
(ns-pop-up-frames): Make it a defcustom.
Glenn Morris <rgm@gnu.org>
parents:
102771
diff
changeset
|
472 (defcustom ns-pop-up-frames 'fresh |
fae9460dc1e1
(ns-pop-up-frames): Make it a defcustom.
Glenn Morris <rgm@gnu.org>
parents:
102771
diff
changeset
|
473 "Non-nil means open files upon request from the Workspace in a new frame. |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
474 If t, always do so. Any other non-nil value means open a new frame |
102875
fae9460dc1e1
(ns-pop-up-frames): Make it a defcustom.
Glenn Morris <rgm@gnu.org>
parents:
102771
diff
changeset
|
475 unless the current buffer is a scratch buffer." |
fae9460dc1e1
(ns-pop-up-frames): Make it a defcustom.
Glenn Morris <rgm@gnu.org>
parents:
102771
diff
changeset
|
476 :type '(choice (const :tag "Never" nil) |
fae9460dc1e1
(ns-pop-up-frames): Make it a defcustom.
Glenn Morris <rgm@gnu.org>
parents:
102771
diff
changeset
|
477 (const :tag "Always" t) |
fae9460dc1e1
(ns-pop-up-frames): Make it a defcustom.
Glenn Morris <rgm@gnu.org>
parents:
102771
diff
changeset
|
478 (other :tag "Except for scratch buffer" fresh)) |
fae9460dc1e1
(ns-pop-up-frames): Make it a defcustom.
Glenn Morris <rgm@gnu.org>
parents:
102771
diff
changeset
|
479 :version "23.1" |
fae9460dc1e1
(ns-pop-up-frames): Make it a defcustom.
Glenn Morris <rgm@gnu.org>
parents:
102771
diff
changeset
|
480 :group 'ns) |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
481 |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
482 (declare-function ns-hide-emacs "nsfns.m" (on)) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
483 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
484 (defun ns-find-file () |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
485 "Do a `find-file' with the `ns-input-file' as argument." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
486 (interactive) |
111203
d9447313bf33
* lisp/term/ns-win.el (ns-insert-file): Init in let.
Glenn Morris <rgm@gnu.org>
parents:
111201
diff
changeset
|
487 (let* ((f (file-truename (pop ns-input-file))) |
d9447313bf33
* lisp/term/ns-win.el (ns-insert-file): Init in let.
Glenn Morris <rgm@gnu.org>
parents:
111201
diff
changeset
|
488 (file (find-file-noselect f)) |
d9447313bf33
* lisp/term/ns-win.el (ns-insert-file): Init in let.
Glenn Morris <rgm@gnu.org>
parents:
111201
diff
changeset
|
489 (bufwin1 (get-buffer-window file 'visible)) |
d9447313bf33
* lisp/term/ns-win.el (ns-insert-file): Init in let.
Glenn Morris <rgm@gnu.org>
parents:
111201
diff
changeset
|
490 (bufwin2 (get-buffer-window "*scratch*" 'visibile))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
491 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
492 (bufwin1 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
493 (select-frame (window-frame bufwin1)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
494 (raise-frame (window-frame bufwin1)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
495 (select-window bufwin1)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
496 ((and (eq ns-pop-up-frames 'fresh) bufwin2) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
497 (ns-hide-emacs 'activate) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
498 (select-frame (window-frame bufwin2)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
499 (raise-frame (window-frame bufwin2)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
500 (select-window bufwin2) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
501 (find-file f)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
502 (ns-pop-up-frames |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
503 (ns-hide-emacs 'activate) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
504 (let ((pop-up-frames t)) (pop-to-buffer file nil))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
505 (t |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
506 (ns-hide-emacs 'activate) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
507 (find-file f))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
508 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
509 ;;;; Frame-related functions. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
510 |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
511 ;; Don't show the frame name; that's redundant with Nextstep. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
512 (setq-default mode-line-frame-identification '(" ")) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
513 |
111198
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
514 ;; nsterm.m |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
515 (defvar ns-alternate-modifier) |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
516 (defvar ns-right-alternate-modifier) |
898ddb0c960d
* lisp/term/ns-win.el: Restore require of cl when compiling.
Glenn Morris <rgm@gnu.org>
parents:
111191
diff
changeset
|
517 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
518 ;; You say tomAYto, I say tomAHto.. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
519 (defvaralias 'ns-option-modifier 'ns-alternate-modifier) |
110930
b6cf32bb07a1
Bug#7150: Distinguishing between left and right Alt keys on NextStep/OSX.
Jan D. <jan.h.d@swipnet.se>
parents:
106815
diff
changeset
|
520 (defvaralias 'ns-right-option-modifier 'ns-right-alternate-modifier) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
521 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
522 (defun ns-do-hide-emacs () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
523 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
524 (ns-hide-emacs t)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
525 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
526 (declare-function ns-hide-others "nsfns.m" ()) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
527 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
528 (defun ns-do-hide-others () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
529 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
530 (ns-hide-others)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
531 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
532 (declare-function ns-emacs-info-panel "nsfns.m" ()) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
533 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
534 (defun ns-do-emacs-info-panel () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
535 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
536 (ns-emacs-info-panel)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
537 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
538 (defun ns-next-frame () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
539 "Switch to next visible frame." |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
540 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
541 (other-frame 1)) |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
542 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
543 (defun ns-prev-frame () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
544 "Switch to previous visible frame." |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
545 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
546 (other-frame -1)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
547 |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
548 ;; If no position specified, make new frame offset by 25 from current. |
96767
970848353475
(parameters): Declare for compiler.
Glenn Morris <rgm@gnu.org>
parents:
96757
diff
changeset
|
549 (defvar parameters) ; dynamically bound in make-frame |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
550 (add-hook 'before-make-frame-hook |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
551 (lambda () |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
552 (let ((left (cdr (assq 'left (frame-parameters)))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
553 (top (cdr (assq 'top (frame-parameters))))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
554 (if (consp left) (setq left (cadr left))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
555 (if (consp top) (setq top (cadr top))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
556 (cond |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
557 ((or (assq 'top parameters) (assq 'left parameters))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
558 ((or (not left) (not top))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
559 (t |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
560 (setq parameters (cons (cons 'left (+ left 25)) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
561 (cons (cons 'top (+ top 25)) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
562 parameters)))))))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
563 |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
564 ;; frame will be focused anyway, so select it |
97348
bf45b2dcafff
* startup.el (command-line-ns-option-alist): Use ignore instead of ns-ignore-0-arg. * term/ns-win.el (ns-ignore-0-arg, mouse-extend-region) (ns-win-suspend-error, ns-yes-or-no-p, colors): Drop. (ns-alternatives-map): New variable. (x-set-up-function-keys): Use it. (global): Comment out 'put backspace ascii-character...' and friends. Move function-key-map into ns-alternatives-map. Don't call precompute-menubar-bindings. Don't set anything connected with browse-url. (after-make-frame-functions): Clarify comment why a hook is added.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97279
diff
changeset
|
565 ;; (if this is not done, modeline is dimmed until first interaction) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
566 (add-hook 'after-make-frame-functions 'select-frame) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
567 |
97422
6e551caf98f6
Add declarations for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
97348
diff
changeset
|
568 (defvar tool-bar-mode) |
6e551caf98f6
Add declarations for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
97348
diff
changeset
|
569 (declare-function tool-bar-mode "tool-bar" (&optional arg)) |
6e551caf98f6
Add declarations for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
97348
diff
changeset
|
570 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
571 ;; Based on a function by David Reitter <dreitter@inf.ed.ac.uk> ; |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
572 ;; see http://lists.gnu.org/archive/html/emacs-devel/2005-09/msg00681.html . |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
573 (defun ns-toggle-toolbar (&optional frame) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
574 "Switches the tool bar on and off in frame FRAME. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
575 If FRAME is nil, the change applies to the selected frame." |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
576 (interactive) |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
577 (modify-frame-parameters |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
578 frame (list (cons 'tool-bar-lines |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
579 (if (> (or (frame-parameter frame 'tool-bar-lines) 0) 0) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
580 0 1)) )) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
581 (if (not tool-bar-mode) (tool-bar-mode t))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
582 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
583 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
584 ;;;; Dialog-related functions. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
585 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
586 ;; Ask user for confirm before printing. Due to Kevin Rodgers. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
587 (defun ns-print-buffer () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
588 "Interactive front-end to `print-buffer': asks for user confirmation first." |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
589 (interactive) |
105372
bd2966850aac
Use `called-interactively-p' instead of `interactive-p'.
Juanma Barranquero <lekktu@gmail.com>
parents:
105229
diff
changeset
|
590 (if (and (called-interactively-p 'interactive) |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
591 (or (listp last-nonmenu-event) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
592 (and (char-or-string-p (event-basic-type last-command-event)) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
593 (memq 'super (event-modifiers last-command-event))))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
594 (let ((last-nonmenu-event (if (listp last-nonmenu-event) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
595 last-nonmenu-event |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
596 ;; Fake it: |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
597 `(mouse-1 POSITION 1)))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
598 (if (y-or-n-p (format "Print buffer %s? " (buffer-name))) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
599 (print-buffer) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
600 (error "Cancelled"))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
601 (print-buffer))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
602 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
603 ;;;; Font support. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
604 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
605 ;; Needed for font listing functions under both backend and normal |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
606 (setq scalable-fonts-allowed t) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
607 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
608 ;; Set to use font panel instead |
99588
a61ecfde8504
(ns-do-applescript, ns-popup-font-panel): Declare.
Glenn Morris <rgm@gnu.org>
parents:
98512
diff
changeset
|
609 (declare-function ns-popup-font-panel "nsfns.m" (&optional frame)) |
103879
33055f2b5e31
ns-win.el (x-select-font): defailias x-select-font to
Jan Djärv <jan.h.d@swipnet.se>
parents:
103345
diff
changeset
|
610 (defalias 'x-select-font 'ns-popup-font-panel "Pop up the font panel. |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
611 This function has been overloaded in Nextstep.") |
102771
15dc97800b2f
(ns-expand-space): remove defvar.
David Reitter <david.reitter@gmail.com>
parents:
102641
diff
changeset
|
612 (defalias 'mouse-set-font 'ns-popup-font-panel "Pop up the font panel. |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
613 This function has been overloaded in Nextstep.") |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
614 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
615 ;; nsterm.m |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
616 (defvar ns-input-font) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
617 (defvar ns-input-fontsize) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
618 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
619 (defun ns-respond-to-change-font () |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
620 "Respond to changeFont: event, expecting `ns-input-font' and\n\ |
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
621 `ns-input-fontsize' of new font." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
622 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
623 (modify-frame-parameters (selected-frame) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
624 (list (cons 'font ns-input-font) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
625 (cons 'fontsize ns-input-fontsize))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
626 (set-frame-font ns-input-font)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
627 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
628 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
629 ;; Default fontset for Mac OS X. This is mainly here to show how a fontset |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
630 ;; can be set up manually. Ordinarily, fontsets are auto-created whenever |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
631 ;; a font is chosen by |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
632 (defvar ns-standard-fontset-spec |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
633 ;; Only some code supports this so far, so use uglier XLFD version |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
634 ;; "-ns-*-*-*-*-*-10-*-*-*-*-*-fontset-standard,latin:Courier,han:Kai" |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
635 (mapconcat 'identity |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
636 '("-ns-*-*-*-*-*-10-*-*-*-*-*-fontset-standard" |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
637 "latin:-*-Courier-*-*-*-*-10-*-*-*-*-*-iso10646-1" |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
638 "han:-*-Kai-*-*-*-*-10-*-*-*-*-*-iso10646-1" |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
639 "cyrillic:-*-Trebuchet$MS-*-*-*-*-10-*-*-*-*-*-iso10646-1") |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
640 ",") |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
641 "String of fontset spec of the standard fontset. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
642 This defines a fontset consisting of the Courier and other fonts that |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
643 come with OS X. |
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
644 See the documentation of `create-fontset-from-fontset-spec' for the format.") |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
645 |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
646 ;; Conditional on new-fontset so bootstrapping works on non-GUI compiles. |
111183 | 647 (when (fboundp 'new-fontset) |
648 ;; Setup the default fontset. | |
649 (create-default-fontset) | |
650 ;; Create the standard fontset. | |
651 (condition-case err | |
652 (create-fontset-from-fontset-spec ns-standard-fontset-spec t) | |
653 (error (display-warning | |
654 'initialization | |
655 (format "Creation of the standard fontset failed: %s" err) | |
656 :error)))) | |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
657 |
105177
f3f51ce338e8
(ns-reg-to-script): Define for compiler.
Glenn Morris <rgm@gnu.org>
parents:
105154
diff
changeset
|
658 (defvar ns-reg-to-script) ; nsfont.m |
f3f51ce338e8
(ns-reg-to-script): Define for compiler.
Glenn Morris <rgm@gnu.org>
parents:
105154
diff
changeset
|
659 |
105154
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
660 ;; This maps font registries (not exposed by NS APIs for font selection) to |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
661 ;; unicode scripts (which can be mapped to unicode character ranges which are). |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
662 ;; See ../international/fontset.el |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
663 (setq ns-reg-to-script |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
664 '(("iso8859-1" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
665 ("iso8859-2" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
666 ("iso8859-3" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
667 ("iso8859-4" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
668 ("iso8859-5" . cyrillic) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
669 ("microsoft-cp1251" . cyrillic) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
670 ("koi8-r" . cyrillic) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
671 ("iso8859-6" . arabic) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
672 ("iso8859-7" . greek) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
673 ("iso8859-8" . hebrew) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
674 ("iso8859-9" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
675 ("iso8859-10" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
676 ("iso8859-11" . thai) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
677 ("tis620" . thai) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
678 ("iso8859-13" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
679 ("iso8859-14" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
680 ("iso8859-15" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
681 ("iso8859-16" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
682 ("viscii1.1-1" . latin) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
683 ("jisx0201" . kana) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
684 ("jisx0208" . han) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
685 ("jisx0212" . han) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
686 ("jisx0213" . han) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
687 ("gb2312.1980" . han) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
688 ("gb18030" . han) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
689 ("gbk-0" . han) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
690 ("big5" . han) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
691 ("cns11643" . han) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
692 ("sisheng_cwnn" . bopomofo) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
693 ("ksc5601.1987" . hangul) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
694 ("ethiopic-unicode" . ethiopic) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
695 ("is13194-devanagari" . indian-is13194) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
696 ("iso10646.indian-1" . devanagari))) |
a46a26bd9a4c
* term/nswin.el (ns-reg-to-script): New variable.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
105009
diff
changeset
|
697 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
698 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
699 ;;;; Pasteboard support. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
700 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
701 (declare-function ns-get-cut-buffer-internal "nsselect.m" (buffer)) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
702 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
703 (defun ns-get-pasteboard () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
704 "Returns the value of the pasteboard." |
109825
a2dc02f10ab3
Use CLIPBOARD and PRIMARY on NS (Bug#6677).
Jan D <jan.h.d@swipnet.se>
parents:
109379
diff
changeset
|
705 (ns-get-cut-buffer-internal 'CLIPBOARD)) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
706 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
707 (declare-function ns-store-cut-buffer-internal "nsselect.m" (buffer string)) |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
708 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
709 (defun ns-set-pasteboard (string) |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
710 "Store STRING into the pasteboard of the Nextstep display server." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
711 ;; Check the data type of STRING. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
712 (if (not (stringp string)) (error "Nonstring given to pasteboard")) |
109825
a2dc02f10ab3
Use CLIPBOARD and PRIMARY on NS (Bug#6677).
Jan D <jan.h.d@swipnet.se>
parents:
109379
diff
changeset
|
713 (ns-store-cut-buffer-internal 'CLIPBOARD string)) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
714 |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
715 ;; We keep track of the last text selected here, so we can check the |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
716 ;; current selection against it, and avoid passing back our own text |
110145 | 717 ;; from x-selection-value. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
718 (defvar ns-last-selected-text nil) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
719 |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
720 ;; Return the value of the current Nextstep selection. For |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
721 ;; compatibility with older Nextstep applications, this checks cut |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
722 ;; buffer 0 before retrieving the value of the primary selection. |
110145 | 723 (defun x-selection-value () |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
724 (let (text) |
110148
bcc7c00e9ef4
Remove cut buffer from documentation.
Jan D. <jan.h.d@swipnet.se>
parents:
110145
diff
changeset
|
725 ;; Consult the selection. Treat empty strings as if they were unset. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
726 (or text (setq text (ns-get-pasteboard))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
727 (if (string= text "") (setq text nil)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
728 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
729 ((not text) nil) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
730 ((eq text ns-last-selected-text) nil) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
731 ((string= text ns-last-selected-text) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
732 ;; Record the newer string, so subsequent calls can use the `eq' test. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
733 (setq ns-last-selected-text text) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
734 nil) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
735 (t |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
736 (setq ns-last-selected-text text))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
737 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
738 (defun ns-copy-including-secondary () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
739 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
740 (call-interactively 'kill-ring-save) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
741 (ns-store-cut-buffer-internal 'SECONDARY |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
742 (buffer-substring (point) (mark t)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
743 (defun ns-paste-secondary () |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
744 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
745 (insert (ns-get-cut-buffer-internal 'SECONDARY))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
746 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
747 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
748 ;;;; Scrollbar handling. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
749 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
750 (global-set-key [vertical-scroll-bar down-mouse-1] 'ns-handle-scroll-bar-event) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
751 (global-unset-key [vertical-scroll-bar mouse-1]) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
752 (global-unset-key [vertical-scroll-bar drag-mouse-1]) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
753 |
97422
6e551caf98f6
Add declarations for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
97348
diff
changeset
|
754 (declare-function scroll-bar-scale "scroll-bar" (num-denom whole)) |
6e551caf98f6
Add declarations for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
97348
diff
changeset
|
755 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
756 (defun ns-scroll-bar-move (event) |
97348
bf45b2dcafff
* startup.el (command-line-ns-option-alist): Use ignore instead of ns-ignore-0-arg. * term/ns-win.el (ns-ignore-0-arg, mouse-extend-region) (ns-win-suspend-error, ns-yes-or-no-p, colors): Drop. (ns-alternatives-map): New variable. (x-set-up-function-keys): Use it. (global): Comment out 'put backspace ascii-character...' and friends. Move function-key-map into ns-alternatives-map. Don't call precompute-menubar-bindings. Don't set anything connected with browse-url. (after-make-frame-functions): Clarify comment why a hook is added.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97279
diff
changeset
|
757 "Scroll the frame according to a Nextstep scroller event." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
758 (interactive "e") |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
759 (let* ((pos (event-end event)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
760 (window (nth 0 pos)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
761 (scale (nth 2 pos))) |
105829
328150f0cf76
* url-util.el (url-insert-entities-in-string):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105372
diff
changeset
|
762 (with-current-buffer (window-buffer window) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
763 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
764 ((eq (car scale) (cdr scale)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
765 (goto-char (point-max))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
766 ((= (car scale) 0) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
767 (goto-char (point-min))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
768 (t |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
769 (goto-char (+ (point-min) 1 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
770 (scroll-bar-scale scale (- (point-max) (point-min))))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
771 (beginning-of-line) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
772 (set-window-start window (point)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
773 (vertical-motion (/ (window-height window) 2) window)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
774 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
775 (defun ns-handle-scroll-bar-event (event) |
97348
bf45b2dcafff
* startup.el (command-line-ns-option-alist): Use ignore instead of ns-ignore-0-arg. * term/ns-win.el (ns-ignore-0-arg, mouse-extend-region) (ns-win-suspend-error, ns-yes-or-no-p, colors): Drop. (ns-alternatives-map): New variable. (x-set-up-function-keys): Use it. (global): Comment out 'put backspace ascii-character...' and friends. Move function-key-map into ns-alternatives-map. Don't call precompute-menubar-bindings. Don't set anything connected with browse-url. (after-make-frame-functions): Clarify comment why a hook is added.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
97279
diff
changeset
|
776 "Handle scroll bar EVENT to emulate Nextstep style scrolling." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
777 (interactive "e") |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
778 (let* ((position (event-start event)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
779 (bar-part (nth 4 position)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
780 (window (nth 0 position)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
781 (old-window (selected-window))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
782 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
783 ((eq bar-part 'ratio) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
784 (ns-scroll-bar-move event)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
785 ((eq bar-part 'handle) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
786 (if (eq window (selected-window)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
787 (track-mouse (ns-scroll-bar-move event)) |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
788 ;; track-mouse faster for selected window, slower for unselected. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
789 (ns-scroll-bar-move event))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
790 (t |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
791 (select-window window) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
792 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
793 ((eq bar-part 'up) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
794 (goto-char (window-start window)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
795 (scroll-down 1)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
796 ((eq bar-part 'above-handle) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
797 (scroll-down)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
798 ((eq bar-part 'below-handle) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
799 (scroll-up)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
800 ((eq bar-part 'down) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
801 (goto-char (window-start window)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
802 (scroll-up 1))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
803 (select-window old-window))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
804 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
805 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
806 ;;;; Color support. |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
807 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
808 ;; Functions for color panel + drag |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
809 (defun ns-face-at-pos (pos) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
810 (let* ((frame (car pos)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
811 (frame-pos (cons (cadr pos) (cddr pos))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
812 (window (window-at (car frame-pos) (cdr frame-pos) frame)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
813 (window-pos (coordinates-in-window-p frame-pos window)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
814 (buffer (window-buffer window)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
815 (edges (window-edges window))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
816 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
817 ((not window-pos) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
818 nil) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
819 ((eq window-pos 'mode-line) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
820 'modeline) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
821 ((eq window-pos 'vertical-line) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
822 'default) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
823 ((consp window-pos) |
105829
328150f0cf76
* url-util.el (url-insert-entities-in-string):
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
105372
diff
changeset
|
824 (with-current-buffer buffer |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
825 (let ((p (car (compute-motion (window-start window) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
826 (cons (nth 0 edges) (nth 1 edges)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
827 (window-end window) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
828 frame-pos |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
829 (- (window-width window) 1) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
830 nil |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
831 window)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
832 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
833 ((eq p (window-point window)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
834 'cursor) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
835 ((and mark-active (< (region-beginning) p) (< p (region-end))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
836 'region) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
837 (t |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
838 (let ((faces (get-char-property p 'face window))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
839 (if (consp faces) (car faces) faces))))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
840 (t |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
841 nil)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
842 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
843 (defvar ns-input-color) ; nsterm.m |
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
844 |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
845 (defun ns-set-foreground-at-mouse () |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
846 "Set the foreground color at the mouse location to `ns-input-color'." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
847 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
848 (let* ((pos (mouse-position)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
849 (frame (car pos)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
850 (face (ns-face-at-pos pos))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
851 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
852 ((eq face 'cursor) |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
853 (modify-frame-parameters frame (list (cons 'cursor-color |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
854 ns-input-color)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
855 ((not face) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
856 (modify-frame-parameters frame (list (cons 'foreground-color |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
857 ns-input-color)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
858 (t |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
859 (set-face-foreground face ns-input-color frame))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
860 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
861 (defun ns-set-background-at-mouse () |
103140
ba681b91f716
* term/ns-win.el (ns-alternatives-map, ns-insert-working-text)
Juanma Barranquero <lekktu@gmail.com>
parents:
103122
diff
changeset
|
862 "Set the background color at the mouse location to `ns-input-color'." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
863 (interactive) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
864 (let* ((pos (mouse-position)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
865 (frame (car pos)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
866 (face (ns-face-at-pos pos))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
867 (cond |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
868 ((eq face 'cursor) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
869 (modify-frame-parameters frame (list (cons 'cursor-color |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
870 ns-input-color)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
871 ((not face) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
872 (modify-frame-parameters frame (list (cons 'background-color |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
873 ns-input-color)))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
874 (t |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
875 (set-face-background face ns-input-color frame))))) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
876 |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
877 ;; Set some options to be as Nextstep-like as possible. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
878 (setq frame-title-format t |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
879 icon-title-format t) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
880 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
881 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
882 (defvar ns-initialized nil |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
883 "Non-nil if Nextstep windowing has been initialized.") |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
884 |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
885 (declare-function ns-list-services "nsfns.m" ()) |
101354
8802a9b050fb
* term/ns-win.el (ns-show-manual): Fix node name. (x-open-connection) Fix typo in declaration filename.
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
101087
diff
changeset
|
886 (declare-function x-open-connection "nsfns.m" |
97422
6e551caf98f6
Add declarations for builds without X.
Glenn Morris <rgm@gnu.org>
parents:
97348
diff
changeset
|
887 (display &optional xrm-string must-succeed)) |
96699
05aeed7284d3
Fix header format and permissions notice.
Glenn Morris <rgm@gnu.org>
parents:
96684
diff
changeset
|
888 |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
889 ;; Do the actual Nextstep Windows setup here; the above code just |
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
890 ;; defines functions and variables that we use now. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
891 (defun ns-initialize-window-system () |
96859
2e1af3a60ab7
Standardize references to "Nextstep" in comments, messages, and docstrings.
Chong Yidong <cyd@stupidchicken.com>
parents:
96814
diff
changeset
|
892 "Initialize Emacs for Nextstep (Cocoa / GNUstep) windowing." |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
893 |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
894 ;; PENDING: not needed? |
111185
050a28bd1797
Remove ns-handle-* functions that duplicate x-handle-*.
Glenn Morris <rgm@gnu.org>
parents:
111183
diff
changeset
|
895 (setq command-line-args (x-handle-args command-line-args)) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
896 |
96870
30f1368d9cf6
* term/ns-win.el: Rename ns- functions/variables to the
Dan Nicolaescu <dann@ics.uci.edu>
parents:
96859
diff
changeset
|
897 (x-open-connection (system-name) nil t) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
898 |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
899 (dolist (service (ns-list-services)) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
900 (if (eq (car service) 'undefined) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
901 (ns-define-service (cdr service)) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
902 (define-key global-map (vector (car service)) |
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
903 (ns-define-service (cdr service))))) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
904 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
905 (if (and (eq (get-lisp-resource nil "NXAutoLaunch") t) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
906 (eq (get-lisp-resource nil "HideOnAutoLaunch") t)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
907 (add-hook 'after-init-hook 'ns-do-hide-emacs)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
908 |
96748
92f7bbffcb45
Require CL; fix up comment style; reindent.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
96707
diff
changeset
|
909 ;; FIXME: This will surely lead to "MODIFIED OUTSIDE CUSTOM" warnings. |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
910 (menu-bar-mode (if (get-lisp-resource nil "Menus") 1 -1)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
911 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
912 (setq ns-initialized t)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
913 |
111185
050a28bd1797
Remove ns-handle-* functions that duplicate x-handle-*.
Glenn Morris <rgm@gnu.org>
parents:
111183
diff
changeset
|
914 (add-to-list 'handle-args-function-alist '(ns . x-handle-args)) |
96675
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
915 (add-to-list 'frame-creation-function-alist '(ns . x-create-frame-with-faces)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
916 (add-to-list 'window-system-initialization-alist '(ns . ns-initialize-window-system)) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
917 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
918 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
919 (provide 'ns-win) |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
920 |
d45acf0c8d23
merging Emacs.app (NeXTstep port)
Adrian Robert <Adrian.B.Robert@gmail.com>
parents:
diff
changeset
|
921 ;;; ns-win.el ends here |