Mercurial > emacs
annotate src/macterm.c @ 90314:d1c5430c5bff
Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-21
Merge from emacs--devo--0
Patches applied:
* emacs--devo--0 (patch 97-112)
- Update from CVS
- Merge from erc--emacs--0
- Update from CVS: src/regex.c (extend_range_table_work_area): Fix typo.
- Merge from gnus--rel--5.10
* gnus--rel--5.10 (patch 37)
- Update from CVS
author | Miles Bader <miles@gnu.org> |
---|---|
date | Wed, 22 Feb 2006 06:54:10 +0000 |
parents | 4b3d39451150 783439580869 |
children | 34c8b755296d |
rev | line source |
---|---|
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1 /* Implementation of GUI terminal on the Mac OS. |
64770
a0d1312ede66
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
64471
diff
changeset
|
2 Copyright (C) 2000, 2001, 2002, 2003, 2004, |
68651
3bd95f4f2941
Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents:
68145
diff
changeset
|
3 2005, 2006 Free Software Foundation, Inc. |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5 This file is part of GNU Emacs. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7 GNU Emacs is free software; you can redistribute it and/or modify |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8 it under the terms of the GNU General Public License as published by |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9 the Free Software Foundation; either version 2, or (at your option) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10 any later version. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
11 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
12 GNU Emacs is distributed in the hope that it will be useful, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
13 but WITHOUT ANY WARRANTY; without even the implied warranty of |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
15 GNU General Public License for more details. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
16 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
17 You should have received a copy of the GNU General Public License |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
18 along with GNU Emacs; see the file COPYING. If not, write to |
64084 | 19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
20 Boston, MA 02110-1301, USA. */ | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
21 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
22 /* Contributed by Andrew Choi (akochoi@mac.com). */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
23 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
24 #include <config.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
25 #include <signal.h> |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
26 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
27 #include <stdio.h> |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
28 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
29 #include "lisp.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
30 #include "blockinput.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
31 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
32 #include "macterm.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
33 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
34 #ifndef MAC_OSX |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
35 #include <alloca.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
36 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
37 |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
38 #if TARGET_API_MAC_CARBON |
46798 | 39 /* USE_CARBON_EVENTS determines if the Carbon Event Manager is used to |
40 obtain events from the event queue. If set to 0, WaitNextEvent is | |
41 used instead. */ | |
42 #define USE_CARBON_EVENTS 1 | |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
43 #else /* not TARGET_API_MAC_CARBON */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
44 #include <Quickdraw.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
45 #include <ToolUtils.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
46 #include <Sound.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
47 #include <Events.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
48 #include <Script.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
49 #include <Resources.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
50 #include <Fonts.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
51 #include <TextUtils.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
52 #include <LowMem.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
53 #include <Controls.h> |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
54 #include <Windows.h> |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
55 #if defined (__MRC__) || (__MSL__ >= 0x6000) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
56 #include <ControlDefinitions.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
57 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
58 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
59 #if __profile__ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
60 #include <profiler.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
61 #endif |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
62 #endif /* not TARGET_API_MAC_CARBON */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
63 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
64 #include "systty.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
65 #include "systime.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
66 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
67 #include <ctype.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
68 #include <errno.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
69 #include <setjmp.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
70 #include <sys/stat.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
71 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
72 #include "charset.h" |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
73 #include "coding.h" |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
74 #include "frame.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
75 #include "dispextern.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
76 #include "fontset.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
77 #include "termhooks.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
78 #include "termopts.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
79 #include "termchar.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
80 #include "gnu.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
81 #include "disptab.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
82 #include "buffer.h" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
83 #include "window.h" |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
84 #include "keyboard.h" |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
85 #include "intervals.h" |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
86 #include "atimer.h" |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
87 #include "keymap.h" |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
88 #include "character.h" |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
89 #include "ccl.h" |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
90 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
91 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
92 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
93 /* Non-nil means Emacs uses toolkit scroll bars. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
94 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
95 Lisp_Object Vx_toolkit_scroll_bars; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
96 |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
97 /* If non-zero, the text will be rendered using Core Graphics text |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
98 rendering which may anti-alias the text. */ |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
99 int mac_use_core_graphics; |
59577
a4a748516aa7
* macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents:
59575
diff
changeset
|
100 |
a4a748516aa7
* macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents:
59575
diff
changeset
|
101 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
102 /* Non-zero means that a HELP_EVENT has been generated since Emacs |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
103 start. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
104 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
105 static int any_help_event_p; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
106 |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
107 /* Last window where we saw the mouse. Used by mouse-autoselect-window. */ |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
108 static Lisp_Object last_window; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
109 |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
110 /* Non-zero means make use of UNDERLINE_POSITION font properties. |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
111 (Not yet supported.) */ |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
112 int x_use_underline_position_properties; |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
113 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
114 /* This is a chain of structures for all the X displays currently in |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
115 use. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
116 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
117 struct x_display_info *x_display_list; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
118 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
119 /* This is a list of cons cells, each of the form (NAME |
60635
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
120 FONT-LIST-CACHE . RESOURCE-DATABASE), one for each element of |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
121 x_display_list and in the same order. NAME is the name of the |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
122 frame. FONT-LIST-CACHE records previous values returned by |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
123 x-list-fonts. RESOURCE-DATABASE preserves the X Resource Database |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
124 equivalent, which is implemented with a Lisp object, for the |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
125 display. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
126 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
127 Lisp_Object x_display_name_list; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
128 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
129 /* This is display since Mac does not support multiple ones. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
130 struct mac_display_info one_mac_display_info; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
131 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
132 /* Frame being updated by update_frame. This is declared in term.c. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
133 This is set by update_begin and looked at by all the XT functions. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
134 It is zero while not inside an update. In that case, the XT |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
135 functions assume that `selected_frame' is the frame to apply to. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
136 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
137 extern struct frame *updating_frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
138 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
139 /* This is a frame waiting to be auto-raised, within XTread_socket. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
140 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
141 struct frame *pending_autoraise_frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
142 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
143 /* Mouse movement. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
144 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
145 Formerly, we used PointerMotionHintMask (in standard_event_mask) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
146 so that we would have to call XQueryPointer after each MotionNotify |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
147 event to ask for another such event. However, this made mouse tracking |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
148 slow, and there was a bug that made it eventually stop. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
149 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
150 Simply asking for MotionNotify all the time seems to work better. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
151 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
152 In order to avoid asking for motion events and then throwing most |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
153 of them away or busy-polling the server for mouse positions, we ask |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
154 the server for pointer motion hints. This means that we get only |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
155 one event per group of mouse movements. "Groups" are delimited by |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
156 other kinds of events (focus changes and button clicks, for |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
157 example), or by XQueryPointer calls; when one of these happens, we |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
158 get another MotionNotify event the next time the mouse moves. This |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
159 is at least as efficient as getting motion events when mouse |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
160 tracking is on, and I suspect only negligibly worse when tracking |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
161 is off. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
162 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
163 /* Where the mouse was last time we reported a mouse event. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
164 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
165 static Rect last_mouse_glyph; |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
166 static FRAME_PTR last_mouse_glyph_frame; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
167 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
168 /* The scroll bar in which the last X motion event occurred. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
169 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
170 If the last X motion event occurred in a scroll bar, we set this so |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
171 XTmouse_position can know whether to report a scroll bar motion or |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
172 an ordinary motion. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
173 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
174 If the last X motion event didn't occur in a scroll bar, we set |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
175 this to Qnil, to tell XTmouse_position to return an ordinary motion |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
176 event. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
177 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
178 static Lisp_Object last_mouse_scroll_bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
179 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
180 /* This is a hack. We would really prefer that XTmouse_position would |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
181 return the time associated with the position it returns, but there |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
182 doesn't seem to be any way to wrest the time-stamp from the server |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
183 along with the position query. So, we just keep track of the time |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
184 of the last movement we received, and return that in hopes that |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
185 it's somewhat accurate. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
186 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
187 static Time last_mouse_movement_time; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
188 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
189 struct scroll_bar *tracked_scroll_bar = NULL; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
190 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
191 /* Incremented by XTread_socket whenever it really tries to read |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
192 events. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
193 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
194 #ifdef __STDC__ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
195 static int volatile input_signal_count; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
196 #else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
197 static int input_signal_count; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
198 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
199 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
200 extern Lisp_Object Vsystem_name; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
201 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
202 /* A mask of extra modifier bits to put into every keyboard char. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
203 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
204 extern EMACS_INT extra_keyboard_modifiers; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
205 |
57783
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
206 /* The keysyms to use for the various modifiers. */ |
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
207 |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
208 static Lisp_Object Qalt, Qhyper, Qsuper, Qcontrol, Qmeta, Qmodifier_value; |
57783
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
209 |
46856
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
210 extern int inhibit_window_system; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
211 |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
212 #if __MRC__ && !TARGET_API_MAC_CARBON |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
213 QDGlobals qd; /* QuickDraw global information structure. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
214 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
215 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
216 #define mac_window_to_frame(wp) (((mac_output *) GetWRefCon (wp))->mFP) |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
217 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
218 struct mac_display_info *mac_display_info_for_display (Display *); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
219 static void x_update_window_end P_ ((struct window *, int, int)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
220 static int x_io_error_quitter P_ ((Display *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
221 int x_catch_errors P_ ((Display *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
222 void x_uncatch_errors P_ ((Display *, int)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
223 void x_lower_frame P_ ((struct frame *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
224 void x_scroll_bar_clear P_ ((struct frame *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
225 int x_had_errors_p P_ ((Display *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
226 void x_wm_set_size_hint P_ ((struct frame *, long, int)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
227 void x_raise_frame P_ ((struct frame *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
228 void x_set_window_size P_ ((struct frame *, int, int, int)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
229 void x_wm_set_window_state P_ ((struct frame *, int)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
230 void x_wm_set_icon_pixmap P_ ((struct frame *, int)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
231 void mac_initialize P_ ((void)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
232 static void x_font_min_bounds P_ ((XFontStruct *, int *, int *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
233 static int x_compute_min_glyph_bounds P_ ((struct frame *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
234 static void x_update_end P_ ((struct frame *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
235 static void XTframe_up_to_date P_ ((struct frame *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
236 static void XTset_terminal_modes P_ ((void)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
237 static void XTreset_terminal_modes P_ ((void)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
238 static void x_clear_frame P_ ((void)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
239 static void frame_highlight P_ ((struct frame *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
240 static void frame_unhighlight P_ ((struct frame *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
241 static void x_new_focus_frame P_ ((struct x_display_info *, struct frame *)); |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
242 static void mac_focus_changed P_ ((int, struct mac_display_info *, |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
243 struct frame *, struct input_event *)); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
244 static void x_detect_focus_change P_ ((struct mac_display_info *, |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
245 EventRecord *, struct input_event *)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
246 static void XTframe_rehighlight P_ ((struct frame *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
247 static void x_frame_rehighlight P_ ((struct x_display_info *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
248 static void x_draw_hollow_cursor P_ ((struct window *, struct glyph_row *)); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
249 static void x_draw_bar_cursor P_ ((struct window *, struct glyph_row *, int, |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
250 enum text_cursor_kinds)); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
251 |
58403
c936fa56eb60
(x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents:
57783
diff
changeset
|
252 static void x_clip_to_row P_ ((struct window *, struct glyph_row *, int, GC)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
253 static void x_flush P_ ((struct frame *f)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
254 static void x_update_begin P_ ((struct frame *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
255 static void x_update_window_begin P_ ((struct window *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
256 static void x_after_update_window_line P_ ((struct glyph_row *)); |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
257 static void x_scroll_bar_report_motion P_ ((struct frame **, Lisp_Object *, |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
258 enum scroll_bar_part *, |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
259 Lisp_Object *, Lisp_Object *, |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
260 unsigned long *)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
261 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
262 static int is_emacs_window P_ ((WindowPtr)); |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
263 static XCharStruct *mac_per_char_metric P_ ((XFontStruct *, XChar2b *, int)); |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
264 static void XSetFont P_ ((Display *, GC, XFontStruct *)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
265 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
266 /* Defined in macmenu.h. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
267 extern void menubar_selection_callback (FRAME_PTR, int); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
268 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
269 #define GC_FORE_COLOR(gc) (&(gc)->fore_color) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
270 #define GC_BACK_COLOR(gc) (&(gc)->back_color) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
271 #define GC_FONT(gc) ((gc)->xgcv.font) |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
272 #define GC_CLIP_REGION(gc) ((gc)->clip_region) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
273 #define FRAME_NORMAL_GC(f) ((f)->output_data.mac->normal_gc) |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
274 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
275 static RgnHandle saved_port_clip_region = NULL; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
276 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
277 static void |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
278 mac_begin_clip (region) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
279 RgnHandle region; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
280 { |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
281 static RgnHandle new_region = NULL; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
282 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
283 if (saved_port_clip_region == NULL) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
284 saved_port_clip_region = NewRgn (); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
285 if (new_region == NULL) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
286 new_region = NewRgn (); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
287 |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
288 if (region && !EmptyRgn (region)) |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
289 { |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
290 GetClip (saved_port_clip_region); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
291 SectRgn (saved_port_clip_region, region, new_region); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
292 SetClip (new_region); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
293 } |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
294 } |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
295 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
296 static void |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
297 mac_end_clip (region) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
298 RgnHandle region; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
299 { |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
300 if (region && !EmptyRgn (region)) |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
301 SetClip (saved_port_clip_region); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
302 } |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
303 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
304 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
305 /* X display function emulation */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
306 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
307 void |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
308 XFreePixmap (display, pixmap) |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
309 Display *display; /* not used */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
310 Pixmap pixmap; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
311 { |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
312 DisposeGWorld (pixmap); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
313 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
314 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
315 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
316 /* Mac version of XDrawLine. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
317 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
318 static void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
319 mac_draw_line (f, gc, x1, y1, x2, y2) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
320 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
321 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
322 int x1, y1, x2, y2; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
323 { |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
324 SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
325 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
326 RGBForeColor (GC_FORE_COLOR (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
327 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
328 mac_begin_clip (GC_CLIP_REGION (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
329 MoveTo (x1, y1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
330 LineTo (x2, y2); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
331 mac_end_clip (GC_CLIP_REGION (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
332 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
333 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
334 void |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
335 mac_draw_line_to_pixmap (display, p, gc, x1, y1, x2, y2) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
336 Display *display; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
337 Pixmap p; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
338 GC gc; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
339 int x1, y1, x2, y2; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
340 { |
55412
53a1a79a33f9
macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents:
55128
diff
changeset
|
341 CGrafPtr old_port; |
53a1a79a33f9
macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents:
55128
diff
changeset
|
342 GDHandle old_gdh; |
53a1a79a33f9
macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents:
55128
diff
changeset
|
343 |
53a1a79a33f9
macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents:
55128
diff
changeset
|
344 GetGWorld (&old_port, &old_gdh); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
345 SetGWorld (p, NULL); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
346 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
347 RGBForeColor (GC_FORE_COLOR (gc)); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
348 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
349 LockPixels (GetGWorldPixMap (p)); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
350 MoveTo (x1, y1); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
351 LineTo (x2, y2); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
352 UnlockPixels (GetGWorldPixMap (p)); |
55412
53a1a79a33f9
macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents:
55128
diff
changeset
|
353 |
53a1a79a33f9
macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents:
55128
diff
changeset
|
354 SetGWorld (old_port, old_gdh); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
355 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
356 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
357 |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
358 static void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
359 mac_erase_rectangle (f, gc, x, y, width, height) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
360 struct frame *f; |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
361 GC gc; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
362 int x, y; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
363 unsigned int width, height; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
364 { |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
365 Rect r; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
366 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
367 SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
368 |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
369 RGBBackColor (GC_BACK_COLOR (gc)); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
370 SetRect (&r, x, y, x + width, y + height); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
371 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
372 mac_begin_clip (GC_CLIP_REGION (gc)); |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
373 EraseRect (&r); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
374 mac_end_clip (GC_CLIP_REGION (gc)); |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
375 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
376 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
377 } |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
378 |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
379 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
380 /* Mac version of XClearArea. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
381 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
382 void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
383 mac_clear_area (f, x, y, width, height) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
384 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
385 int x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
386 unsigned int width, height; |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
387 { |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
388 mac_erase_rectangle (f, FRAME_NORMAL_GC (f), x, y, width, height); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
389 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
390 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
391 /* Mac version of XClearWindow. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
392 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
393 static void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
394 mac_clear_window (f) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
395 struct frame *f; |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
396 { |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
397 SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
398 |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
399 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
400 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
401 #if TARGET_API_MAC_CARBON |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
402 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
403 Rect r; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
404 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
405 GetWindowPortBounds (FRAME_MAC_WINDOW (f), &r); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
406 EraseRect (&r); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
407 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
408 #else /* not TARGET_API_MAC_CARBON */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
409 EraseRect (&(FRAME_MAC_WINDOW (f)->portRect)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
410 #endif /* not TARGET_API_MAC_CARBON */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
411 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
412 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
413 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
414 /* Mac replacement for XCopyArea. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
415 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
416 static void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
417 mac_draw_bitmap (f, gc, x, y, width, height, bits, overlay_p) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
418 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
419 GC gc; |
53935
60bbfcb6328e
(mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents:
53899
diff
changeset
|
420 int x, y, width, height; |
60bbfcb6328e
(mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents:
53899
diff
changeset
|
421 unsigned short *bits; |
53899
e45e1fbbe83e
(mac_draw_bitmap): Add overlay_p arg.
Kim F. Storm <storm@cua.dk>
parents:
53885
diff
changeset
|
422 int overlay_p; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
423 { |
53935
60bbfcb6328e
(mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents:
53899
diff
changeset
|
424 BitMap bitmap; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
425 Rect r; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
426 |
53935
60bbfcb6328e
(mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents:
53899
diff
changeset
|
427 bitmap.rowBytes = sizeof(unsigned short); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
428 bitmap.baseAddr = (char *)bits; |
53935
60bbfcb6328e
(mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents:
53899
diff
changeset
|
429 SetRect (&(bitmap.bounds), 0, 0, width, height); |
60bbfcb6328e
(mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents:
53899
diff
changeset
|
430 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
431 SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
432 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
433 RGBForeColor (GC_FORE_COLOR (gc)); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
434 RGBBackColor (GC_BACK_COLOR (gc)); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
435 SetRect (&r, x, y, x + width, y + height); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
436 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
437 mac_begin_clip (GC_CLIP_REGION (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
438 #if TARGET_API_MAC_CARBON |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
439 { |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
440 CGrafPtr port; |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
441 |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
442 GetPort (&port); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
443 LockPortBits (port); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
444 CopyBits (&bitmap, GetPortBitMapForCopyBits (port), |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
445 &(bitmap.bounds), &r, overlay_p ? srcOr : srcCopy, 0); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
446 UnlockPortBits (port); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
447 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
448 #else /* not TARGET_API_MAC_CARBON */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
449 CopyBits (&bitmap, &(FRAME_MAC_WINDOW (f)->portBits), &(bitmap.bounds), &r, |
53899
e45e1fbbe83e
(mac_draw_bitmap): Add overlay_p arg.
Kim F. Storm <storm@cua.dk>
parents:
53885
diff
changeset
|
450 overlay_p ? srcOr : srcCopy, 0); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
451 #endif /* not TARGET_API_MAC_CARBON */ |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
452 mac_end_clip (GC_CLIP_REGION (gc)); |
60623
5a3fa411c713
(activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60611
diff
changeset
|
453 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
454 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
455 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
456 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
457 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
458 /* Mac replacement for XCreateBitmapFromBitmapData. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
459 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
460 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
461 mac_create_bitmap_from_bitmap_data (bitmap, bits, w, h) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
462 BitMap *bitmap; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
463 char *bits; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
464 int w, h; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
465 { |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
466 static unsigned char swap_nibble[16] |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
467 = { 0x0, 0x8, 0x4, 0xc, /* 0000 1000 0100 1100 */ |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
468 0x2, 0xa, 0x6, 0xe, /* 0010 1010 0110 1110 */ |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
469 0x1, 0x9, 0x5, 0xd, /* 0001 1001 0101 1101 */ |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
470 0x3, 0xb, 0x7, 0xf }; /* 0011 1011 0111 1111 */ |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
471 int i, j, w1; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
472 char *p; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
473 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
474 w1 = (w + 7) / 8; /* nb of 8bits elt in X bitmap */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
475 bitmap->rowBytes = ((w + 15) / 16) * 2; /* nb of 16bits elt in Mac bitmap */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
476 bitmap->baseAddr = xmalloc (bitmap->rowBytes * h); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
477 bzero (bitmap->baseAddr, bitmap->rowBytes * h); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
478 for (i = 0; i < h; i++) |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
479 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
480 p = bitmap->baseAddr + i * bitmap->rowBytes; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
481 for (j = 0; j < w1; j++) |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
482 { |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
483 /* Bitswap XBM bytes to match how Mac does things. */ |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
484 unsigned char c = *bits++; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
485 *p++ = (unsigned char)((swap_nibble[c & 0xf] << 4) |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
486 | (swap_nibble[(c>>4) & 0xf]));; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
487 } |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
488 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
489 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
490 SetRect (&(bitmap->bounds), 0, 0, w, h); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
491 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
492 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
493 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
494 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
495 mac_free_bitmap (bitmap) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
496 BitMap *bitmap; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
497 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
498 xfree (bitmap->baseAddr); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
499 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
500 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
501 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
502 Pixmap |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
503 XCreatePixmap (display, w, width, height, depth) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
504 Display *display; /* not used */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
505 WindowPtr w; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
506 unsigned int width, height; |
58634
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
507 unsigned int depth; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
508 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
509 Pixmap pixmap; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
510 Rect r; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
511 QDErr err; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
512 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
513 SetPortWindowPort (w); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
514 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
515 SetRect (&r, 0, 0, width, height); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
516 err = NewGWorld (&pixmap, depth, &r, NULL, NULL, 0); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
517 if (err != noErr) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
518 return NULL; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
519 return pixmap; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
520 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
521 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
522 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
523 Pixmap |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
524 XCreatePixmapFromBitmapData (display, w, data, width, height, fg, bg, depth) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
525 Display *display; /* not used */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
526 WindowPtr w; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
527 char *data; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
528 unsigned int width, height; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
529 unsigned long fg, bg; |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
530 unsigned int depth; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
531 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
532 Pixmap pixmap; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
533 BitMap bitmap; |
55412
53a1a79a33f9
macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents:
55128
diff
changeset
|
534 CGrafPtr old_port; |
53a1a79a33f9
macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents:
55128
diff
changeset
|
535 GDHandle old_gdh; |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
536 static GC gc = NULL; /* not reentrant */ |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
537 |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
538 if (gc == NULL) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
539 gc = XCreateGC (display, w, 0, NULL); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
540 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
541 pixmap = XCreatePixmap (display, w, width, height, depth); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
542 if (pixmap == NULL) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
543 return NULL; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
544 |
55412
53a1a79a33f9
macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents:
55128
diff
changeset
|
545 GetGWorld (&old_port, &old_gdh); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
546 SetGWorld (pixmap, NULL); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
547 mac_create_bitmap_from_bitmap_data (&bitmap, data, width, height); |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
548 XSetForeground (display, gc, fg); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
549 XSetBackground (display, gc, bg); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
550 RGBForeColor (GC_FORE_COLOR (gc)); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
551 RGBBackColor (GC_BACK_COLOR (gc)); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
552 LockPixels (GetGWorldPixMap (pixmap)); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
553 #if TARGET_API_MAC_CARBON |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
554 CopyBits (&bitmap, GetPortBitMapForCopyBits (pixmap), |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
555 &bitmap.bounds, &bitmap.bounds, srcCopy, 0); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
556 #else /* not TARGET_API_MAC_CARBON */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
557 CopyBits (&bitmap, &(((GrafPtr)pixmap)->portBits), |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
558 &bitmap.bounds, &bitmap.bounds, srcCopy, 0); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
559 #endif /* not TARGET_API_MAC_CARBON */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
560 UnlockPixels (GetGWorldPixMap (pixmap)); |
55412
53a1a79a33f9
macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents:
55128
diff
changeset
|
561 SetGWorld (old_port, old_gdh); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
562 mac_free_bitmap (&bitmap); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
563 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
564 return pixmap; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
565 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
566 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
567 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
568 /* Mac replacement for XFillRectangle. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
569 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
570 static void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
571 mac_fill_rectangle (f, gc, x, y, width, height) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
572 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
573 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
574 int x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
575 unsigned int width, height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
576 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
577 Rect r; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
578 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
579 SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
580 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
581 RGBForeColor (GC_FORE_COLOR (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
582 SetRect (&r, x, y, x + width, y + height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
583 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
584 mac_begin_clip (GC_CLIP_REGION (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
585 PaintRect (&r); /* using foreground color of gc */ |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
586 mac_end_clip (GC_CLIP_REGION (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
587 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
588 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
589 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
590 /* Mac replacement for XDrawRectangle: dest is a window. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
591 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
592 static void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
593 mac_draw_rectangle (f, gc, x, y, width, height) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
594 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
595 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
596 int x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
597 unsigned int width, height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
598 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
599 Rect r; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
600 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
601 SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
602 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
603 RGBForeColor (GC_FORE_COLOR (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
604 SetRect (&r, x, y, x + width + 1, y + height + 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
605 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
606 mac_begin_clip (GC_CLIP_REGION (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
607 FrameRect (&r); /* using foreground color of gc */ |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
608 mac_end_clip (GC_CLIP_REGION (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
609 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
610 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
611 |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
612 #if USE_ATSUI |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
613 static OSStatus |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
614 atsu_get_text_layout_with_text_ptr (text, text_length, style, text_layout) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
615 ConstUniCharArrayPtr text; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
616 UniCharCount text_length; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
617 ATSUStyle style; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
618 ATSUTextLayout *text_layout; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
619 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
620 OSStatus err; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
621 static ATSUTextLayout saved_text_layout = NULL; /* not reentrant */ |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
622 |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
623 if (saved_text_layout == NULL) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
624 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
625 UniCharCount lengths[] = {kATSUToTextEnd}; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
626 ATSUAttributeTag tags[] = {kATSULineLayoutOptionsTag}; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
627 ByteCount sizes[] = {sizeof (ATSLineLayoutOptions)}; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
628 static ATSLineLayoutOptions line_layout = |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
629 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
630 kATSLineDisableAllLayoutOperations | kATSLineUseDeviceMetrics |
68145
d88b44855af3
[USE_ATSUI] (atsu_get_text_layout_with_text_ptr)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67788
diff
changeset
|
631 | kATSLineUseQDRendering |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
632 #else |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
633 kATSLineIsDisplayOnly | kATSLineFractDisable |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
634 #endif |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
635 ; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
636 ATSUAttributeValuePtr values[] = {&line_layout}; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
637 |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
638 err = ATSUCreateTextLayoutWithTextPtr (text, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
639 kATSUFromTextBeginning, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
640 kATSUToTextEnd, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
641 text_length, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
642 1, lengths, &style, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
643 &saved_text_layout); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
644 if (err == noErr) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
645 err = ATSUSetLayoutControls (saved_text_layout, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
646 sizeof (tags) / sizeof (tags[0]), |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
647 tags, sizes, values); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
648 /* XXX: Should we do this? */ |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
649 if (err == noErr) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
650 err = ATSUSetTransientFontMatching (saved_text_layout, true); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
651 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
652 else |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
653 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
654 err = ATSUSetRunStyle (saved_text_layout, style, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
655 kATSUFromTextBeginning, kATSUToTextEnd); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
656 if (err == noErr) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
657 err = ATSUSetTextPointerLocation (saved_text_layout, text, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
658 kATSUFromTextBeginning, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
659 kATSUToTextEnd, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
660 text_length); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
661 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
662 |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
663 if (err == noErr) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
664 *text_layout = saved_text_layout; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
665 return err; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
666 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
667 #endif |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
668 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
669 |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
670 static void |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
671 mac_invert_rectangle (f, x, y, width, height) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
672 struct frame *f; |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
673 int x, y; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
674 unsigned int width, height; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
675 { |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
676 Rect r; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
677 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
678 SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
679 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
680 SetRect (&r, x, y, x + width, y + height); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
681 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
682 InvertRect (&r); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
683 } |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
684 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
685 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
686 static void |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
687 mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, bytes_per_char) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
688 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
689 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
690 int x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
691 char *buf; |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
692 int nchars, bg_width, bytes_per_char; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
693 { |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
694 SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
695 |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
696 #if USE_ATSUI |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
697 if (GC_FONT (gc)->mac_style) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
698 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
699 OSErr err; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
700 ATSUTextLayout text_layout; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
701 |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
702 xassert (bytes_per_char == 2); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
703 |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
704 #ifndef WORDS_BIG_ENDIAN |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
705 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
706 int i; |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
707 UniChar *text = (UniChar *)buf; |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
708 |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
709 for (i = 0; i < nchars; i++) |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
710 text[i] = EndianU16_BtoN (text[i]); |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
711 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
712 #endif |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
713 err = atsu_get_text_layout_with_text_ptr ((ConstUniCharArrayPtr)buf, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
714 nchars, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
715 GC_FONT (gc)->mac_style, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
716 &text_layout); |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
717 if (err != noErr) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
718 return; |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
719 #ifdef MAC_OSX |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
720 if (!mac_use_core_graphics) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
721 { |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
722 #endif |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
723 mac_begin_clip (GC_CLIP_REGION (gc)); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
724 RGBForeColor (GC_FORE_COLOR (gc)); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
725 if (bg_width) |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
726 { |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
727 Rect r; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
728 |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
729 SetRect (&r, x, y - FONT_BASE (GC_FONT (gc)), |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
730 x + bg_width, y + FONT_DESCENT (GC_FONT (gc))); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
731 RGBBackColor (GC_BACK_COLOR (gc)); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
732 EraseRect (&r); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
733 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
734 } |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
735 MoveTo (x, y); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
736 ATSUDrawText (text_layout, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
737 kATSUFromTextBeginning, kATSUToTextEnd, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
738 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
739 mac_end_clip (GC_CLIP_REGION (gc)); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
740 #ifdef MAC_OSX |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
741 } |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
742 else |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
743 { |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
744 CGrafPtr port; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
745 CGContextRef context; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
746 float port_height = FRAME_PIXEL_HEIGHT (f); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
747 ATSUAttributeTag tags[] = {kATSUCGContextTag}; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
748 ByteCount sizes[] = {sizeof (CGContextRef)}; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
749 ATSUAttributeValuePtr values[] = {&context}; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
750 |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
751 GetPort (&port); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
752 QDBeginCGContext (port, &context); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
753 if (gc->n_clip_rects || bg_width) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
754 { |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
755 CGContextTranslateCTM (context, 0, port_height); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
756 CGContextScaleCTM (context, 1, -1); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
757 if (gc->n_clip_rects) |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
758 CGContextClipToRects (context, gc->clip_rects, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
759 gc->n_clip_rects); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
760 if (bg_width) |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
761 { |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
762 CGContextSetRGBFillColor |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
763 (context, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
764 RED_FROM_ULONG (gc->xgcv.background) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
765 GREEN_FROM_ULONG (gc->xgcv.background) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
766 BLUE_FROM_ULONG (gc->xgcv.background) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
767 1.0); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
768 CGContextFillRect |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
769 (context, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
770 CGRectMake (x, y - FONT_BASE (GC_FONT (gc)), |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
771 bg_width, FONT_HEIGHT (GC_FONT (gc)))); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
772 } |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
773 CGContextScaleCTM (context, 1, -1); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
774 CGContextTranslateCTM (context, 0, -port_height); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
775 } |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
776 CGContextSetRGBFillColor |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
777 (context, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
778 RED_FROM_ULONG (gc->xgcv.foreground) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
779 GREEN_FROM_ULONG (gc->xgcv.foreground) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
780 BLUE_FROM_ULONG (gc->xgcv.foreground) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
781 1.0); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
782 err = ATSUSetLayoutControls (text_layout, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
783 sizeof (tags) / sizeof (tags[0]), |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
784 tags, sizes, values); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
785 if (err == noErr) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
786 ATSUDrawText (text_layout, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
787 kATSUFromTextBeginning, kATSUToTextEnd, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
788 Long2Fix (x), Long2Fix (port_height - y)); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
789 CGContextSynchronize (context); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
790 QDEndCGContext (port, &context); |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
791 #if 0 |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
792 /* This doesn't work on Mac OS X 10.1. */ |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
793 ATSUClearLayoutControls (text_layout, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
794 sizeof (tags) / sizeof (tags[0]), tags); |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
795 #else |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
796 ATSUSetLayoutControls (text_layout, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
797 sizeof (tags) / sizeof (tags[0]), |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
798 tags, sizes, values); |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
799 #endif |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
800 } |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
801 #endif /* MAC_OSX */ |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
802 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
803 else |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
804 #endif /* USE_ATSUI */ |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
805 { |
59899
96a18b943293
(mac_draw_string_common, x_make_frame_visible): Use
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59804
diff
changeset
|
806 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
807 UInt32 savedFlags; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
808 |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
809 if (mac_use_core_graphics) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
810 savedFlags = SwapQDTextFlags (kQDUseCGTextRendering); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
811 #endif |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
812 mac_begin_clip (GC_CLIP_REGION (gc)); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
813 RGBForeColor (GC_FORE_COLOR (gc)); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
814 #ifdef MAC_OS8 |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
815 if (bg_width) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
816 { |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
817 RGBBackColor (GC_BACK_COLOR (gc)); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
818 TextMode (srcCopy); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
819 } |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
820 else |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
821 TextMode (srcOr); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
822 #else |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
823 /* We prefer not to use srcCopy text transfer mode on Mac OS X |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
824 because: |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
825 - Screen is double-buffered. (In srcCopy mode, a text is |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
826 drawn into an offscreen graphics world first. So |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
827 performance gain cannot be expected.) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
828 - It lowers rendering quality. |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
829 - Some fonts leave garbage on cursor movement. */ |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
830 if (bg_width) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
831 { |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
832 Rect r; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
833 |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
834 RGBBackColor (GC_BACK_COLOR (gc)); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
835 SetRect (&r, x, y - FONT_BASE (GC_FONT (gc)), |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
836 x + bg_width, y + FONT_DESCENT (GC_FONT (gc))); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
837 EraseRect (&r); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
838 } |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
839 TextMode (srcOr); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
840 #endif |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
841 TextFont (GC_FONT (gc)->mac_fontnum); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
842 TextSize (GC_FONT (gc)->mac_fontsize); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
843 TextFace (GC_FONT (gc)->mac_fontface); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
844 MoveTo (x, y); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
845 DrawText (buf, 0, nchars * bytes_per_char); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
846 if (bg_width) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
847 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
848 mac_end_clip (GC_CLIP_REGION (gc)); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
849 |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
850 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
851 if (mac_use_core_graphics) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
852 SwapQDTextFlags(savedFlags); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
853 #endif |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
854 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
855 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
856 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
857 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
858 /* Mac replacement for XDrawString. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
859 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
860 static void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
861 mac_draw_string (f, gc, x, y, buf, nchars) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
862 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
863 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
864 int x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
865 char *buf; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
866 int nchars; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
867 { |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
868 mac_draw_string_common (f, gc, x, y, buf, nchars, 0, 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
869 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
870 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
871 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
872 /* Mac replacement for XDrawString16. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
873 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
874 static void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
875 mac_draw_string_16 (f, gc, x, y, buf, nchars) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
876 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
877 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
878 int x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
879 XChar2b *buf; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
880 int nchars; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
881 { |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
882 mac_draw_string_common (f, gc, x, y, (char *) buf, nchars, 0, 2); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
883 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
884 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
885 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
886 /* Mac replacement for XDrawImageString. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
887 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
888 static void |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
889 mac_draw_image_string (f, gc, x, y, buf, nchars, bg_width) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
890 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
891 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
892 int x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
893 char *buf; |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
894 int nchars, bg_width; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
895 { |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
896 mac_draw_string_common (f, gc, x, y, buf, nchars, bg_width, 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
897 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
898 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
899 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
900 /* Mac replacement for XDrawString16. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
901 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
902 static void |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
903 mac_draw_image_string_16 (f, gc, x, y, buf, nchars, bg_width) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
904 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
905 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
906 int x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
907 XChar2b *buf; |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
908 int nchars, bg_width; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
909 { |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
910 mac_draw_string_common (f, gc, x, y, (char *) buf, nchars, bg_width, 2); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
911 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
912 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
913 |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
914 /* Mac replacement for XQueryTextExtents, but takes a character. If |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
915 STYLE is NULL, measurement is done by QuickDraw Text routines for |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
916 the font of the current graphics port. If CG_GLYPH is not NULL, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
917 *CG_GLYPH is set to the glyph ID or 0 if it cannot be obtained. */ |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
918 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
919 static OSErr |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
920 mac_query_char_extents (style, c, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
921 font_ascent_return, font_descent_return, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
922 overall_return, cg_glyph) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
923 #if USE_ATSUI |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
924 ATSUStyle style; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
925 #else |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
926 void *style; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
927 #endif |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
928 int c; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
929 int *font_ascent_return, *font_descent_return; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
930 XCharStruct *overall_return; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
931 #if USE_CG_TEXT_DRAWING |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
932 CGGlyph *cg_glyph; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
933 #else |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
934 void *cg_glyph; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
935 #endif |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
936 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
937 OSErr err = noErr; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
938 int width; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
939 Rect char_bounds; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
940 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
941 #if USE_ATSUI |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
942 if (style) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
943 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
944 ATSUTextLayout text_layout; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
945 UniChar ch = c; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
946 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
947 err = atsu_get_text_layout_with_text_ptr (&ch, 1, style, &text_layout); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
948 if (err == noErr) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
949 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
950 ATSTrapezoid glyph_bounds; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
951 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
952 err = ATSUGetGlyphBounds (text_layout, 0, 0, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
953 kATSUFromTextBeginning, kATSUToTextEnd, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
954 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
955 kATSUseFractionalOrigins, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
956 #else |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
957 kATSUseDeviceOrigins, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
958 #endif |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
959 1, &glyph_bounds, NULL); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
960 if (err == noErr) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
961 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
962 xassert (glyph_bounds.lowerRight.x - glyph_bounds.lowerLeft.x |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
963 == glyph_bounds.upperRight.x - glyph_bounds.upperLeft.x); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
964 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
965 width = Fix2Long (glyph_bounds.upperRight.x |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
966 - glyph_bounds.upperLeft.x); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
967 if (font_ascent_return) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
968 *font_ascent_return = -Fix2Long (glyph_bounds.upperLeft.y); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
969 if (font_descent_return) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
970 *font_descent_return = Fix2Long (glyph_bounds.lowerLeft.y); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
971 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
972 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
973 if (err == noErr && overall_return) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
974 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
975 err = ATSUMeasureTextImage (text_layout, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
976 kATSUFromTextBeginning, kATSUToTextEnd, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
977 0, 0, &char_bounds); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
978 if (err == noErr) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
979 STORE_XCHARSTRUCT (*overall_return, width, char_bounds); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
980 #if USE_CG_TEXT_DRAWING |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
981 if (err == noErr && cg_glyph) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
982 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
983 OSErr err1; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
984 ATSUGlyphInfoArray glyph_info_array; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
985 ByteCount count = sizeof (ATSUGlyphInfoArray); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
986 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
987 err1 = ATSUMatchFontsToText (text_layout, kATSUFromTextBeginning, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
988 kATSUToTextEnd, NULL, NULL, NULL); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
989 if (err1 == noErr) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
990 err1 = ATSUGetGlyphInfo (text_layout, kATSUFromTextBeginning, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
991 kATSUToTextEnd, &count, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
992 &glyph_info_array); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
993 if (err1 == noErr) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
994 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
995 xassert (glyph_info_array.glyphs[0].glyphID); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
996 *cg_glyph = glyph_info_array.glyphs[0].glyphID; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
997 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
998 else |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
999 *cg_glyph = 0; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1000 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1001 #endif |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1002 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1003 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1004 else |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1005 #endif |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1006 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1007 if (font_ascent_return || font_descent_return) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1008 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1009 FontInfo font_info; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1010 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1011 GetFontInfo (&font_info); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1012 if (font_ascent_return) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1013 *font_ascent_return = font_info.ascent; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1014 if (font_descent_return) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1015 *font_descent_return = font_info.descent; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1016 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1017 if (overall_return) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1018 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1019 char ch = c; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1020 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1021 width = CharWidth (ch); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1022 QDTextBounds (1, &ch, &char_bounds); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1023 STORE_XCHARSTRUCT (*overall_return, width, char_bounds); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1024 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1025 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1026 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1027 return err; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1028 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1029 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1030 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1031 /* Mac replacement for XTextExtents16. Only sets horizontal metrics. */ |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1032 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1033 static int |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1034 mac_text_extents_16 (font_struct, string, nchars, overall_return) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1035 XFontStruct *font_struct; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1036 XChar2b *string; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1037 int nchars; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1038 XCharStruct *overall_return; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1039 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1040 int i; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1041 short width = 0, lbearing = 0, rbearing = 0; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1042 XCharStruct *pcm; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1043 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1044 for (i = 0; i < nchars; i++) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1045 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1046 pcm = mac_per_char_metric (font_struct, string, 0); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1047 if (pcm == NULL) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1048 width += FONT_WIDTH (font_struct); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1049 else |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1050 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1051 lbearing = min (lbearing, width + pcm->lbearing); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1052 rbearing = max (rbearing, width + pcm->rbearing); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1053 width += pcm->width; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1054 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1055 string++; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1056 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1057 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1058 overall_return->lbearing = lbearing; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1059 overall_return->rbearing = rbearing; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1060 overall_return->width = width; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1061 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1062 /* What's the meaning of the return value of XTextExtents16? */ |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1063 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1064 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1065 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1066 #if USE_CG_TEXT_DRAWING |
67000
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
1067 static int cg_text_anti_aliasing_threshold = 8; |
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
1068 |
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
1069 static void |
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
1070 init_cg_text_anti_aliasing_threshold () |
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
1071 { |
68770
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
1072 int threshold; |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
1073 Boolean valid_p; |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
1074 |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
1075 threshold = |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
1076 CFPreferencesGetAppIntegerValue (CFSTR ("AppleAntiAliasingThreshold"), |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
1077 kCFPreferencesCurrentApplication, |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
1078 &valid_p); |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
1079 if (valid_p) |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
1080 cg_text_anti_aliasing_threshold = threshold; |
67000
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
1081 } |
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
1082 |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1083 static int |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1084 mac_draw_image_string_cg (f, gc, x, y, buf, nchars, bg_width) |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1085 struct frame *f; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1086 GC gc; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1087 int x, y; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1088 XChar2b *buf; |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1089 int nchars, bg_width; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1090 { |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1091 CGrafPtr port; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1092 float port_height, gx, gy; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1093 int i; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1094 CGContextRef context; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1095 CGGlyph *glyphs; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1096 CGSize *advances; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1097 |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
1098 if (!mac_use_core_graphics || GC_FONT (gc)->cg_font == NULL) |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1099 return 0; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1100 |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1101 port = GetWindowPort (FRAME_MAC_WINDOW (f)); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1102 port_height = FRAME_PIXEL_HEIGHT (f); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1103 gx = x; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1104 gy = port_height - y; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1105 glyphs = (CGGlyph *)buf; |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1106 advances = alloca (sizeof (CGSize) * nchars); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1107 if (advances == NULL) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1108 return 0; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1109 for (i = 0; i < nchars; i++) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1110 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1111 XCharStruct *pcm = mac_per_char_metric (GC_FONT (gc), buf, 0); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1112 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1113 advances[i].width = pcm->width; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1114 advances[i].height = 0; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1115 glyphs[i] = GC_FONT (gc)->cg_glyphs[buf->byte2]; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1116 buf++; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1117 } |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1118 |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1119 QDBeginCGContext (port, &context); |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1120 if (gc->n_clip_rects || bg_width) |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1121 { |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1122 CGContextTranslateCTM (context, 0, port_height); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1123 CGContextScaleCTM (context, 1, -1); |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1124 if (gc->n_clip_rects) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1125 CGContextClipToRects (context, gc->clip_rects, gc->n_clip_rects); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1126 if (bg_width) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1127 { |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1128 CGContextSetRGBFillColor |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1129 (context, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1130 RED_FROM_ULONG (gc->xgcv.background) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1131 GREEN_FROM_ULONG (gc->xgcv.background) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1132 BLUE_FROM_ULONG (gc->xgcv.background) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1133 1.0); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1134 CGContextFillRect |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1135 (context, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1136 CGRectMake (gx, y - FONT_BASE (GC_FONT (gc)), |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1137 bg_width, FONT_HEIGHT (GC_FONT (gc)))); |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1138 } |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1139 CGContextScaleCTM (context, 1, -1); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1140 CGContextTranslateCTM (context, 0, -port_height); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1141 } |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1142 CGContextSetRGBFillColor (context, |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1143 RED_FROM_ULONG (gc->xgcv.foreground) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1144 GREEN_FROM_ULONG (gc->xgcv.foreground) / 255.0f, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1145 BLUE_FROM_ULONG (gc->xgcv.foreground) / 255.0f, |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1146 1.0); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1147 CGContextSetFont (context, GC_FONT (gc)->cg_font); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1148 CGContextSetFontSize (context, GC_FONT (gc)->mac_fontsize); |
67000
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
1149 if (GC_FONT (gc)->mac_fontsize <= cg_text_anti_aliasing_threshold) |
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
1150 CGContextSetShouldAntialias (context, false); |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1151 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1030 |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1152 CGContextSetTextPosition (context, gx, gy); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1153 CGContextShowGlyphsWithAdvances (context, glyphs, advances, nchars); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1154 #else |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1155 for (i = 0; i < nchars; i++) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1156 { |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1157 CGContextShowGlyphsAtPoint (context, gx, gy, glyphs + i, 1); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1158 gx += advances[i].width; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1159 } |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1160 #endif |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1161 CGContextSynchronize (context); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1162 QDEndCGContext (port, &context); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1163 |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1164 return 1; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1165 } |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1166 #endif |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1167 |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
1168 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1169 /* Mac replacement for XCopyArea: dest must be window. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1170 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1171 static void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1172 mac_copy_area (src, f, gc, src_x, src_y, width, height, dest_x, dest_y) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1173 Pixmap src; |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1174 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1175 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1176 int src_x, src_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1177 unsigned int width, height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1178 int dest_x, dest_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1179 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1180 Rect src_r, dest_r; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1181 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1182 SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1183 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1184 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1185 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1186 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1187 ForeColor (blackColor); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1188 BackColor (whiteColor); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1189 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1190 mac_begin_clip (GC_CLIP_REGION (gc)); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1191 LockPixels (GetGWorldPixMap (src)); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1192 #if TARGET_API_MAC_CARBON |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1193 { |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1194 CGrafPtr port; |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1195 |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1196 GetPort (&port); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1197 LockPortBits (port); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1198 CopyBits (GetPortBitMapForCopyBits (src), |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1199 GetPortBitMapForCopyBits (port), |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1200 &src_r, &dest_r, srcCopy, 0); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1201 UnlockPortBits (port); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1202 } |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1203 #else /* not TARGET_API_MAC_CARBON */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1204 CopyBits (&(((GrafPtr)src)->portBits), &(FRAME_MAC_WINDOW (f)->portBits), |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1205 &src_r, &dest_r, srcCopy, 0); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1206 #endif /* not TARGET_API_MAC_CARBON */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1207 UnlockPixels (GetGWorldPixMap (src)); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1208 mac_end_clip (GC_CLIP_REGION (gc)); |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
1209 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1210 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1211 } |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1212 |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1213 |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1214 static void |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1215 mac_copy_area_with_mask (src, mask, f, gc, src_x, src_y, |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1216 width, height, dest_x, dest_y) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1217 Pixmap src, mask; |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1218 struct frame *f; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1219 GC gc; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1220 int src_x, src_y; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1221 unsigned int width, height; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1222 int dest_x, dest_y; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1223 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1224 Rect src_r, dest_r; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1225 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1226 SetPortWindowPort (FRAME_MAC_WINDOW (f)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1227 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1228 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1229 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1230 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1231 ForeColor (blackColor); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1232 BackColor (whiteColor); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1233 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1234 mac_begin_clip (GC_CLIP_REGION (gc)); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1235 LockPixels (GetGWorldPixMap (src)); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1236 LockPixels (GetGWorldPixMap (mask)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1237 #if TARGET_API_MAC_CARBON |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1238 { |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1239 CGrafPtr port; |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1240 |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1241 GetPort (&port); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1242 LockPortBits (port); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1243 CopyMask (GetPortBitMapForCopyBits (src), GetPortBitMapForCopyBits (mask), |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1244 GetPortBitMapForCopyBits (port), |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1245 &src_r, &src_r, &dest_r); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1246 UnlockPortBits (port); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1247 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1248 #else /* not TARGET_API_MAC_CARBON */ |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1249 CopyMask (&(((GrafPtr)src)->portBits), &(((GrafPtr)mask)->portBits), |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1250 &(FRAME_MAC_WINDOW (f)->portBits), &src_r, &src_r, &dest_r); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1251 #endif /* not TARGET_API_MAC_CARBON */ |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1252 UnlockPixels (GetGWorldPixMap (mask)); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1253 UnlockPixels (GetGWorldPixMap (src)); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1254 mac_end_clip (GC_CLIP_REGION (gc)); |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
1255 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1256 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1257 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1258 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1259 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1260 /* Mac replacement for XCopyArea: used only for scrolling. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1261 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1262 static void |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1263 mac_scroll_area (f, gc, src_x, src_y, width, height, dest_x, dest_y) |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1264 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1265 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1266 int src_x, src_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1267 unsigned int width, height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1268 int dest_x, dest_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1269 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1270 #if TARGET_API_MAC_CARBON |
58634
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1271 Rect src_r; |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1272 RgnHandle dummy = NewRgn (); /* For avoiding update events. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1273 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1274 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1275 ScrollWindowRect (FRAME_MAC_WINDOW (f), |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1276 &src_r, dest_x - src_x, dest_y - src_y, |
58634
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1277 kScrollWindowNoOptions, dummy); |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1278 DisposeRgn (dummy); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1279 #else /* not TARGET_API_MAC_CARBON */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1280 Rect src_r, dest_r; |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1281 WindowPtr w = FRAME_MAC_WINDOW (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1282 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1283 SetPort (w); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1284 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1285 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1286 SetRect (&dest_r, dest_x, dest_y, dest_x + width, dest_y + height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1287 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1288 /* In Color QuickDraw, set ForeColor and BackColor as follows to avoid |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1289 color mapping in CopyBits. Otherwise, it will be slow. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1290 ForeColor (blackColor); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1291 BackColor (whiteColor); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1292 mac_begin_clip (GC_CLIP_REGION (gc)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1293 CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1294 mac_end_clip (GC_CLIP_REGION (gc)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
1295 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1296 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f))); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1297 #endif /* not TARGET_API_MAC_CARBON */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1298 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1299 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1300 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1301 /* Mac replacement for XChangeGC. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1302 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1303 static void |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1304 XChangeGC (display, gc, mask, xgcv) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1305 Display *display; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1306 GC gc; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1307 unsigned long mask; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1308 XGCValues *xgcv; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1309 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1310 if (mask & GCForeground) |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1311 XSetForeground (display, gc, xgcv->foreground); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1312 if (mask & GCBackground) |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1313 XSetBackground (display, gc, xgcv->background); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1314 if (mask & GCFont) |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1315 XSetFont (display, gc, xgcv->font); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1316 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1317 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1318 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1319 /* Mac replacement for XCreateGC. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1320 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1321 GC |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1322 XCreateGC (display, window, mask, xgcv) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1323 Display *display; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1324 Window window; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1325 unsigned long mask; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1326 XGCValues *xgcv; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1327 { |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1328 GC gc = xmalloc (sizeof (*gc)); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1329 |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1330 if (gc) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1331 { |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1332 bzero (gc, sizeof (*gc)); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1333 XChangeGC (display, gc, mask, xgcv); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1334 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1335 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1336 return gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1337 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1338 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1339 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1340 /* Used in xfaces.c. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1341 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1342 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1343 XFreeGC (display, gc) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1344 Display *display; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1345 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1346 { |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1347 if (gc->clip_region) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1348 DisposeRgn (gc->clip_region); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1349 xfree (gc); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1350 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1351 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1352 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1353 /* Mac replacement for XGetGCValues. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1354 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1355 static void |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1356 XGetGCValues (display, gc, mask, xgcv) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1357 Display *display; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1358 GC gc; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1359 unsigned long mask; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1360 XGCValues *xgcv; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1361 { |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1362 if (mask & GCForeground) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1363 xgcv->foreground = gc->xgcv.foreground; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1364 if (mask & GCBackground) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1365 xgcv->background = gc->xgcv.background; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1366 if (mask & GCFont) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1367 xgcv->font = gc->xgcv.font; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1368 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1369 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1370 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1371 /* Mac replacement for XSetForeground. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1372 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
1373 void |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1374 XSetForeground (display, gc, color) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1375 Display *display; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1376 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1377 unsigned long color; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1378 { |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1379 if (gc->xgcv.foreground != color) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1380 { |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1381 gc->xgcv.foreground = color; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1382 gc->fore_color.red = RED16_FROM_ULONG (color); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1383 gc->fore_color.green = GREEN16_FROM_ULONG (color); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1384 gc->fore_color.blue = BLUE16_FROM_ULONG (color); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1385 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1386 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1387 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1388 |
59575
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1389 /* Mac replacement for XSetBackground. */ |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1390 |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1391 void |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1392 XSetBackground (display, gc, color) |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1393 Display *display; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1394 GC gc; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1395 unsigned long color; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1396 { |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1397 if (gc->xgcv.background != color) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1398 { |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1399 gc->xgcv.background = color; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1400 gc->back_color.red = RED16_FROM_ULONG (color); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1401 gc->back_color.green = GREEN16_FROM_ULONG (color); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1402 gc->back_color.blue = BLUE16_FROM_ULONG (color); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1403 } |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1404 } |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1405 |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1406 |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1407 /* Mac replacement for XSetFont. */ |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1408 |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1409 static void |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1410 XSetFont (display, gc, font) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1411 Display *display; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1412 GC gc; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1413 XFontStruct *font; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1414 { |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1415 gc->xgcv.font = font; |
59575
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1416 } |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1417 |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1418 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1419 /* Mac replacement for XSetClipRectangles. */ |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1420 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1421 static void |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1422 mac_set_clip_rectangles (display, gc, rectangles, n) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1423 Display *display; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1424 GC gc; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1425 Rect *rectangles; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1426 int n; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1427 { |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1428 int i; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1429 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1430 if (n < 0 || n > MAX_CLIP_RECTS) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1431 abort (); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1432 if (n == 0) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1433 { |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1434 if (gc->clip_region) |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
1435 SetEmptyRgn (gc->clip_region); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1436 } |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1437 else |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1438 { |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1439 if (gc->clip_region == NULL) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1440 gc->clip_region = NewRgn (); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1441 RectRgn (gc->clip_region, rectangles); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1442 if (n > 1) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1443 { |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1444 RgnHandle region = NewRgn (); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1445 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1446 for (i = 1; i < n; i++) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1447 { |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1448 RectRgn (region, rectangles + i); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1449 UnionRgn (gc->clip_region, region, gc->clip_region); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1450 } |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1451 DisposeRgn (region); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1452 } |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1453 } |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1454 #if defined (MAC_OSX) && USE_ATSUI |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1455 gc->n_clip_rects = n; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1456 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1457 for (i = 0; i < n; i++) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1458 { |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1459 Rect *rect = rectangles + i; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1460 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1461 gc->clip_rects[i] = CGRectMake (rect->left, rect->top, |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1462 rect->right - rect->left, |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1463 rect->bottom - rect->top); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1464 } |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1465 #endif |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1466 } |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1467 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1468 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1469 /* Mac replacement for XSetClipMask. */ |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1470 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1471 static INLINE void |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1472 mac_reset_clip_rectangles (display, gc) |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1473 Display *display; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1474 GC gc; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1475 { |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1476 mac_set_clip_rectangles (display, gc, NULL, 0); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1477 } |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1478 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
1479 |
59575
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1480 /* Mac replacement for XSetWindowBackground. */ |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1481 |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1482 void |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1483 XSetWindowBackground (display, w, color) |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1484 Display *display; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1485 WindowPtr w; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1486 unsigned long color; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1487 { |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1488 #if !TARGET_API_MAC_CARBON |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1489 AuxWinHandle aw_handle; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1490 CTabHandle ctab_handle; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1491 ColorSpecPtr ct_table; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1492 short ct_size; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1493 #endif |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1494 RGBColor bg_color; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1495 |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1496 bg_color.red = RED16_FROM_ULONG (color); |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1497 bg_color.green = GREEN16_FROM_ULONG (color); |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1498 bg_color.blue = BLUE16_FROM_ULONG (color); |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1499 |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1500 #if TARGET_API_MAC_CARBON |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1501 SetWindowContentColor (w, &bg_color); |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1502 #else |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1503 if (GetAuxWin (w, &aw_handle)) |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1504 { |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1505 ctab_handle = (*aw_handle)->awCTable; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1506 HandToHand ((Handle *) &ctab_handle); |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1507 ct_table = (*ctab_handle)->ctTable; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1508 ct_size = (*ctab_handle)->ctSize; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1509 while (ct_size > -1) |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1510 { |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1511 if (ct_table->value == 0) |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1512 { |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1513 ct_table->rgb = bg_color; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1514 CTabChanged (ctab_handle); |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1515 SetWinColor (w, (WCTabHandle) ctab_handle); |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1516 } |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1517 ct_size--; |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1518 } |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1519 } |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1520 #endif |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1521 } |
011a0c55c1f2
* macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents:
59407
diff
changeset
|
1522 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1523 /* x_sync is a no-op on Mac. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1524 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1525 x_sync (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1526 void *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1527 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1528 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1529 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1530 |
58634
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1531 /* Flush display of frame F, or of all frames if F is null. */ |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1532 |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1533 static void |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1534 x_flush (f) |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1535 struct frame *f; |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1536 { |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1537 #if TARGET_API_MAC_CARBON |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1538 BLOCK_INPUT; |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1539 if (f) |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1540 QDFlushPortBuffer (GetWindowPort (FRAME_MAC_WINDOW (f)), NULL); |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1541 else |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1542 QDFlushPortBuffer (GetQDGlobalsThePort (), NULL); |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1543 UNBLOCK_INPUT; |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1544 #endif |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1545 } |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1546 |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
1547 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1548 /* Remove calls to XFlush by defining XFlush to an empty replacement. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1549 Calls to XFlush should be unnecessary because the X output buffer |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1550 is flushed automatically as needed by calls to XPending, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1551 XNextEvent, or XWindowEvent according to the XFlush man page. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1552 XTread_socket calls XPending. Removing XFlush improves |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1553 performance. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1554 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
1555 #define XFlush(DISPLAY) (void) 0 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1556 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1557 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1558 /* Return the struct mac_display_info corresponding to DPY. There's |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1559 only one. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1560 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1561 struct mac_display_info * |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1562 mac_display_info_for_display (dpy) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1563 Display *dpy; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1564 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1565 return &one_mac_display_info; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1566 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1567 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1568 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1569 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1570 /*********************************************************************** |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1571 Starting and ending an update |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1572 ***********************************************************************/ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
1573 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1574 /* Start an update of frame F. This function is installed as a hook |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1575 for update_begin, i.e. it is called when update_begin is called. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1576 This function is called prior to calls to x_update_window_begin for |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1577 each window being updated. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1578 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1579 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1580 x_update_begin (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1581 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1582 { |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1583 #if TARGET_API_MAC_CARBON |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1584 /* During update of a frame, availability of input events is |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1585 periodically checked with ReceiveNextEvent if |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1586 redisplay-dont-pause is nil. That normally flushes window buffer |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1587 changes for every check, and thus screen update looks waving even |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1588 if no input is available. So we disable screen updates during |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1589 update of a frame. */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1590 BLOCK_INPUT; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1591 DisableScreenUpdates (); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1592 UNBLOCK_INPUT; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1593 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1594 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1595 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1596 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1597 /* Start update of window W. Set the global variable updated_window |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1598 to the window being updated and set output_cursor to the cursor |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1599 position of W. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1600 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1601 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1602 x_update_window_begin (w) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1603 struct window *w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1604 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1605 struct frame *f = XFRAME (WINDOW_FRAME (w)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1606 struct mac_display_info *display_info = FRAME_MAC_DISPLAY_INFO (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
1607 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1608 updated_window = w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1609 set_output_cursor (&w->cursor); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1610 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1611 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1612 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1613 if (f == display_info->mouse_face_mouse_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1614 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1615 /* Don't do highlighting for mouse motion during the update. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1616 display_info->mouse_face_defer = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1617 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1618 /* If F needs to be redrawn, simply forget about any prior mouse |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1619 highlighting. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1620 if (FRAME_GARBAGED_P (f)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1621 display_info->mouse_face_window = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1622 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1623 #if 0 /* Rows in a current matrix containing glyphs in mouse-face have |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1624 their mouse_face_p flag set, which means that they are always |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1625 unequal to rows in a desired matrix which never have that |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1626 flag set. So, rows containing mouse-face glyphs are never |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1627 scrolled, and we don't have to switch the mouse highlight off |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1628 here to prevent it from being scrolled. */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
1629 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1630 /* Can we tell that this update does not affect the window |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1631 where the mouse highlight is? If so, no need to turn off. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1632 Likewise, don't do anything if the frame is garbaged; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1633 in that case, the frame's current matrix that we would use |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1634 is all wrong, and we will redisplay that line anyway. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1635 if (!NILP (display_info->mouse_face_window) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1636 && w == XWINDOW (display_info->mouse_face_window)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1637 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1638 int i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1639 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
1640 for (i = 0; i < w->desired_matrix->nrows; ++i) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1641 if (MATRIX_ROW_ENABLED_P (w->desired_matrix, i)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1642 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1643 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1644 if (i < w->desired_matrix->nrows) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1645 clear_mouse_face (display_info); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1646 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1647 #endif /* 0 */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1648 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1649 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1650 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1651 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1652 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1653 |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
1654 /* Draw a vertical window border from (x,y0) to (x,y1) */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1655 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1656 static void |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
1657 mac_draw_vertical_window_border (w, x, y0, y1) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1658 struct window *w; |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
1659 int x, y0, y1; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1660 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1661 struct frame *f = XFRAME (WINDOW_FRAME (w)); |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
1662 struct face *face; |
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
1663 |
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
1664 face = FACE_FROM_ID (f, VERTICAL_BORDER_FACE_ID); |
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
1665 if (face) |
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
1666 XSetForeground (FRAME_MAC_DISPLAY (f), f->output_data.mac->normal_gc, |
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
1667 face->foreground); |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
1668 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1669 mac_draw_line (f, f->output_data.mac->normal_gc, x, y0, x, y1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1670 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1671 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1672 /* End update of window W (which is equal to updated_window). |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1673 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1674 Draw vertical borders between horizontally adjacent windows, and |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1675 display W's cursor if CURSOR_ON_P is non-zero. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1676 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1677 MOUSE_FACE_OVERWRITTEN_P non-zero means that some row containing |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1678 glyphs in mouse-face were overwritten. In that case we have to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1679 make sure that the mouse-highlight is properly redrawn. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1680 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1681 W may be a menu bar pseudo-window in case we don't have X toolkit |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1682 support. Such windows don't have a cursor, so don't display it |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
1683 here. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1684 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1685 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1686 x_update_window_end (w, cursor_on_p, mouse_face_overwritten_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1687 struct window *w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1688 int cursor_on_p, mouse_face_overwritten_p; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1689 { |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
1690 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (XFRAME (w->frame)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1691 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1692 if (!w->pseudo_window_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1693 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1694 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1695 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1696 if (cursor_on_p) |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
1697 display_and_set_cursor (w, 1, output_cursor.hpos, |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
1698 output_cursor.vpos, |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
1699 output_cursor.x, output_cursor.y); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
1700 |
57373
38e45bf0128a
(x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents:
57357
diff
changeset
|
1701 if (draw_window_fringes (w, 1)) |
38e45bf0128a
(x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents:
57357
diff
changeset
|
1702 x_draw_vertical_border (w); |
53606
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1703 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1704 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1705 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1706 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1707 /* If a row with mouse-face was overwritten, arrange for |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1708 XTframe_up_to_date to redisplay the mouse highlight. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1709 if (mouse_face_overwritten_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1710 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1711 dpyinfo->mouse_face_beg_row = dpyinfo->mouse_face_beg_col = -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1712 dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_end_col = -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1713 dpyinfo->mouse_face_window = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1714 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1715 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1716 updated_window = NULL; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1717 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1718 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1719 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1720 /* End update of frame F. This function is installed as a hook in |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1721 update_end. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1722 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1723 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1724 x_update_end (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1725 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1726 { |
56890
e8bafb4b47db
(x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents:
56477
diff
changeset
|
1727 /* Mouse highlight may be displayed again. */ |
e8bafb4b47db
(x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents:
56477
diff
changeset
|
1728 FRAME_MAC_DISPLAY_INFO (f)->mouse_face_defer = 0; |
e8bafb4b47db
(x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents:
56477
diff
changeset
|
1729 |
e8bafb4b47db
(x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents:
56477
diff
changeset
|
1730 BLOCK_INPUT; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1731 #if TARGET_API_MAC_CARBON |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1732 EnableScreenUpdates (); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
1733 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1734 XFlush (FRAME_MAC_DISPLAY (f)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1735 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1736 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1737 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1738 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1739 /* This function is called from various places in xdisp.c whenever a |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1740 complete update has been performed. The global variable |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1741 updated_window is not available here. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1742 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1743 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1744 XTframe_up_to_date (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1745 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1746 { |
55539
db942c4b4345
macterm.c (x_flush, XTframe_up_to_date): use FRAME_MAC_P
Steven Tamm <steventamm@mac.com>
parents:
55412
diff
changeset
|
1747 if (FRAME_MAC_P (f)) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1748 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1749 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1750 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1751 if (dpyinfo->mouse_face_deferred_gc |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1752 || f == dpyinfo->mouse_face_mouse_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1753 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1754 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1755 if (dpyinfo->mouse_face_mouse_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1756 note_mouse_highlight (dpyinfo->mouse_face_mouse_frame, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1757 dpyinfo->mouse_face_mouse_x, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1758 dpyinfo->mouse_face_mouse_y); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1759 dpyinfo->mouse_face_deferred_gc = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1760 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1761 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1762 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1763 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1764 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1765 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1766 /* Draw truncation mark bitmaps, continuation mark bitmaps, overlay |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1767 arrow bitmaps, or clear the fringes if no bitmaps are required |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1768 before DESIRED_ROW is made current. The window being updated is |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1769 found in updated_window. This function is called from |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1770 update_window_line only if it is known that there are differences |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1771 between bitmaps to be drawn between current row and DESIRED_ROW. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1772 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1773 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1774 x_after_update_window_line (desired_row) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1775 struct glyph_row *desired_row; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1776 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1777 struct window *w = updated_window; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1778 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1779 int width, height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1780 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1781 xassert (w); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
1782 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1783 if (!desired_row->mode_line_p && !w->pseudo_window_p) |
53606
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1784 desired_row->redraw_fringe_bitmaps_p = 1; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1785 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1786 /* When a window has disappeared, make sure that no rest of |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1787 full-width rows stays visible in the internal border. Could |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1788 check here if updated_window is the leftmost/rightmost window, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1789 but I guess it's not worth doing since vertically split windows |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1790 are almost never used, internal border is rarely set, and the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1791 overhead is very small. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1792 if (windows_or_buffers_changed |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1793 && desired_row->full_width_p |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1794 && (f = XFRAME (w->frame), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1795 width = FRAME_INTERNAL_BORDER_WIDTH (f), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1796 width != 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1797 && (height = desired_row->visible_height, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1798 height > 0)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1799 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1800 int y = WINDOW_TO_FRAME_PIXEL_Y (w, max (0, desired_row->y)); |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
1801 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1802 /* Internal border is drawn below the tool bar. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1803 if (WINDOWP (f->tool_bar_window) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1804 && w == XWINDOW (f->tool_bar_window)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1805 y -= width; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1806 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1807 BLOCK_INPUT; |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1808 mac_clear_area (f, 0, y, width, height); |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1809 mac_clear_area (f, FRAME_PIXEL_WIDTH (f) - width, y, width, height); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1810 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1811 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1812 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1813 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1814 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1815 /* Draw the bitmap WHICH in one of the left or right fringes of |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1816 window W. ROW is the glyph row for which to display the bitmap; it |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1817 determines the vertical position at which the bitmap has to be |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1818 drawn. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1819 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1820 static void |
50097 | 1821 x_draw_fringe_bitmap (w, row, p) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1822 struct window *w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1823 struct glyph_row *row; |
50097 | 1824 struct draw_fringe_bitmap_params *p; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1825 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1826 struct frame *f = XFRAME (WINDOW_FRAME (w)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1827 Display *display = FRAME_MAC_DISPLAY (f); |
50097 | 1828 struct face *face = p->face; |
53606
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1829 int rowY; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1830 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1831 /* Must clip because of partially visible lines. */ |
53606
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1832 rowY = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1833 if (p->y < rowY) |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1834 { |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1835 /* Adjust position of "bottom aligned" bitmap on partially |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1836 visible last row. */ |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1837 int oldY = row->y; |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1838 int oldVH = row->visible_height; |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1839 row->visible_height = p->h; |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1840 row->y -= rowY - p->y; |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1841 x_clip_to_row (w, row, -1, face->gc); |
53606
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1842 row->y = oldY; |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1843 row->visible_height = oldVH; |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1844 } |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
1845 else |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1846 x_clip_to_row (w, row, -1, face->gc); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1847 |
53885
693745d24f76
(x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents:
53722
diff
changeset
|
1848 if (p->bx >= 0 && !p->overlay_p) |
50097 | 1849 { |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1850 #if 0 /* MAC_TODO: stipple */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1851 /* In case the same realized face is used for fringes and |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1852 for something displayed in the text (e.g. face `region' on |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1853 mono-displays, the fill style may have been changed to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1854 FillSolid in x_draw_glyph_string_background. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1855 if (face->stipple) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1856 XSetFillStyle (FRAME_X_DISPLAY (f), face->gc, FillOpaqueStippled); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1857 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1858 XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->background); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1859 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1860 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1861 mac_erase_rectangle (f, face->gc, p->bx, p->by, p->nx, p->ny); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1862 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1863 #if 0 /* MAC_TODO: stipple */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1864 if (!face->stipple) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1865 XSetForeground (FRAME_X_DISPLAY (f), face->gc, face->foreground); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1866 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1867 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1868 |
53885
693745d24f76
(x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents:
53722
diff
changeset
|
1869 if (p->which) |
693745d24f76
(x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents:
53722
diff
changeset
|
1870 { |
53935
60bbfcb6328e
(mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents:
53899
diff
changeset
|
1871 unsigned short *bits = p->bits + p->dh; |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1872 XGCValues gcv; |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1873 |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1874 XGetGCValues (display, face->gc, GCForeground, &gcv); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1875 XSetForeground (display, face->gc, |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1876 (p->cursor_p |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1877 ? (p->overlay_p ? face->background |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1878 : f->output_data.mac->cursor_pixel) |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1879 : face->foreground)); |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1880 mac_draw_bitmap (f, face->gc, p->x, p->y, |
53935
60bbfcb6328e
(mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents:
53899
diff
changeset
|
1881 p->wd, p->h, bits, p->overlay_p); |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
1882 XSetForeground (display, face->gc, gcv.foreground); |
50097 | 1883 } |
1884 | |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
1885 mac_reset_clip_rectangles (display, face->gc); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1886 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1887 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1888 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
1889 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1890 /* This is called when starting Emacs and when restarting after |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1891 suspend. When starting Emacs, no window is mapped. And nothing |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1892 must be done to Emacs's own window if it is suspended (though that |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1893 rarely happens). */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1894 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1895 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1896 XTset_terminal_modes () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1897 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1898 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1899 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1900 /* This is called when exiting or suspending Emacs. Exiting will make |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1901 the windows go away, and suspending requires no action. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1902 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1903 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1904 XTreset_terminal_modes () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1905 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1906 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1907 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
1908 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1909 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1910 /*********************************************************************** |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1911 Display Iterator |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1912 ***********************************************************************/ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1913 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1914 /* Function prototypes of this page. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1915 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1916 static XCharStruct *x_per_char_metric P_ ((XFontStruct *, XChar2b *)); |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
1917 static int mac_encode_char P_ ((int, XChar2b *, struct font_info *, |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
1918 struct charset *, int *)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1919 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1920 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1921 /* Get metrics of character CHAR2B in FONT. Value is null if CHAR2B |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1922 is not contained in the font. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1923 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1924 static INLINE XCharStruct * |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1925 x_per_char_metric (font, char2b) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1926 XFontStruct *font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1927 XChar2b *char2b; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1928 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1929 /* The result metric information. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1930 XCharStruct *pcm = NULL; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1931 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1932 xassert (font && char2b); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1933 |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1934 #if USE_ATSUI |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1935 if (font->mac_style) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1936 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1937 XCharStructRow **row = font->bounds.rows + char2b->byte1; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1938 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1939 if (*row == NULL) |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1940 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1941 *row = xmalloc (sizeof (XCharStructRow)); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1942 if (*row) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1943 bzero (*row, sizeof (XCharStructRow)); |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1944 } |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1945 if (*row) |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1946 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1947 pcm = (*row)->per_char + char2b->byte2; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1948 if (!XCHARSTRUCTROW_CHAR_VALID_P (*row, char2b->byte2)) |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1949 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1950 BLOCK_INPUT; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1951 mac_query_char_extents (font->mac_style, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1952 (char2b->byte1 << 8) + char2b->byte2, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1953 NULL, NULL, pcm, NULL); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1954 UNBLOCK_INPUT; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1955 XCHARSTRUCTROW_SET_CHAR_VALID (*row, char2b->byte2); |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1956 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1957 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1958 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1959 else |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1960 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
1961 #endif |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1962 if (font->bounds.per_char != NULL) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1963 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1964 if (font->min_byte1 == 0 && font->max_byte1 == 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1965 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1966 /* min_char_or_byte2 specifies the linear character index |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1967 corresponding to the first element of the per_char array, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1968 max_char_or_byte2 is the index of the last character. A |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1969 character with non-zero CHAR2B->byte1 is not in the font. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1970 A character with byte2 less than min_char_or_byte2 or |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1971 greater max_char_or_byte2 is not in the font. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1972 if (char2b->byte1 == 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1973 && char2b->byte2 >= font->min_char_or_byte2 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1974 && char2b->byte2 <= font->max_char_or_byte2) |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1975 pcm = font->bounds.per_char |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1976 + (char2b->byte2 - font->min_char_or_byte2); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1977 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1978 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1979 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1980 /* If either min_byte1 or max_byte1 are nonzero, both |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1981 min_char_or_byte2 and max_char_or_byte2 are less than |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1982 256, and the 2-byte character index values corresponding |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1983 to the per_char array element N (counting from 0) are: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1984 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1985 byte1 = N/D + min_byte1 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1986 byte2 = N\D + min_char_or_byte2 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1987 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1988 where: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1989 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1990 D = max_char_or_byte2 - min_char_or_byte2 + 1 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1991 / = integer division |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1992 \ = integer modulus */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1993 if (char2b->byte1 >= font->min_byte1 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1994 && char2b->byte1 <= font->max_byte1 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1995 && char2b->byte2 >= font->min_char_or_byte2 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1996 && char2b->byte2 <= font->max_char_or_byte2) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1997 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
1998 pcm = (font->bounds.per_char |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
1999 + ((font->max_char_or_byte2 - font->min_char_or_byte2 + 1) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2000 * (char2b->byte1 - font->min_byte1)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2001 + (char2b->byte2 - font->min_char_or_byte2)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2002 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2003 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2004 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2005 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2006 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2007 /* If the per_char pointer is null, all glyphs between the first |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2008 and last character indexes inclusive have the same |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2009 information, as given by both min_bounds and max_bounds. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2010 if (char2b->byte2 >= font->min_char_or_byte2 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2011 && char2b->byte2 <= font->max_char_or_byte2) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2012 pcm = &font->max_bounds; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2013 } |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
2014 #if USE_ATSUI |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
2015 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
2016 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2017 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2018 return ((pcm == NULL |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2019 || (pcm->width == 0 && (pcm->rbearing - pcm->lbearing) == 0)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2020 ? NULL : pcm); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2021 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2022 |
50157
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2023 /* RIF: |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2024 */ |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2025 |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2026 static XCharStruct * |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2027 mac_per_char_metric (font, char2b, font_type) |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2028 XFontStruct *font; |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2029 XChar2b *char2b; |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2030 int font_type; |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2031 { |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2032 return x_per_char_metric (font, char2b); |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2033 } |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2034 |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2035 /* RIF: |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2036 Encode CHAR2B using encoding information from FONT_INFO. CHAR2B is |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2037 the two-byte form of C. Encoding is returned in *CHAR2B. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2038 |
50157
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2039 static int |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2040 mac_encode_char (c, char2b, font_info, charset, two_byte_p) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2041 int c; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2042 XChar2b *char2b; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2043 struct font_info *font_info; |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2044 struct charset *charset; |
50157
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2045 int *two_byte_p; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2046 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2047 XFontStruct *font = font_info->font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2048 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2049 /* FONT_INFO may define a scheme by which to encode byte1 and byte2. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2050 This may be either a program in a special encoder language or a |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2051 fixed encoding. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2052 if (font_info->font_encoder) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2053 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2054 /* It's a program. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2055 struct ccl_program *ccl = font_info->font_encoder; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2056 |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
2057 check_ccl_update (ccl); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2058 if (CHARSET_DIMENSION (charset) == 1) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2059 { |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2060 ccl->reg[0] = CHARSET_ID (charset); |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2061 ccl->reg[1] = XCHAR2B_BYTE2 (char2b); |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
2062 ccl->reg[2] = -1; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2063 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2064 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2065 { |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2066 ccl->reg[0] = CHARSET_ID (charset); |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2067 ccl->reg[1] = XCHAR2B_BYTE1 (char2b); |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2068 ccl->reg[2] = XCHAR2B_BYTE2 (char2b); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2069 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2070 |
90248
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
2071 ccl_driver (ccl, NULL, NULL, 0, 0, Qnil); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2072 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2073 /* We assume that MSBs are appropriately set/reset by CCL |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2074 program. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2075 if (font->max_byte1 == 0) /* 1-byte font */ |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2076 STORE_XCHAR2B (char2b, 0, ccl->reg[1]); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2077 else |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2078 STORE_XCHAR2B (char2b, ccl->reg[1], ccl->reg[2]); |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2079 } |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2080 else if (font_info->encoding_type) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2081 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2082 /* Fixed encoding scheme. See fontset.h for the meaning of the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2083 encoding numbers. */ |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
2084 unsigned char enc = font_info->encoding_type; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2085 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2086 if ((enc == 1 || enc == 2) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2087 && CHARSET_DIMENSION (charset) == 2) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2088 char2b->byte1 |= 0x80; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2089 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2090 if (enc == 1 || enc == 3) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2091 char2b->byte2 |= 0x80; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2092 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2093 if (enc == 4) |
90248
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
2094 { |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
2095 int code = (char2b->byte1 << 8) | char2b->byte2; |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
2096 |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
2097 JIS_TO_SJIS (code); |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
2098 STORE_XCHAR2B (char2b, (code >> 8), (code & 0xFF)); |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
2099 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2100 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2101 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2102 if (two_byte_p) |
50157
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2103 *two_byte_p = ((XFontStruct *) (font_info->font))->max_byte1 > 0; |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2104 |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2105 return FONT_TYPE_UNKNOWN; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2106 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2107 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2108 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2109 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2110 /*********************************************************************** |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2111 Glyph display |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2112 ***********************************************************************/ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2113 |
50157
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2114 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
2115 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2116 static void x_set_glyph_string_clipping P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2117 static void x_set_glyph_string_gc P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2118 static void x_draw_glyph_string_background P_ ((struct glyph_string *, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2119 int)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2120 static void x_draw_glyph_string_foreground P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2121 static void x_draw_composite_glyph_string_foreground P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2122 static void x_draw_glyph_string_box P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2123 static void x_draw_glyph_string P_ ((struct glyph_string *)); |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
2124 static void mac_compute_glyph_string_overhangs P_ ((struct glyph_string *)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2125 static void x_set_cursor_gc P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2126 static void x_set_mode_line_face_gc P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2127 static void x_set_mouse_face_gc P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2128 /*static int x_alloc_lighter_color P_ ((struct frame *, Display *, Colormap, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2129 unsigned long *, double, int));*/ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2130 static void x_setup_relief_color P_ ((struct frame *, struct relief *, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2131 double, int, unsigned long)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2132 static void x_setup_relief_colors P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2133 static void x_draw_image_glyph_string P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2134 static void x_draw_image_relief P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2135 static void x_draw_image_foreground P_ ((struct glyph_string *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2136 static void x_draw_image_foreground_1 P_ ((struct glyph_string *, Pixmap)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2137 static void x_clear_glyph_string_rect P_ ((struct glyph_string *, int, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2138 int, int, int)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2139 static void x_draw_relief_rect P_ ((struct frame *, int, int, int, int, |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
2140 int, int, int, int, int, int, |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
2141 Rect *)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2142 static void x_draw_box_rect P_ ((struct glyph_string *, int, int, int, int, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2143 int, int, int, Rect *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2144 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2145 #if GLYPH_DEBUG |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2146 static void x_check_font P_ ((struct frame *, XFontStruct *)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2147 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2148 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2149 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2150 /* Set S->gc to a suitable GC for drawing glyph string S in cursor |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2151 face. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2152 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2153 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2154 x_set_cursor_gc (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2155 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2156 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2157 if (s->font == FRAME_FONT (s->f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2158 && s->face->background == FRAME_BACKGROUND_PIXEL (s->f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2159 && s->face->foreground == FRAME_FOREGROUND_PIXEL (s->f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2160 && !s->cmp) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2161 s->gc = s->f->output_data.mac->cursor_gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2162 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2163 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2164 /* Cursor on non-default face: must merge. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2165 XGCValues xgcv; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2166 unsigned long mask; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2167 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2168 xgcv.background = s->f->output_data.mac->cursor_pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2169 xgcv.foreground = s->face->background; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2170 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2171 /* If the glyph would be invisible, try a different foreground. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2172 if (xgcv.foreground == xgcv.background) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2173 xgcv.foreground = s->face->foreground; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2174 if (xgcv.foreground == xgcv.background) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2175 xgcv.foreground = s->f->output_data.mac->cursor_foreground_pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2176 if (xgcv.foreground == xgcv.background) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2177 xgcv.foreground = s->face->foreground; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2178 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2179 /* Make sure the cursor is distinct from text in this face. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2180 if (xgcv.background == s->face->background |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2181 && xgcv.foreground == s->face->foreground) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2182 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2183 xgcv.background = s->face->foreground; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2184 xgcv.foreground = s->face->background; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2185 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2186 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2187 IF_DEBUG (x_check_font (s->f, s->font)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2188 xgcv.font = s->font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2189 mask = GCForeground | GCBackground | GCFont; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2190 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2191 if (FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2192 XChangeGC (s->display, FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2193 mask, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2194 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2195 FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2196 = XCreateGC (s->display, s->window, mask, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2197 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2198 s->gc = FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2199 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2200 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2201 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2202 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2203 /* Set up S->gc of glyph string S for drawing text in mouse face. */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2204 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2205 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2206 x_set_mouse_face_gc (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2207 struct glyph_string *s; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2208 { |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2209 int face_id; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2210 struct face *face; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2211 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2212 /* What face has to be used last for the mouse face? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2213 face_id = FRAME_X_DISPLAY_INFO (s->f)->mouse_face_face_id; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2214 face = FACE_FROM_ID (s->f, face_id); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2215 if (face == NULL) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2216 face = FACE_FROM_ID (s->f, MOUSE_FACE_ID); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2217 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2218 if (s->first_glyph->type == CHAR_GLYPH) |
89709
688136a6cab5
(x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
Kenichi Handa <handa@m17n.org>
parents:
88123
diff
changeset
|
2219 face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch, -1, Qnil); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2220 else |
89709
688136a6cab5
(x_set_mouse_face_gc): Call FACE_FOR_CHAR with POS and
Kenichi Handa <handa@m17n.org>
parents:
88123
diff
changeset
|
2221 face_id = FACE_FOR_CHAR (s->f, face, 0, -1, Qnil); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2222 s->face = FACE_FROM_ID (s->f, face_id); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2223 PREPARE_FACE_FOR_DISPLAY (s->f, s->face); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2224 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2225 /* If font in this face is same as S->font, use it. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2226 if (s->font == s->face->font) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2227 s->gc = s->face->gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2228 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2229 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2230 /* Otherwise construct scratch_cursor_gc with values from FACE |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2231 but font FONT. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2232 XGCValues xgcv; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2233 unsigned long mask; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2234 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2235 xgcv.background = s->face->background; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2236 xgcv.foreground = s->face->foreground; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2237 IF_DEBUG (x_check_font (s->f, s->font)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2238 xgcv.font = s->font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2239 mask = GCForeground | GCBackground | GCFont; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2240 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2241 if (FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2242 XChangeGC (s->display, FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2243 mask, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2244 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2245 FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2246 = XCreateGC (s->display, s->window, mask, &xgcv); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2247 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2248 s->gc = FRAME_MAC_DISPLAY_INFO (s->f)->scratch_cursor_gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2249 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2250 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2251 xassert (s->gc != 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2252 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2253 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2254 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2255 /* Set S->gc of glyph string S to a GC suitable for drawing a mode line. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2256 Faces to use in the mode line have already been computed when the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2257 matrix was built, so there isn't much to do, here. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2258 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2259 static INLINE void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2260 x_set_mode_line_face_gc (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2261 struct glyph_string *s; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2262 { |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2263 s->gc = s->face->gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2264 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2265 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2266 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2267 /* Set S->gc of glyph string S for drawing that glyph string. Set |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2268 S->stippled_p to a non-zero value if the face of S has a stipple |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2269 pattern. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2270 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2271 static INLINE void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2272 x_set_glyph_string_gc (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2273 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2274 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2275 PREPARE_FACE_FOR_DISPLAY (s->f, s->face); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2276 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2277 if (s->hl == DRAW_NORMAL_TEXT) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2278 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2279 s->gc = s->face->gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2280 s->stippled_p = s->face->stipple != 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2281 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2282 else if (s->hl == DRAW_INVERSE_VIDEO) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2283 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2284 x_set_mode_line_face_gc (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2285 s->stippled_p = s->face->stipple != 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2286 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2287 else if (s->hl == DRAW_CURSOR) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2288 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2289 x_set_cursor_gc (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2290 s->stippled_p = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2291 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2292 else if (s->hl == DRAW_MOUSE_FACE) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2293 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2294 x_set_mouse_face_gc (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2295 s->stippled_p = s->face->stipple != 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2296 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2297 else if (s->hl == DRAW_IMAGE_RAISED |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2298 || s->hl == DRAW_IMAGE_SUNKEN) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2299 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2300 s->gc = s->face->gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2301 s->stippled_p = s->face->stipple != 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2302 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2303 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2304 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2305 s->gc = s->face->gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2306 s->stippled_p = s->face->stipple != 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2307 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2308 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2309 /* GC must have been set. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2310 xassert (s->gc != 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2311 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2312 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2313 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2314 /* Set clipping for output of glyph string S. S may be part of a mode |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2315 line or menu if we don't have X toolkit support. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2316 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2317 static INLINE void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2318 x_set_glyph_string_clipping (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2319 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2320 { |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2321 Rect rects[MAX_CLIP_RECTS]; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2322 int n; |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2323 |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2324 n = get_glyph_string_clip_rects (s, rects, MAX_CLIP_RECTS); |
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2325 mac_set_clip_rectangles (s->display, s->gc, rects, n); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2326 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2327 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2328 |
50157
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2329 /* RIF: |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2330 Compute left and right overhang of glyph string S. If S is a glyph |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2331 string for a composition, assume overhangs don't exist. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2332 |
50157
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2333 static void |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
2334 mac_compute_glyph_string_overhangs (s) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2335 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2336 { |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
2337 if (s->cmp == NULL |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
2338 && s->first_glyph->type == CHAR_GLYPH) |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2339 if (!s->two_byte_p |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
2340 #if USE_ATSUI |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2341 || s->font->mac_style |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2342 #endif |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2343 ) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2344 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2345 XCharStruct cs; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2346 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2347 mac_text_extents_16 (s->font, s->char2b, s->nchars, &cs); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2348 s->right_overhang = cs.rbearing > cs.width ? cs.rbearing - cs.width : 0; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2349 s->left_overhang = cs.lbearing < 0 ? -cs.lbearing : 0; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2350 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2351 else |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2352 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2353 Rect r; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2354 MacFontStruct *font = s->font; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2355 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2356 TextFont (font->mac_fontnum); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2357 TextSize (font->mac_fontsize); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2358 TextFace (font->mac_fontface); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2359 |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
2360 QDTextBounds (s->nchars * 2, (char *)s->char2b, &r); |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2361 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2362 s->right_overhang = r.right > s->width ? r.right - s->width : 0; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2363 s->left_overhang = r.left < 0 ? -r.left : 0; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
2364 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2365 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2366 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2367 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2368 /* Fill rectangle X, Y, W, H with background color of glyph string S. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2369 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2370 static INLINE void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2371 x_clear_glyph_string_rect (s, x, y, w, h) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2372 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2373 int x, y, w, h; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2374 { |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2375 mac_erase_rectangle (s->f, s->gc, x, y, w, h); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2376 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2377 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2378 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2379 /* Draw the background of glyph_string S. If S->background_filled_p |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2380 is non-zero don't draw it. FORCE_P non-zero means draw the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2381 background even if it wouldn't be drawn normally. This is used |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2382 when a string preceding S draws into the background of S, or S |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2383 contains the first component of a composition. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2384 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2385 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2386 x_draw_glyph_string_background (s, force_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2387 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2388 int force_p; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2389 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2390 /* Nothing to do if background has already been drawn or if it |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2391 shouldn't be drawn in the first place. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2392 if (!s->background_filled_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2393 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2394 int box_line_width = max (s->face->box_line_width, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2395 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2396 #if 0 /* MAC_TODO: stipple */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2397 if (s->stippled_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2398 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2399 /* Fill background with a stipple pattern. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2400 XSetFillStyle (s->display, s->gc, FillOpaqueStippled); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2401 XFillRectangle (s->display, s->window, s->gc, s->x, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2402 s->y + box_line_width, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2403 s->background_width, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2404 s->height - 2 * box_line_width); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2405 XSetFillStyle (s->display, s->gc, FillSolid); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2406 s->background_filled_p = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2407 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2408 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2409 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2410 if (FONT_HEIGHT (s->font) < s->height - 2 * box_line_width |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2411 || s->font_not_found_p |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2412 || s->extends_to_end_of_line_p |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2413 || force_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2414 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2415 x_clear_glyph_string_rect (s, s->x, s->y + box_line_width, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2416 s->background_width, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2417 s->height - 2 * box_line_width); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2418 s->background_filled_p = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2419 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2420 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2421 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2422 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2423 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2424 /* Draw the foreground of glyph string S. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2425 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2426 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2427 x_draw_glyph_string_foreground (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2428 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2429 { |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2430 int i, x, bg_width; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2431 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2432 /* If first glyph of S has a left box line, start drawing the text |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2433 of S to the right of that box line. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2434 if (s->face->box != FACE_NO_BOX |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2435 && s->first_glyph->left_box_line_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2436 x = s->x + abs (s->face->box_line_width); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2437 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2438 x = s->x; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2439 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2440 /* Draw characters of S as rectangles if S's font could not be |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2441 loaded. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2442 if (s->font_not_found_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2443 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2444 for (i = 0; i < s->nchars; ++i) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2445 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2446 struct glyph *g = s->first_glyph + i; |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2447 mac_draw_rectangle (s->f, s->gc, x, s->y, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2448 g->pixel_width - 1, s->height - 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2449 x += g->pixel_width; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2450 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2451 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2452 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2453 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2454 char *char1b = (char *) s->char2b; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2455 int boff = s->font_info->baseline_offset; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2456 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2457 if (s->font_info->vertical_centering) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2458 boff = VCENTER_BASELINE_OFFSET (s->font, s->f) - boff; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2459 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2460 /* If we can use 8-bit functions, condense S->char2b. */ |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
2461 if (!s->two_byte_p |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
2462 #if USE_ATSUI |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
2463 && GC_FONT (s->gc)->mac_style == NULL |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
2464 #endif |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
2465 ) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2466 for (i = 0; i < s->nchars; ++i) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2467 char1b[i] = s->char2b[i].byte2; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2468 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2469 /* Draw text with XDrawString if background has already been |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2470 filled. Otherwise, use XDrawImageString. (Note that |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2471 XDrawImageString is usually faster than XDrawString.) Always |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2472 use XDrawImageString when drawing the cursor so that there is |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2473 no chance that characters under a box cursor are invisible. */ |
65892
41fc0bf568be
Rename member for_overlaps_p in struct glyph_string to for_overlaps.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65822
diff
changeset
|
2474 if (s->for_overlaps |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2475 || (s->background_filled_p && s->hl != DRAW_CURSOR)) |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2476 bg_width = 0; /* Corresponds to XDrawString. */ |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2477 else |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2478 bg_width = s->background_width; /* Corresponds to XDrawImageString. */ |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2479 |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2480 if (s->two_byte_p |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
2481 #if USE_ATSUI |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2482 || GC_FONT (s->gc)->mac_style |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2483 #endif |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2484 ) |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
2485 #if USE_CG_TEXT_DRAWING |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2486 if (!s->two_byte_p |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2487 && mac_draw_image_string_cg (s->f, s->gc, x, s->ybase - boff, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2488 s->char2b, s->nchars, bg_width)) |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2489 ; |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2490 else |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2491 #endif |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2492 mac_draw_image_string_16 (s->f, s->gc, x, s->ybase - boff, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2493 s->char2b, s->nchars, bg_width); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2494 else |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2495 mac_draw_image_string (s->f, s->gc, x, s->ybase - boff, |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
2496 char1b, s->nchars, bg_width); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2497 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2498 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2499 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2500 /* Draw the foreground of composite glyph string S. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2501 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2502 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2503 x_draw_composite_glyph_string_foreground (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2504 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2505 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2506 int i, x; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2507 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2508 /* If first glyph of S has a left box line, start drawing the text |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2509 of S to the right of that box line. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2510 if (s->face->box != FACE_NO_BOX |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2511 && s->first_glyph->left_box_line_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2512 x = s->x + abs (s->face->box_line_width); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2513 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2514 x = s->x; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2515 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2516 /* S is a glyph string for a composition. S->gidx is the index of |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2517 the first character drawn for glyphs of this composition. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2518 S->gidx == 0 means we are drawing the very first character of |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2519 this composition. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2520 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2521 /* Draw a rectangle for the composition if the font for the very |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2522 first character of the composition could not be loaded. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2523 if (s->font_not_found_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2524 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2525 if (s->gidx == 0) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2526 mac_draw_rectangle (s->f, s->gc, x, s->y, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2527 s->width - 1, s->height - 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2528 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2529 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2530 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2531 for (i = 0; i < s->nchars; i++, ++s->gidx) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2532 mac_draw_string_16 (s->f, s->gc, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2533 x + s->cmp->offsets[s->gidx * 2], |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2534 s->ybase - s->cmp->offsets[s->gidx * 2 + 1], |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2535 s->char2b + i, 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2536 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2537 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2538 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2539 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2540 #ifdef USE_X_TOOLKIT |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2541 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2542 static struct frame *x_frame_of_widget P_ ((Widget)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2543 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2544 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2545 /* Return the frame on which widget WIDGET is used.. Abort if frame |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2546 cannot be determined. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2547 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2548 static struct frame * |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2549 x_frame_of_widget (widget) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2550 Widget widget; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2551 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2552 struct x_display_info *dpyinfo; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2553 Lisp_Object tail; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2554 struct frame *f; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2555 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2556 dpyinfo = x_display_info_for_display (XtDisplay (widget)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2557 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2558 /* Find the top-level shell of the widget. Note that this function |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2559 can be called when the widget is not yet realized, so XtWindow |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2560 (widget) == 0. That's the reason we can't simply use |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2561 x_any_window_to_frame. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2562 while (!XtIsTopLevelShell (widget)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2563 widget = XtParent (widget); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2564 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2565 /* Look for a frame with that top-level widget. Allocate the color |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2566 on that frame to get the right gamma correction value. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2567 for (tail = Vframe_list; GC_CONSP (tail); tail = XCDR (tail)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2568 if (GC_FRAMEP (XCAR (tail)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2569 && (f = XFRAME (XCAR (tail)), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2570 (f->output_data.nothing != 1 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2571 && FRAME_X_DISPLAY_INFO (f) == dpyinfo)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2572 && f->output_data.x->widget == widget) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2573 return f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2574 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2575 abort (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2576 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2577 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2578 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2579 /* Allocate the color COLOR->pixel on the screen and display of |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2580 widget WIDGET in colormap CMAP. If an exact match cannot be |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2581 allocated, try the nearest color available. Value is non-zero |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2582 if successful. This is called from lwlib. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2583 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2584 int |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2585 x_alloc_nearest_color_for_widget (widget, cmap, color) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2586 Widget widget; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2587 Colormap cmap; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2588 XColor *color; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2589 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2590 struct frame *f = x_frame_of_widget (widget); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2591 return x_alloc_nearest_color (f, cmap, color); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2592 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2593 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2594 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2595 #endif /* USE_X_TOOLKIT */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2596 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2597 #if 0 /* MAC_TODO */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2598 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2599 /* Allocate the color COLOR->pixel on SCREEN of DISPLAY, colormap |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2600 CMAP. If an exact match can't be allocated, try the nearest color |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2601 available. Value is non-zero if successful. Set *COLOR to the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2602 color allocated. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2603 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2604 int |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2605 x_alloc_nearest_color (f, cmap, color) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2606 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2607 Colormap cmap; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2608 XColor *color; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2609 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2610 Display *display = FRAME_X_DISPLAY (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2611 Screen *screen = FRAME_X_SCREEN (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2612 int rc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2613 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2614 gamma_correct (f, color); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2615 rc = XAllocColor (display, cmap, color); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2616 if (rc == 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2617 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2618 /* If we got to this point, the colormap is full, so we're going |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2619 to try to get the next closest color. The algorithm used is |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2620 a least-squares matching, which is what X uses for closest |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2621 color matching with StaticColor visuals. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2622 int nearest, i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2623 unsigned long nearest_delta = ~0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2624 int ncells = XDisplayCells (display, XScreenNumberOfScreen (screen)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2625 XColor *cells = (XColor *) alloca (ncells * sizeof *cells); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2626 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2627 for (i = 0; i < ncells; ++i) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2628 cells[i].pixel = i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2629 XQueryColors (display, cmap, cells, ncells); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2630 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2631 for (nearest = i = 0; i < ncells; ++i) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2632 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2633 long dred = (color->red >> 8) - (cells[i].red >> 8); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2634 long dgreen = (color->green >> 8) - (cells[i].green >> 8); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2635 long dblue = (color->blue >> 8) - (cells[i].blue >> 8); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2636 unsigned long delta = dred * dred + dgreen * dgreen + dblue * dblue; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2637 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2638 if (delta < nearest_delta) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2639 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2640 nearest = i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2641 nearest_delta = delta; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2642 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2643 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2644 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2645 color->red = cells[nearest].red; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2646 color->green = cells[nearest].green; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2647 color->blue = cells[nearest].blue; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2648 rc = XAllocColor (display, cmap, color); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2649 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2650 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2651 #ifdef DEBUG_X_COLORS |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2652 if (rc) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2653 register_color (color->pixel); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2654 #endif /* DEBUG_X_COLORS */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2655 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2656 return rc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2657 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2658 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2659 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2660 /* Allocate color PIXEL on frame F. PIXEL must already be allocated. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2661 It's necessary to do this instead of just using PIXEL directly to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2662 get color reference counts right. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2663 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2664 unsigned long |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2665 x_copy_color (f, pixel) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2666 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2667 unsigned long pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2668 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2669 XColor color; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2670 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2671 color.pixel = pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2672 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2673 XQueryColor (FRAME_X_DISPLAY (f), FRAME_X_COLORMAP (f), &color); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2674 XAllocColor (FRAME_X_DISPLAY (f), FRAME_X_COLORMAP (f), &color); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2675 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2676 #ifdef DEBUG_X_COLORS |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2677 register_color (pixel); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2678 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2679 return color.pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2680 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2681 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2682 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2683 /* Allocate color PIXEL on display DPY. PIXEL must already be allocated. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2684 It's necessary to do this instead of just using PIXEL directly to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2685 get color reference counts right. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2686 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2687 unsigned long |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2688 x_copy_dpy_color (dpy, cmap, pixel) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2689 Display *dpy; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2690 Colormap cmap; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2691 unsigned long pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2692 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2693 XColor color; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2694 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2695 color.pixel = pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2696 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2697 XQueryColor (dpy, cmap, &color); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2698 XAllocColor (dpy, cmap, &color); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2699 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2700 #ifdef DEBUG_X_COLORS |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2701 register_color (pixel); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2702 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2703 return color.pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2704 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2705 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2706 #endif /* MAC_TODO */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2707 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2708 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2709 /* Brightness beyond which a color won't have its highlight brightness |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2710 boosted. |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2711 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2712 Nominally, highlight colors for `3d' faces are calculated by |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2713 brightening an object's color by a constant scale factor, but this |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2714 doesn't yield good results for dark colors, so for colors who's |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2715 brightness is less than this value (on a scale of 0-255) have to |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2716 use an additional additive factor. |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2717 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2718 The value here is set so that the default menu-bar/mode-line color |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2719 (grey75) will not have its highlights changed at all. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2720 #define HIGHLIGHT_COLOR_DARK_BOOST_LIMIT 187 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2721 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2722 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2723 /* Allocate a color which is lighter or darker than *COLOR by FACTOR |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2724 or DELTA. Try a color with RGB values multiplied by FACTOR first. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2725 If this produces the same color as COLOR, try a color where all RGB |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2726 values have DELTA added. Return the allocated color in *COLOR. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2727 DISPLAY is the X display, CMAP is the colormap to operate on. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2728 Value is non-zero if successful. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2729 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2730 static int |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2731 mac_alloc_lighter_color (f, color, factor, delta) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2732 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2733 unsigned long *color; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2734 double factor; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2735 int delta; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2736 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2737 unsigned long new; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2738 long bright; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2739 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2740 /* On Mac, RGB values are 0-255, not 0-65535, so scale delta. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2741 delta /= 256; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2742 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2743 /* Change RGB values by specified FACTOR. Avoid overflow! */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2744 xassert (factor >= 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2745 new = RGB_TO_ULONG (min (0xff, (int) (factor * RED_FROM_ULONG (*color))), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2746 min (0xff, (int) (factor * GREEN_FROM_ULONG (*color))), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2747 min (0xff, (int) (factor * BLUE_FROM_ULONG (*color)))); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2748 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2749 /* Calculate brightness of COLOR. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2750 bright = (2 * RED_FROM_ULONG (*color) + 3 * GREEN_FROM_ULONG (*color) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2751 + BLUE_FROM_ULONG (*color)) / 6; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2752 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2753 /* We only boost colors that are darker than |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2754 HIGHLIGHT_COLOR_DARK_BOOST_LIMIT. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2755 if (bright < HIGHLIGHT_COLOR_DARK_BOOST_LIMIT) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2756 /* Make an additive adjustment to NEW, because it's dark enough so |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2757 that scaling by FACTOR alone isn't enough. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2758 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2759 /* How far below the limit this color is (0 - 1, 1 being darker). */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2760 double dimness = 1 - (double)bright / HIGHLIGHT_COLOR_DARK_BOOST_LIMIT; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2761 /* The additive adjustment. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2762 int min_delta = delta * dimness * factor / 2; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2763 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2764 if (factor < 1) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2765 new = RGB_TO_ULONG (max (0, min (0xff, (int) (RED_FROM_ULONG (*color)) - min_delta)), |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2766 max (0, min (0xff, (int) (GREEN_FROM_ULONG (*color)) - min_delta)), |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2767 max (0, min (0xff, (int) (BLUE_FROM_ULONG (*color)) - min_delta))); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2768 else |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2769 new = RGB_TO_ULONG (max (0, min (0xff, (int) (min_delta + RED_FROM_ULONG (*color)))), |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2770 max (0, min (0xff, (int) (min_delta + GREEN_FROM_ULONG (*color)))), |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2771 max (0, min (0xff, (int) (min_delta + BLUE_FROM_ULONG (*color))))); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2772 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2773 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2774 if (new == *color) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2775 new = RGB_TO_ULONG (max (0, min (0xff, (int) (delta + RED_FROM_ULONG (*color)))), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2776 max (0, min (0xff, (int) (delta + GREEN_FROM_ULONG (*color)))), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2777 max (0, min (0xff, (int) (delta + BLUE_FROM_ULONG (*color))))); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2778 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2779 /* MAC_TODO: Map to palette and retry with delta if same? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2780 /* MAC_TODO: Free colors (if using palette)? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2781 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2782 if (new == *color) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2783 return 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2784 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2785 *color = new; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2786 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2787 return 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2788 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2789 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2790 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2791 /* Set up the foreground color for drawing relief lines of glyph |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2792 string S. RELIEF is a pointer to a struct relief containing the GC |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2793 with which lines will be drawn. Use a color that is FACTOR or |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2794 DELTA lighter or darker than the relief's background which is found |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2795 in S->f->output_data.x->relief_background. If such a color cannot |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2796 be allocated, use DEFAULT_PIXEL, instead. */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2797 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2798 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2799 x_setup_relief_color (f, relief, factor, delta, default_pixel) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2800 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2801 struct relief *relief; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2802 double factor; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2803 int delta; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2804 unsigned long default_pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2805 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2806 XGCValues xgcv; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2807 struct mac_output *di = f->output_data.mac; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2808 unsigned long mask = GCForeground; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2809 unsigned long pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2810 unsigned long background = di->relief_background; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2811 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2812 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2813 /* MAC_TODO: Free colors (if using palette)? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2814 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2815 /* Allocate new color. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2816 xgcv.foreground = default_pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2817 pixel = background; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2818 if (dpyinfo->n_planes != 1 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2819 && mac_alloc_lighter_color (f, &pixel, factor, delta)) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2820 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2821 relief->allocated_p = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2822 xgcv.foreground = relief->pixel = pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2823 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2824 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2825 if (relief->gc == 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2826 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2827 #if 0 /* MAC_TODO: stipple */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2828 xgcv.stipple = dpyinfo->gray; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2829 mask |= GCStipple; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2830 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2831 relief->gc = XCreateGC (NULL, FRAME_MAC_WINDOW (f), mask, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2832 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2833 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2834 XChangeGC (NULL, relief->gc, mask, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2835 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2836 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2837 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2838 /* Set up colors for the relief lines around glyph string S. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2839 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2840 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2841 x_setup_relief_colors (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2842 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2843 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2844 struct mac_output *di = s->f->output_data.mac; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2845 unsigned long color; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2846 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2847 if (s->face->use_box_color_for_shadows_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2848 color = s->face->box_color; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2849 else if (s->first_glyph->type == IMAGE_GLYPH |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2850 && s->img->pixmap |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2851 && !IMAGE_BACKGROUND_TRANSPARENT (s->img, s->f, 0)) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2852 color = IMAGE_BACKGROUND (s->img, s->f, 0); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2853 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2854 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2855 XGCValues xgcv; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2856 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2857 /* Get the background color of the face. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2858 XGetGCValues (s->display, s->gc, GCBackground, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2859 color = xgcv.background; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2860 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2861 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2862 if (di->white_relief.gc == 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2863 || color != di->relief_background) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2864 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2865 di->relief_background = color; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2866 x_setup_relief_color (s->f, &di->white_relief, 1.2, 0x8000, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2867 WHITE_PIX_DEFAULT (s->f)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2868 x_setup_relief_color (s->f, &di->black_relief, 0.6, 0x4000, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2869 BLACK_PIX_DEFAULT (s->f)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2870 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2871 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2872 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2873 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2874 /* Draw a relief on frame F inside the rectangle given by LEFT_X, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2875 TOP_Y, RIGHT_X, and BOTTOM_Y. WIDTH is the thickness of the relief |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2876 to draw, it must be >= 0. RAISED_P non-zero means draw a raised |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2877 relief. LEFT_P non-zero means draw a relief on the left side of |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2878 the rectangle. RIGHT_P non-zero means draw a relief on the right |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2879 side of the rectangle. CLIP_RECT is the clipping rectangle to use |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2880 when drawing. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2881 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2882 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2883 x_draw_relief_rect (f, left_x, top_y, right_x, bottom_y, width, |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
2884 raised_p, top_p, bot_p, left_p, right_p, clip_rect) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2885 struct frame *f; |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
2886 int left_x, top_y, right_x, bottom_y, width; |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
2887 int top_p, bot_p, left_p, right_p, raised_p; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2888 Rect *clip_rect; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2889 { |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2890 Display *dpy = FRAME_MAC_DISPLAY (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2891 int i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2892 GC gc; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2893 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2894 if (raised_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2895 gc = f->output_data.mac->white_relief.gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2896 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2897 gc = f->output_data.mac->black_relief.gc; |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2898 mac_set_clip_rectangles (dpy, gc, clip_rect, 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2899 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2900 /* Top. */ |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
2901 if (top_p) |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
2902 for (i = 0; i < width; ++i) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2903 mac_draw_line (f, gc, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2904 left_x + i * left_p, top_y + i, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2905 right_x - i * right_p, top_y + i); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2906 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2907 /* Left. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2908 if (left_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2909 for (i = 0; i < width; ++i) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2910 mac_draw_line (f, gc, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2911 left_x + i, top_y + i, left_x + i, bottom_y - i); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2912 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2913 mac_reset_clip_rectangles (dpy, gc); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2914 if (raised_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2915 gc = f->output_data.mac->black_relief.gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2916 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2917 gc = f->output_data.mac->white_relief.gc; |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2918 mac_set_clip_rectangles (dpy, gc, clip_rect, 1); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2919 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2920 /* Bottom. */ |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
2921 if (bot_p) |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
2922 for (i = 0; i < width; ++i) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2923 mac_draw_line (f, gc, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2924 left_x + i * left_p, bottom_y - i, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2925 right_x - i * right_p, bottom_y - i); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2926 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2927 /* Right. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2928 if (right_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2929 for (i = 0; i < width; ++i) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2930 mac_draw_line (f, gc, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2931 right_x - i, top_y + i + 1, right_x - i, bottom_y - i - 1); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2932 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2933 mac_reset_clip_rectangles (dpy, gc); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2934 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2935 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2936 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2937 /* Draw a box on frame F inside the rectangle given by LEFT_X, TOP_Y, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2938 RIGHT_X, and BOTTOM_Y. WIDTH is the thickness of the lines to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2939 draw, it must be >= 0. LEFT_P non-zero means draw a line on the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2940 left side of the rectangle. RIGHT_P non-zero means draw a line |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2941 on the right side of the rectangle. CLIP_RECT is the clipping |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2942 rectangle to use when drawing. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2943 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2944 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2945 x_draw_box_rect (s, left_x, top_y, right_x, bottom_y, width, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2946 left_p, right_p, clip_rect) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2947 struct glyph_string *s; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
2948 int left_x, top_y, right_x, bottom_y, width, left_p, right_p; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2949 Rect *clip_rect; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2950 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2951 XGCValues xgcv; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2952 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
2953 XGetGCValues (s->display, s->gc, GCForeground, &xgcv); |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
2954 XSetForeground (s->display, s->gc, s->face->box_color); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2955 mac_set_clip_rectangles (s->display, s->gc, clip_rect, 1); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2956 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2957 /* Top. */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2958 mac_fill_rectangle (s->f, s->gc, left_x, top_y, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2959 right_x - left_x + 1, width); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2960 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2961 /* Left. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2962 if (left_p) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2963 mac_fill_rectangle (s->f, s->gc, left_x, top_y, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2964 width, bottom_y - top_y + 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2965 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2966 /* Bottom. */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2967 mac_fill_rectangle (s->f, s->gc, left_x, bottom_y - width + 1, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2968 right_x - left_x + 1, width); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2969 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2970 /* Right. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2971 if (right_p) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2972 mac_fill_rectangle (s->f, s->gc, right_x - width + 1, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
2973 top_y, width, bottom_y - top_y + 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2974 |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
2975 XSetForeground (s->display, s->gc, xgcv.foreground); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
2976 mac_reset_clip_rectangles (s->display, s->gc); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2977 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2978 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2979 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2980 /* Draw a box around glyph string S. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2981 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2982 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2983 x_draw_glyph_string_box (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2984 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2985 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2986 int width, left_x, right_x, top_y, bottom_y, last_x, raised_p; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2987 int left_p, right_p; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2988 struct glyph *last_glyph; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2989 Rect clip_rect; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2990 |
59655
369714ad80ed
(x_draw_glyph_string_box): Fix last_x for full width rows.
Kim F. Storm <storm@cua.dk>
parents:
59586
diff
changeset
|
2991 last_x = ((s->row->full_width_p && !s->w->pseudo_window_p) |
369714ad80ed
(x_draw_glyph_string_box): Fix last_x for full width rows.
Kim F. Storm <storm@cua.dk>
parents:
59586
diff
changeset
|
2992 ? WINDOW_RIGHT_EDGE_X (s->w) |
369714ad80ed
(x_draw_glyph_string_box): Fix last_x for full width rows.
Kim F. Storm <storm@cua.dk>
parents:
59586
diff
changeset
|
2993 : window_box_right (s->w, s->area)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
2994 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2995 /* The glyph that may have a right box line. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2996 last_glyph = (s->cmp || s->img |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2997 ? s->first_glyph |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2998 : s->first_glyph + s->nchars - 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
2999 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3000 width = abs (s->face->box_line_width); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3001 raised_p = s->face->box == FACE_RAISED_BOX; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3002 left_x = s->x; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3003 right_x = (s->row->full_width_p && s->extends_to_end_of_line_p |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3004 ? last_x - 1 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3005 : min (last_x, s->x + s->background_width) - 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3006 top_y = s->y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3007 bottom_y = top_y + s->height - 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3008 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3009 left_p = (s->first_glyph->left_box_line_p |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3010 || (s->hl == DRAW_MOUSE_FACE |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3011 && (s->prev == NULL |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3012 || s->prev->hl != s->hl))); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3013 right_p = (last_glyph->right_box_line_p |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3014 || (s->hl == DRAW_MOUSE_FACE |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3015 && (s->next == NULL |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3016 || s->next->hl != s->hl))); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3017 |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3018 get_glyph_string_clip_rect (s, &clip_rect); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3019 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3020 if (s->face->box == FACE_SIMPLE_BOX) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3021 x_draw_box_rect (s, left_x, top_y, right_x, bottom_y, width, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3022 left_p, right_p, &clip_rect); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3023 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3024 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3025 x_setup_relief_colors (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3026 x_draw_relief_rect (s->f, left_x, top_y, right_x, bottom_y, |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3027 width, raised_p, 1, 1, left_p, right_p, &clip_rect); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3028 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3029 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3030 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3031 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3032 /* Draw foreground of image glyph string S. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3033 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3034 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3035 x_draw_image_foreground (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3036 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3037 { |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3038 int x = s->x; |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3039 int y = s->ybase - image_ascent (s->img, s->face, &s->slice); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3040 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3041 /* If first glyph of S has a left box line, start drawing it to the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3042 right of that line. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3043 if (s->face->box != FACE_NO_BOX |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3044 && s->first_glyph->left_box_line_p |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3045 && s->slice.x == 0) |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3046 x += abs (s->face->box_line_width); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3047 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3048 /* If there is a margin around the image, adjust x- and y-position |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3049 by that margin. */ |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3050 if (s->slice.x == 0) |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3051 x += s->img->hmargin; |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3052 if (s->slice.y == 0) |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3053 y += s->img->vmargin; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3054 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3055 if (s->img->pixmap) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3056 { |
58634
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
3057 x_set_glyph_string_clipping (s); |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
3058 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3059 if (s->img->mask) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3060 mac_copy_area_with_mask (s->img->pixmap, s->img->mask, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3061 s->f, s->gc, s->slice.x, s->slice.y, |
58634
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
3062 s->slice.width, s->slice.height, x, y); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3063 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3064 { |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3065 mac_copy_area (s->img->pixmap, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3066 s->f, s->gc, s->slice.x, s->slice.y, |
58634
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
3067 s->slice.width, s->slice.height, x, y); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3068 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3069 /* When the image has a mask, we can expect that at |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3070 least part of a mouse highlight or a block cursor will |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3071 be visible. If the image doesn't have a mask, make |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3072 a block cursor visible by drawing a rectangle around |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3073 the image. I believe it's looking better if we do |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3074 nothing here for mouse-face. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3075 if (s->hl == DRAW_CURSOR) |
45197
0b6da8b7d7ac
(x_draw_image_foreground, x_draw_image_foreground_1):
Kim F. Storm <storm@cua.dk>
parents:
45111
diff
changeset
|
3076 { |
0b6da8b7d7ac
(x_draw_image_foreground, x_draw_image_foreground_1):
Kim F. Storm <storm@cua.dk>
parents:
45111
diff
changeset
|
3077 int r = s->img->relief; |
0b6da8b7d7ac
(x_draw_image_foreground, x_draw_image_foreground_1):
Kim F. Storm <storm@cua.dk>
parents:
45111
diff
changeset
|
3078 if (r < 0) r = -r; |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3079 mac_draw_rectangle (s->f, s->gc, x - r, y - r, |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3080 s->slice.width + r*2 - 1, |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3081 s->slice.height + r*2 - 1); |
45197
0b6da8b7d7ac
(x_draw_image_foreground, x_draw_image_foreground_1):
Kim F. Storm <storm@cua.dk>
parents:
45111
diff
changeset
|
3082 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3083 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3084 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3085 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3086 /* Draw a rectangle if image could not be loaded. */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3087 mac_draw_rectangle (s->f, s->gc, x, y, |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3088 s->slice.width - 1, s->slice.height - 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3089 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3090 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3091 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3092 /* Draw a relief around the image glyph string S. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3093 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3094 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3095 x_draw_image_relief (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3096 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3097 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3098 int x0, y0, x1, y1, thick, raised_p; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3099 Rect r; |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3100 int x = s->x; |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3101 int y = s->ybase - image_ascent (s->img, s->face, &s->slice); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3102 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3103 /* If first glyph of S has a left box line, start drawing it to the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3104 right of that line. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3105 if (s->face->box != FACE_NO_BOX |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3106 && s->first_glyph->left_box_line_p |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3107 && s->slice.x == 0) |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3108 x += abs (s->face->box_line_width); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3109 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3110 /* If there is a margin around the image, adjust x- and y-position |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3111 by that margin. */ |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3112 if (s->slice.x == 0) |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3113 x += s->img->hmargin; |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3114 if (s->slice.y == 0) |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3115 y += s->img->vmargin; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3116 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3117 if (s->hl == DRAW_IMAGE_SUNKEN |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3118 || s->hl == DRAW_IMAGE_RAISED) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3119 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3120 thick = tool_bar_button_relief >= 0 ? tool_bar_button_relief : DEFAULT_TOOL_BAR_BUTTON_RELIEF; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3121 raised_p = s->hl == DRAW_IMAGE_RAISED; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3122 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3123 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3124 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3125 thick = abs (s->img->relief); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3126 raised_p = s->img->relief > 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3127 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3128 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3129 x0 = x - thick; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3130 y0 = y - thick; |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3131 x1 = x + s->slice.width + thick - 1; |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3132 y1 = y + s->slice.height + thick - 1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3133 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3134 x_setup_relief_colors (s); |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3135 get_glyph_string_clip_rect (s, &r); |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3136 x_draw_relief_rect (s->f, x0, y0, x1, y1, thick, raised_p, |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3137 s->slice.y == 0, |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3138 s->slice.y + s->slice.height == s->img->height, |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3139 s->slice.x == 0, |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3140 s->slice.x + s->slice.width == s->img->width, |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3141 &r); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3142 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3143 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3144 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3145 /* Draw part of the background of glyph string S. X, Y, W, and H |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3146 give the rectangle to draw. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3147 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3148 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3149 x_draw_glyph_string_bg_rect (s, x, y, w, h) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3150 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3151 int x, y, w, h; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3152 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3153 #if 0 /* MAC_TODO: stipple */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3154 if (s->stippled_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3155 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3156 /* Fill background with a stipple pattern. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3157 XSetFillStyle (s->display, s->gc, FillOpaqueStippled); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3158 XFillRectangle (s->display, s->window, s->gc, x, y, w, h); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3159 XSetFillStyle (s->display, s->gc, FillSolid); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3160 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3161 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3162 #endif /* MAC_TODO */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3163 x_clear_glyph_string_rect (s, x, y, w, h); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3164 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3165 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3166 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3167 /* Draw image glyph string S. |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3168 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3169 s->y |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3170 s->x +------------------------- |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3171 | s->face->box |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3172 | |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3173 | +------------------------- |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3174 | | s->img->margin |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3175 | | |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3176 | | +------------------- |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3177 | | | the image |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3178 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3179 */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3180 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3181 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3182 x_draw_image_glyph_string (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3183 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3184 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3185 int x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3186 int box_line_hwidth = abs (s->face->box_line_width); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3187 int box_line_vwidth = max (s->face->box_line_width, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3188 int height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3189 Pixmap pixmap = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3190 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3191 height = s->height - 2 * box_line_vwidth; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3192 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3193 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3194 /* Fill background with face under the image. Do it only if row is |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3195 taller than image or if image has a clip mask to reduce |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3196 flickering. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3197 s->stippled_p = s->face->stipple != 0; |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3198 if (height > s->slice.height |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3199 || s->img->hmargin |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3200 || s->img->vmargin |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3201 || s->img->mask |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3202 || s->img->pixmap == 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3203 || s->width != s->background_width) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3204 { |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3205 x = s->x; |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3206 if (s->first_glyph->left_box_line_p |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3207 && s->slice.x == 0) |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3208 x += box_line_hwidth; |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3209 |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3210 y = s->y; |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3211 if (s->slice.y == 0) |
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
3212 y += box_line_vwidth; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3213 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3214 x_draw_glyph_string_bg_rect (s, x, y, s->background_width, height); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3215 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3216 s->background_filled_p = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3217 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3218 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3219 /* Draw the foreground. */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3220 x_draw_image_foreground (s); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3221 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3222 /* If we must draw a relief around the image, do it. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3223 if (s->img->relief |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3224 || s->hl == DRAW_IMAGE_RAISED |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3225 || s->hl == DRAW_IMAGE_SUNKEN) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3226 x_draw_image_relief (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3227 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3228 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3229 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3230 /* Draw stretch glyph string S. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3231 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3232 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3233 x_draw_stretch_glyph_string (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3234 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3235 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3236 xassert (s->first_glyph->type == STRETCH_GLYPH); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3237 s->stippled_p = s->face->stipple != 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3238 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3239 if (s->hl == DRAW_CURSOR |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3240 && !x_stretch_cursor_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3241 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3242 /* If `x-stretch-block-cursor' is nil, don't draw a block cursor |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3243 as wide as the stretch glyph. */ |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
3244 int width = min (FRAME_COLUMN_WIDTH (s->f), s->background_width); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3245 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3246 /* Draw cursor. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3247 x_draw_glyph_string_bg_rect (s, s->x, s->y, width, s->height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3248 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3249 /* Clear rest using the GC of the original non-cursor face. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3250 if (width < s->background_width) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3251 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3252 int x = s->x + width, y = s->y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3253 int w = s->background_width - width, h = s->height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3254 Rect r; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3255 GC gc; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3256 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3257 if (s->row->mouse_face_p |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3258 && cursor_in_mouse_face_p (s->w)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3259 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3260 x_set_mouse_face_gc (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3261 gc = s->gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3262 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3263 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3264 gc = s->face->gc; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3265 |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3266 get_glyph_string_clip_rect (s, &r); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
3267 mac_set_clip_rectangles (s->display, gc, &r, 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3268 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3269 #if 0 /* MAC_TODO: stipple */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3270 if (s->face->stipple) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3271 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3272 /* Fill background with a stipple pattern. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3273 XSetFillStyle (s->display, gc, FillOpaqueStippled); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3274 XFillRectangle (s->display, s->window, gc, x, y, w, h); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3275 XSetFillStyle (s->display, gc, FillSolid); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3276 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3277 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3278 #endif /* MAC_TODO */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3279 mac_erase_rectangle (s->f, gc, x, y, w, h); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3280 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3281 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3282 else if (!s->background_filled_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3283 x_draw_glyph_string_bg_rect (s, s->x, s->y, s->background_width, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3284 s->height); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3285 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3286 s->background_filled_p = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3287 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3288 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3289 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3290 /* Draw glyph string S. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3291 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3292 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3293 x_draw_glyph_string (s) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3294 struct glyph_string *s; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3295 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3296 int relief_drawn_p = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3297 |
59718
d4cb255b034d
* dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents:
59655
diff
changeset
|
3298 /* If S draws into the background of its successor that does not |
d4cb255b034d
* dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents:
59655
diff
changeset
|
3299 draw a cursor, draw the background of the successor first so that |
d4cb255b034d
* dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents:
59655
diff
changeset
|
3300 S can draw into it. This makes S->next use XDrawString instead |
d4cb255b034d
* dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents:
59655
diff
changeset
|
3301 of XDrawImageString. */ |
65892
41fc0bf568be
Rename member for_overlaps_p in struct glyph_string to for_overlaps.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65822
diff
changeset
|
3302 if (s->next && s->right_overhang && !s->for_overlaps |
59718
d4cb255b034d
* dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents:
59655
diff
changeset
|
3303 && s->next->hl != DRAW_CURSOR) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3304 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3305 xassert (s->next->img == NULL); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3306 x_set_glyph_string_gc (s->next); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3307 x_set_glyph_string_clipping (s->next); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3308 x_draw_glyph_string_background (s->next, 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3309 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3310 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3311 /* Set up S->gc, set clipping and draw S. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3312 x_set_glyph_string_gc (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3313 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3314 /* Draw relief (if any) in advance for char/composition so that the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3315 glyph string can be drawn over it. */ |
65892
41fc0bf568be
Rename member for_overlaps_p in struct glyph_string to for_overlaps.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65822
diff
changeset
|
3316 if (!s->for_overlaps |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3317 && s->face->box != FACE_NO_BOX |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3318 && (s->first_glyph->type == CHAR_GLYPH |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3319 || s->first_glyph->type == COMPOSITE_GLYPH)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3320 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3321 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3322 x_set_glyph_string_clipping (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3323 x_draw_glyph_string_background (s, 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3324 x_draw_glyph_string_box (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3325 x_set_glyph_string_clipping (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3326 relief_drawn_p = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3327 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3328 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3329 x_set_glyph_string_clipping (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3330 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3331 switch (s->first_glyph->type) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3332 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3333 case IMAGE_GLYPH: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3334 x_draw_image_glyph_string (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3335 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3336 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3337 case STRETCH_GLYPH: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3338 x_draw_stretch_glyph_string (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3339 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3340 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3341 case CHAR_GLYPH: |
65892
41fc0bf568be
Rename member for_overlaps_p in struct glyph_string to for_overlaps.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65822
diff
changeset
|
3342 if (s->for_overlaps) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3343 s->background_filled_p = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3344 else |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3345 x_draw_glyph_string_background (s, 0); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3346 x_draw_glyph_string_foreground (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3347 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3348 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3349 case COMPOSITE_GLYPH: |
65892
41fc0bf568be
Rename member for_overlaps_p in struct glyph_string to for_overlaps.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65822
diff
changeset
|
3350 if (s->for_overlaps || s->gidx > 0) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3351 s->background_filled_p = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3352 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3353 x_draw_glyph_string_background (s, 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3354 x_draw_composite_glyph_string_foreground (s); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3355 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3356 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3357 default: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3358 abort (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3359 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3360 |
65892
41fc0bf568be
Rename member for_overlaps_p in struct glyph_string to for_overlaps.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65822
diff
changeset
|
3361 if (!s->for_overlaps) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3362 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3363 /* Draw underline. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3364 if (s->face->underline_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3365 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3366 unsigned long h = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3367 unsigned long dy = s->height - h; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3368 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3369 if (s->face->underline_defaulted_p) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3370 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3371 s->width, h); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3372 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3373 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3374 XGCValues xgcv; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3375 XGetGCValues (s->display, s->gc, GCForeground, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3376 XSetForeground (s->display, s->gc, s->face->underline_color); |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3377 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3378 s->width, h); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3379 XSetForeground (s->display, s->gc, xgcv.foreground); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3380 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3381 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3382 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3383 /* Draw overline. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3384 if (s->face->overline_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3385 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3386 unsigned long dy = 0, h = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3387 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3388 if (s->face->overline_color_defaulted_p) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3389 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3390 s->width, h); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3391 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3392 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3393 XGCValues xgcv; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3394 XGetGCValues (s->display, s->gc, GCForeground, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3395 XSetForeground (s->display, s->gc, s->face->overline_color); |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3396 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3397 s->width, h); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3398 XSetForeground (s->display, s->gc, xgcv.foreground); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3399 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3400 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3401 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3402 /* Draw strike-through. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3403 if (s->face->strike_through_p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3404 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3405 unsigned long h = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3406 unsigned long dy = (s->height - h) / 2; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3407 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3408 if (s->face->strike_through_color_defaulted_p) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3409 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3410 s->width, h); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3411 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3412 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3413 XGCValues xgcv; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3414 XGetGCValues (s->display, s->gc, GCForeground, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3415 XSetForeground (s->display, s->gc, s->face->strike_through_color); |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3416 mac_fill_rectangle (s->f, s->gc, s->x, s->y + dy, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3417 s->width, h); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3418 XSetForeground (s->display, s->gc, xgcv.foreground); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3419 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3420 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3421 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3422 /* Draw relief if not yet drawn. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3423 if (!relief_drawn_p && s->face->box != FACE_NO_BOX) |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3424 x_draw_glyph_string_box (s); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3425 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3426 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3427 /* Reset clipping. */ |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
3428 mac_reset_clip_rectangles (s->display, s->gc); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3429 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3430 |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3431 /* Shift display to make room for inserted glyphs. */ |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3432 |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3433 void |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3434 mac_shift_glyphs_for_insert (f, x, y, width, height, shift_by) |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3435 struct frame *f; |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3436 int x, y, width, height, shift_by; |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3437 { |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3438 mac_scroll_area (f, f->output_data.mac->normal_gc, |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3439 x, y, width, height, |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
3440 x + shift_by, y); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3441 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3442 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3443 /* Delete N glyphs at the nominal cursor position. Not implemented |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3444 for X frames. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3445 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3446 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3447 x_delete_glyphs (n) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3448 register int n; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3449 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3450 abort (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3451 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3452 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3453 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3454 /* Clear entire frame. If updating_frame is non-null, clear that |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3455 frame. Otherwise clear the selected frame. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3456 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3457 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3458 x_clear_frame () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3459 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3460 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3461 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3462 if (updating_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3463 f = updating_frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3464 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3465 f = SELECTED_FRAME (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3466 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3467 /* Clearing the frame will erase any cursor, so mark them all as no |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3468 longer visible. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3469 mark_window_cursors_off (XWINDOW (FRAME_ROOT_WINDOW (f))); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3470 output_cursor.hpos = output_cursor.vpos = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3471 output_cursor.x = -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3472 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3473 /* We don't set the output cursor here because there will always |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3474 follow an explicit cursor_to. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3475 BLOCK_INPUT; |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3476 mac_clear_window (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3477 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3478 /* We have to clear the scroll bars, too. If we have changed |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3479 colors or something like that, then they should be notified. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3480 x_scroll_bar_clear (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3481 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3482 XFlush (FRAME_MAC_DISPLAY (f)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3483 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3484 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3485 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3486 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3487 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3488 /* Invert the middle quarter of the frame for .15 sec. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3489 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3490 /* We use the select system call to do the waiting, so we have to make |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3491 sure it's available. If it isn't, we just won't do visual bells. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3492 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3493 #if defined (HAVE_TIMEVAL) && defined (HAVE_SELECT) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3494 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3495 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3496 /* Subtract the `struct timeval' values X and Y, storing the result in |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3497 *RESULT. Return 1 if the difference is negative, otherwise 0. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3498 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3499 static int |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3500 timeval_subtract (result, x, y) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3501 struct timeval *result, x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3502 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3503 /* Perform the carry for the later subtraction by updating y. This |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3504 is safer because on some systems the tv_sec member is unsigned. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3505 if (x.tv_usec < y.tv_usec) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3506 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3507 int nsec = (y.tv_usec - x.tv_usec) / 1000000 + 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3508 y.tv_usec -= 1000000 * nsec; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3509 y.tv_sec += nsec; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3510 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3511 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3512 if (x.tv_usec - y.tv_usec > 1000000) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3513 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3514 int nsec = (y.tv_usec - x.tv_usec) / 1000000; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3515 y.tv_usec += 1000000 * nsec; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3516 y.tv_sec -= nsec; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3517 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3518 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3519 /* Compute the time remaining to wait. tv_usec is certainly |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3520 positive. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3521 result->tv_sec = x.tv_sec - y.tv_sec; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3522 result->tv_usec = x.tv_usec - y.tv_usec; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3523 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3524 /* Return indication of whether the result should be considered |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3525 negative. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3526 return x.tv_sec < y.tv_sec; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3527 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3528 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3529 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3530 XTflash (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3531 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3532 { |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3533 /* Get the height not including a menu bar widget. */ |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3534 int height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, FRAME_LINES (f)); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3535 /* Height of each line to flash. */ |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3536 int flash_height = FRAME_LINE_HEIGHT (f); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3537 /* These will be the left and right margins of the rectangles. */ |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3538 int flash_left = FRAME_INTERNAL_BORDER_WIDTH (f); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3539 int flash_right = FRAME_PIXEL_WIDTH (f) - FRAME_INTERNAL_BORDER_WIDTH (f); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3540 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3541 int width; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3542 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3543 /* Don't flash the area between a scroll bar and the frame |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3544 edge it is next to. */ |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3545 switch (FRAME_VERTICAL_SCROLL_BAR_TYPE (f)) |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3546 { |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3547 case vertical_scroll_bar_left: |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3548 flash_left += VERTICAL_SCROLL_BAR_WIDTH_TRIM; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3549 break; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3550 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3551 case vertical_scroll_bar_right: |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3552 flash_right -= VERTICAL_SCROLL_BAR_WIDTH_TRIM; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3553 break; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3554 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3555 default: |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3556 break; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3557 } |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3558 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3559 width = flash_right - flash_left; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3560 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3561 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3562 |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3563 /* If window is tall, flash top and bottom line. */ |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3564 if (height > 3 * FRAME_LINE_HEIGHT (f)) |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3565 { |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3566 mac_invert_rectangle (f, flash_left, |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3567 (FRAME_INTERNAL_BORDER_WIDTH (f) |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3568 + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)), |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3569 width, flash_height); |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3570 mac_invert_rectangle (f, flash_left, |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3571 (height - flash_height |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3572 - FRAME_INTERNAL_BORDER_WIDTH (f)), |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3573 width, flash_height); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3574 } |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3575 else |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3576 /* If it is short, flash it all. */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3577 mac_invert_rectangle (f, flash_left, FRAME_INTERNAL_BORDER_WIDTH (f), |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3578 width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3579 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3580 x_flush (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3581 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3582 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3583 struct timeval wakeup; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3584 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3585 EMACS_GET_TIME (wakeup); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3586 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3587 /* Compute time to wait until, propagating carry from usecs. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3588 wakeup.tv_usec += 150000; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3589 wakeup.tv_sec += (wakeup.tv_usec / 1000000); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3590 wakeup.tv_usec %= 1000000; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3591 |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3592 /* Keep waiting until past the time wakeup or any input gets |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3593 available. */ |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3594 while (! detect_input_pending ()) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3595 { |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3596 struct timeval current; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3597 struct timeval timeout; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3598 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3599 EMACS_GET_TIME (current); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3600 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3601 /* Break if result would be negative. */ |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3602 if (timeval_subtract (¤t, wakeup, current)) |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3603 break; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3604 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3605 /* How long `select' should wait. */ |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3606 timeout.tv_sec = 0; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3607 timeout.tv_usec = 10000; |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3608 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3609 /* Try to wait that long--but we might wake up sooner. */ |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3610 select (0, NULL, NULL, NULL, &timeout); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3611 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3612 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3613 |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3614 /* If window is tall, flash top and bottom line. */ |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3615 if (height > 3 * FRAME_LINE_HEIGHT (f)) |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3616 { |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3617 mac_invert_rectangle (f, flash_left, |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3618 (FRAME_INTERNAL_BORDER_WIDTH (f) |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3619 + FRAME_TOOL_BAR_LINES (f) * FRAME_LINE_HEIGHT (f)), |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3620 width, flash_height); |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3621 mac_invert_rectangle (f, flash_left, |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3622 (height - flash_height |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3623 - FRAME_INTERNAL_BORDER_WIDTH (f)), |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3624 width, flash_height); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3625 } |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3626 else |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3627 /* If it is short, flash it all. */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3628 mac_invert_rectangle (f, flash_left, FRAME_INTERNAL_BORDER_WIDTH (f), |
65822
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3629 width, height - 2 * FRAME_INTERNAL_BORDER_WIDTH (f)); |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3630 |
00a8cdae2968
(mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65772
diff
changeset
|
3631 x_flush (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3632 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3633 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3634 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3635 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3636 #endif /* defined (HAVE_TIMEVAL) && defined (HAVE_SELECT) */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3637 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3638 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3639 /* Make audible bell. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3640 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3641 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3642 XTring_bell () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3643 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3644 struct frame *f = SELECTED_FRAME (); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3645 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3646 #if defined (HAVE_TIMEVAL) && defined (HAVE_SELECT) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3647 if (visible_bell) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3648 XTflash (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3649 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3650 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3651 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3652 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3653 SysBeep (1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3654 XFlush (FRAME_MAC_DISPLAY (f)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3655 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3656 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3657 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3658 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3659 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3660 /* Specify how many text lines, from the top of the window, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3661 should be affected by insert-lines and delete-lines operations. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3662 This, and those operations, are used only within an update |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3663 that is bounded by calls to x_update_begin and x_update_end. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3664 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3665 static void |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3666 XTset_terminal_window (n) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3667 register int n; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3668 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3669 /* This function intentionally left blank. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3670 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3671 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3672 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3673 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3674 /*********************************************************************** |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3675 Line Dance |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3676 ***********************************************************************/ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3677 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3678 /* Perform an insert-lines or delete-lines operation, inserting N |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3679 lines or deleting -N lines at vertical position VPOS. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3680 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3681 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3682 x_ins_del_lines (vpos, n) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3683 int vpos, n; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3684 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3685 abort (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3686 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3687 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3688 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3689 /* Scroll part of the display as described by RUN. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3690 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3691 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3692 x_scroll_run (w, run) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3693 struct window *w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3694 struct run *run; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3695 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3696 struct frame *f = XFRAME (w->frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3697 int x, y, width, height, from_y, to_y, bottom_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3698 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3699 /* Get frame-relative bounding box of the text display area of W, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3700 without mode lines. Include in this box the left and right |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
3701 fringe of W. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3702 window_box (w, -1, &x, &y, &width, &height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3703 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3704 from_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->current_y); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3705 to_y = WINDOW_TO_FRAME_PIXEL_Y (w, run->desired_y); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3706 bottom_y = y + height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3707 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3708 if (to_y < from_y) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3709 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3710 /* Scrolling up. Make sure we don't copy part of the mode |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3711 line at the bottom. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3712 if (from_y + run->height > bottom_y) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3713 height = bottom_y - from_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3714 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3715 height = run->height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3716 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3717 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3718 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3719 /* Scolling down. Make sure we don't copy over the mode line. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3720 at the bottom. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3721 if (to_y + run->height > bottom_y) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3722 height = bottom_y - to_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3723 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3724 height = run->height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3725 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3726 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3727 BLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3728 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3729 /* Cursor off. Will be switched on again in x_update_window_end. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3730 updated_window = w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3731 x_clear_cursor (w); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3732 |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3733 mac_scroll_area (f, f->output_data.mac->normal_gc, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3734 x, from_y, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3735 width, height, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
3736 x, to_y); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3737 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3738 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3739 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3740 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3741 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3742 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3743 /*********************************************************************** |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3744 Exposure Events |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3745 ***********************************************************************/ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
3746 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3747 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3748 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3749 frame_highlight (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3750 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3751 { |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3752 OSErr err; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3753 ControlRef root_control; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3754 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3755 BLOCK_INPUT; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3756 err = GetRootControl (FRAME_MAC_WINDOW (f), &root_control); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3757 if (err == noErr) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3758 ActivateControl (root_control); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3759 UNBLOCK_INPUT; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3760 x_update_cursor (f, 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3761 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3762 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3763 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3764 frame_unhighlight (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3765 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3766 { |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3767 OSErr err; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3768 ControlRef root_control; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3769 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3770 BLOCK_INPUT; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3771 err = GetRootControl (FRAME_MAC_WINDOW (f), &root_control); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3772 if (err == noErr) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3773 DeactivateControl (root_control); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3774 UNBLOCK_INPUT; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3775 x_update_cursor (f, 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3776 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3777 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3778 /* The focus has changed. Update the frames as necessary to reflect |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3779 the new situation. Note that we can't change the selected frame |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3780 here, because the Lisp code we are interrupting might become confused. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3781 Each event gets marked with the frame in which it occurred, so the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3782 Lisp code can tell when the switch took place by examining the events. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3783 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3784 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3785 x_new_focus_frame (dpyinfo, frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3786 struct x_display_info *dpyinfo; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3787 struct frame *frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3788 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3789 struct frame *old_focus = dpyinfo->x_focus_frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3790 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3791 if (frame != dpyinfo->x_focus_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3792 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3793 /* Set this before calling other routines, so that they see |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3794 the correct value of x_focus_frame. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3795 dpyinfo->x_focus_frame = frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3796 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3797 if (old_focus && old_focus->auto_lower) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3798 x_lower_frame (old_focus); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3799 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3800 #if 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3801 selected_frame = frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3802 XSETFRAME (XWINDOW (selected_frame->selected_window)->frame, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3803 selected_frame); |
51048
7ac9c3bea5ea
(Fselect_window): Add optional arg `norecord'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
50701
diff
changeset
|
3804 Fselect_window (selected_frame->selected_window, Qnil); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3805 choose_minibuf_frame (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3806 #endif /* ! 0 */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3807 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3808 if (dpyinfo->x_focus_frame && dpyinfo->x_focus_frame->auto_raise) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3809 pending_autoraise_frame = dpyinfo->x_focus_frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3810 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3811 pending_autoraise_frame = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3812 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3813 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3814 x_frame_rehighlight (dpyinfo); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3815 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3816 |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3817 /* Handle FocusIn and FocusOut state changes for FRAME. |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3818 If FRAME has focus and there exists more than one frame, puts |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3819 a FOCUS_IN_EVENT into *BUFP. */ |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3820 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3821 static void |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3822 mac_focus_changed (type, dpyinfo, frame, bufp) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3823 int type; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3824 struct mac_display_info *dpyinfo; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3825 struct frame *frame; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3826 struct input_event *bufp; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3827 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3828 if (type == activeFlag) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3829 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3830 if (dpyinfo->x_focus_event_frame != frame) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3831 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3832 x_new_focus_frame (dpyinfo, frame); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3833 dpyinfo->x_focus_event_frame = frame; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3834 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3835 /* Don't stop displaying the initial startup message |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3836 for a switch-frame event we don't need. */ |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3837 if (GC_NILP (Vterminal_frame) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3838 && GC_CONSP (Vframe_list) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3839 && !GC_NILP (XCDR (Vframe_list))) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3840 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3841 bufp->kind = FOCUS_IN_EVENT; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3842 XSETFRAME (bufp->frame_or_window, frame); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3843 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3844 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3845 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3846 else |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3847 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3848 if (dpyinfo->x_focus_event_frame == frame) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3849 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3850 dpyinfo->x_focus_event_frame = 0; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3851 x_new_focus_frame (dpyinfo, 0); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3852 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3853 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3854 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3855 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3856 /* The focus may have changed. Figure out if it is a real focus change, |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3857 by checking both FocusIn/Out and Enter/LeaveNotify events. |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3858 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3859 Returns FOCUS_IN_EVENT event in *BUFP. */ |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3860 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3861 static void |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3862 x_detect_focus_change (dpyinfo, event, bufp) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3863 struct mac_display_info *dpyinfo; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3864 EventRecord *event; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3865 struct input_event *bufp; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3866 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3867 struct frame *frame; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3868 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3869 frame = mac_window_to_frame ((WindowPtr) event->message); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3870 if (! frame) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3871 return; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3872 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3873 /* On Mac, this is only called from focus events, so no switch needed. */ |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3874 mac_focus_changed ((event->modifiers & activeFlag), |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3875 dpyinfo, frame, bufp); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3876 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3877 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
3878 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3879 /* Handle an event saying the mouse has moved out of an Emacs frame. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3880 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3881 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3882 x_mouse_leave (dpyinfo) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3883 struct x_display_info *dpyinfo; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3884 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3885 x_new_focus_frame (dpyinfo, dpyinfo->x_focus_event_frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3886 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3887 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3888 /* The focus has changed, or we have redirected a frame's focus to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3889 another frame (this happens when a frame uses a surrogate |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3890 mini-buffer frame). Shift the highlight as appropriate. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3891 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3892 The FRAME argument doesn't necessarily have anything to do with which |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3893 frame is being highlighted or un-highlighted; we only use it to find |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3894 the appropriate X display info. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3895 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3896 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3897 XTframe_rehighlight (frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3898 struct frame *frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3899 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3900 x_frame_rehighlight (FRAME_X_DISPLAY_INFO (frame)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3901 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3902 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3903 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3904 x_frame_rehighlight (dpyinfo) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3905 struct x_display_info *dpyinfo; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3906 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3907 struct frame *old_highlight = dpyinfo->x_highlight_frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3908 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3909 if (dpyinfo->x_focus_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3910 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3911 dpyinfo->x_highlight_frame |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3912 = ((GC_FRAMEP (FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3913 ? XFRAME (FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3914 : dpyinfo->x_focus_frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3915 if (! FRAME_LIVE_P (dpyinfo->x_highlight_frame)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3916 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3917 FRAME_FOCUS_FRAME (dpyinfo->x_focus_frame) = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3918 dpyinfo->x_highlight_frame = dpyinfo->x_focus_frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3919 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3920 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3921 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3922 dpyinfo->x_highlight_frame = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3923 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3924 if (dpyinfo->x_highlight_frame != old_highlight) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3925 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3926 if (old_highlight) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3927 frame_unhighlight (old_highlight); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3928 if (dpyinfo->x_highlight_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3929 frame_highlight (dpyinfo->x_highlight_frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3930 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3931 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3932 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3933 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3934 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3935 /* Keyboard processing - modifier keys, vendor-specific keysyms, etc. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3936 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3937 #if 0 /* MAC_TODO */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3938 /* Initialize mode_switch_bit and modifier_meaning. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3939 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3940 x_find_modifier_meanings (dpyinfo) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3941 struct x_display_info *dpyinfo; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3942 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3943 int min_code, max_code; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3944 KeySym *syms; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3945 int syms_per_code; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3946 XModifierKeymap *mods; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3947 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3948 dpyinfo->meta_mod_mask = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3949 dpyinfo->shift_lock_mask = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3950 dpyinfo->alt_mod_mask = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3951 dpyinfo->super_mod_mask = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3952 dpyinfo->hyper_mod_mask = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3953 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3954 #ifdef HAVE_X11R4 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3955 XDisplayKeycodes (dpyinfo->display, &min_code, &max_code); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3956 #else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3957 min_code = dpyinfo->display->min_keycode; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3958 max_code = dpyinfo->display->max_keycode; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3959 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3960 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3961 syms = XGetKeyboardMapping (dpyinfo->display, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3962 min_code, max_code - min_code + 1, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3963 &syms_per_code); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3964 mods = XGetModifierMapping (dpyinfo->display); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3965 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3966 /* Scan the modifier table to see which modifier bits the Meta and |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3967 Alt keysyms are on. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3968 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3969 int row, col; /* The row and column in the modifier table. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3970 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3971 for (row = 3; row < 8; row++) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3972 for (col = 0; col < mods->max_keypermod; col++) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3973 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3974 KeyCode code |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3975 = mods->modifiermap[(row * mods->max_keypermod) + col]; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3976 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3977 /* Zeroes are used for filler. Skip them. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3978 if (code == 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3979 continue; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3980 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3981 /* Are any of this keycode's keysyms a meta key? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3982 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3983 int code_col; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3984 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3985 for (code_col = 0; code_col < syms_per_code; code_col++) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3986 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3987 int sym = syms[((code - min_code) * syms_per_code) + code_col]; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3988 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3989 switch (sym) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3990 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3991 case XK_Meta_L: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3992 case XK_Meta_R: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3993 dpyinfo->meta_mod_mask |= (1 << row); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3994 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3995 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3996 case XK_Alt_L: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3997 case XK_Alt_R: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3998 dpyinfo->alt_mod_mask |= (1 << row); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
3999 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4000 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4001 case XK_Hyper_L: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4002 case XK_Hyper_R: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4003 dpyinfo->hyper_mod_mask |= (1 << row); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4004 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4005 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4006 case XK_Super_L: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4007 case XK_Super_R: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4008 dpyinfo->super_mod_mask |= (1 << row); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4009 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4010 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4011 case XK_Shift_Lock: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4012 /* Ignore this if it's not on the lock modifier. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4013 if ((1 << row) == LockMask) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4014 dpyinfo->shift_lock_mask = LockMask; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4015 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4016 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4017 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4018 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4019 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4020 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4021 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4022 /* If we couldn't find any meta keys, accept any alt keys as meta keys. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4023 if (! dpyinfo->meta_mod_mask) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4024 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4025 dpyinfo->meta_mod_mask = dpyinfo->alt_mod_mask; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4026 dpyinfo->alt_mod_mask = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4027 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4028 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4029 /* If some keys are both alt and meta, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4030 make them just meta, not alt. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4031 if (dpyinfo->alt_mod_mask & dpyinfo->meta_mod_mask) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4032 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4033 dpyinfo->alt_mod_mask &= ~dpyinfo->meta_mod_mask; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4034 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4035 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4036 XFree ((char *) syms); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4037 XFreeModifiermap (mods); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4038 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4039 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4040 #endif /* MAC_TODO */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4041 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4042 /* Convert between the modifier bits X uses and the modifier bits |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4043 Emacs uses. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4044 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4045 static unsigned int |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4046 x_mac_to_emacs_modifiers (dpyinfo, state) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4047 struct x_display_info *dpyinfo; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4048 unsigned short state; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4049 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4050 return (((state & shiftKey) ? shift_modifier : 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4051 | ((state & controlKey) ? ctrl_modifier : 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4052 | ((state & cmdKey) ? meta_modifier : 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4053 | ((state & optionKey) ? alt_modifier : 0)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4054 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4055 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4056 #if 0 /* MAC_TODO */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4057 static unsigned short |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4058 x_emacs_to_x_modifiers (dpyinfo, state) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4059 struct x_display_info *dpyinfo; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4060 unsigned int state; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4061 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4062 return ( ((state & alt_modifier) ? dpyinfo->alt_mod_mask : 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4063 | ((state & super_modifier) ? dpyinfo->super_mod_mask : 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4064 | ((state & hyper_modifier) ? dpyinfo->hyper_mod_mask : 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4065 | ((state & shift_modifier) ? ShiftMask : 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4066 | ((state & ctrl_modifier) ? ControlMask : 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4067 | ((state & meta_modifier) ? dpyinfo->meta_mod_mask : 0)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4068 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4069 #endif /* MAC_TODO */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4070 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4071 /* Convert a keysym to its name. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4072 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4073 char * |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4074 x_get_keysym_name (keysym) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4075 int keysym; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4076 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4077 char *value; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4078 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4079 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4080 #if 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4081 value = XKeysymToString (keysym); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4082 #else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4083 value = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4084 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4085 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4086 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4087 return value; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4088 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4089 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4090 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4091 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4092 /* Function to report a mouse movement to the mainstream Emacs code. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4093 The input handler calls this. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4094 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4095 We have received a mouse movement event, which is given in *event. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4096 If the mouse is over a different glyph than it was last time, tell |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4097 the mainstream emacs code by setting mouse_moved. If not, ask for |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4098 another motion event, so we can check again the next time it moves. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4099 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4100 static Point last_mouse_motion_position; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4101 static Lisp_Object last_mouse_motion_frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4102 |
66080
abad34f080c4
(note_mouse_movement, XTread_socket): Apply 2005-10-14 changes for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66049
diff
changeset
|
4103 static int |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4104 note_mouse_movement (frame, pos) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4105 FRAME_PTR frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4106 Point *pos; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4107 { |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4108 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (frame); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4109 #if TARGET_API_MAC_CARBON |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4110 Rect r; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4111 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4112 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4113 last_mouse_movement_time = TickCount () * (1000 / 60); /* to milliseconds */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4114 last_mouse_motion_position = *pos; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4115 XSETFRAME (last_mouse_motion_frame, frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4116 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4117 #if TARGET_API_MAC_CARBON |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4118 if (!PtInRect (*pos, GetWindowPortBounds (FRAME_MAC_WINDOW (frame), &r))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4119 #else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4120 if (!PtInRect (*pos, &FRAME_MAC_WINDOW (frame)->portRect)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4121 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4122 { |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4123 if (frame == dpyinfo->mouse_face_mouse_frame) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4124 /* This case corresponds to LeaveNotify in X11. */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4125 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4126 /* If we move outside the frame, then we're certainly no |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4127 longer on any text in the frame. */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4128 clear_mouse_face (dpyinfo); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4129 dpyinfo->mouse_face_mouse_frame = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4130 if (!dpyinfo->grabbed) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4131 rif->define_frame_cursor (frame, |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4132 frame->output_data.mac->nontext_cursor); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4133 } |
66080
abad34f080c4
(note_mouse_movement, XTread_socket): Apply 2005-10-14 changes for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66049
diff
changeset
|
4134 return 1; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4135 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4136 /* Has the mouse moved off the glyph it was on at the last sighting? */ |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
4137 if (frame != last_mouse_glyph_frame |
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
4138 || !PtInRect (*pos, &last_mouse_glyph)) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4139 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4140 frame->mouse_moved = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4141 last_mouse_scroll_bar = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4142 note_mouse_highlight (frame, pos->h, pos->v); |
66033
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4143 /* Remember which glyph we're now on. */ |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4144 remember_mouse_glyph (frame, pos->h, pos->v, &last_mouse_glyph); |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
4145 last_mouse_glyph_frame = frame; |
66080
abad34f080c4
(note_mouse_movement, XTread_socket): Apply 2005-10-14 changes for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66049
diff
changeset
|
4146 return 1; |
abad34f080c4
(note_mouse_movement, XTread_socket): Apply 2005-10-14 changes for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66049
diff
changeset
|
4147 } |
abad34f080c4
(note_mouse_movement, XTread_socket): Apply 2005-10-14 changes for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66049
diff
changeset
|
4148 |
abad34f080c4
(note_mouse_movement, XTread_socket): Apply 2005-10-14 changes for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66049
diff
changeset
|
4149 return 0; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4150 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4151 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4152 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4153 /************************************************************************ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4154 Mouse Face |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4155 ************************************************************************/ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4156 |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
4157 /* MAC TODO: This should be called from somewhere (or removed) ++KFS */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4158 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4159 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4160 redo_mouse_highlight () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4161 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4162 if (!NILP (last_mouse_motion_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4163 && FRAME_LIVE_P (XFRAME (last_mouse_motion_frame))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4164 note_mouse_highlight (XFRAME (last_mouse_motion_frame), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4165 last_mouse_motion_position.h, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4166 last_mouse_motion_position.v); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4167 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4168 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4169 |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4170 static struct frame * |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4171 mac_focus_frame (dpyinfo) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4172 struct mac_display_info *dpyinfo; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4173 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4174 if (dpyinfo->x_focus_frame) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4175 return dpyinfo->x_focus_frame; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4176 else |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4177 /* Mac version may get events, such as a menu bar click, even when |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4178 all the frames are invisible. In this case, we regard the |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4179 event came to the selected frame. */ |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4180 return SELECTED_FRAME (); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4181 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
4182 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4183 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4184 /* Return the current position of the mouse. |
66033
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4185 *FP should be a frame which indicates which display to ask about. |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4186 |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4187 If the mouse movement started in a scroll bar, set *FP, *BAR_WINDOW, |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4188 and *PART to the frame, window, and scroll bar part that the mouse |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4189 is over. Set *X and *Y to the portion and whole of the mouse's |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4190 position on the scroll bar. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4191 |
66033
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4192 If the mouse movement started elsewhere, set *FP to the frame the |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4193 mouse is on, *BAR_WINDOW to nil, and *X and *Y to the character cell |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4194 the mouse is over. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4195 |
66033
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4196 Set *TIME to the server time-stamp for the time at which the mouse |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4197 was at this position. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4198 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4199 Don't store anything if we don't have a valid set of values to report. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4200 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4201 This clears the mouse_moved flag, so we can wait for the next mouse |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4202 movement. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4203 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4204 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4205 XTmouse_position (fp, insist, bar_window, part, x, y, time) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4206 FRAME_PTR *fp; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4207 int insist; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4208 Lisp_Object *bar_window; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4209 enum scroll_bar_part *part; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4210 Lisp_Object *x, *y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4211 unsigned long *time; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4212 { |
66033
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4213 FRAME_PTR f1; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4214 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4215 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4216 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4217 if (! NILP (last_mouse_scroll_bar) && insist == 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4218 x_scroll_bar_report_motion (fp, bar_window, part, x, y, time); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4219 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4220 { |
66033
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4221 Lisp_Object frame, tail; |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4222 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4223 /* Clear the mouse-moved flag for every frame on this display. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4224 FOR_EACH_FRAME (tail, frame) |
66033
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4225 XFRAME (frame)->mouse_moved = 0; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4226 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4227 last_mouse_scroll_bar = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4228 |
66033
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4229 if (FRAME_MAC_DISPLAY_INFO (*fp)->grabbed && last_mouse_frame |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4230 && FRAME_LIVE_P (last_mouse_frame)) |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4231 f1 = last_mouse_frame; |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4232 else |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4233 f1 = mac_focus_frame (FRAME_MAC_DISPLAY_INFO (*fp)); |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4234 |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4235 if (f1) |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4236 { |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4237 /* Ok, we found a frame. Store all the values. |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4238 last_mouse_glyph is a rectangle used to reduce the |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4239 generation of mouse events. To not miss any motion |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4240 events, we must divide the frame into rectangles of the |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4241 size of the smallest character that could be displayed |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4242 on it, i.e. into the same rectangles that matrices on |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4243 the frame are divided into. */ |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4244 Point mouse_pos; |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4245 |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4246 SetPortWindowPort (FRAME_MAC_WINDOW (f1)); |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4247 GetMouse (&mouse_pos); |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4248 remember_mouse_glyph (f1, mouse_pos.h, mouse_pos.v, |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4249 &last_mouse_glyph); |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
4250 last_mouse_glyph_frame = f1; |
66033
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4251 |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4252 *bar_window = Qnil; |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4253 *part = 0; |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4254 *fp = f1; |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4255 XSETINT (*x, mouse_pos.h); |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4256 XSETINT (*y, mouse_pos.v); |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4257 *time = last_mouse_movement_time; |
ce2c44ba9ef1
(note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents:
66005
diff
changeset
|
4258 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4259 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
4260 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4261 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4262 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4263 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4264 |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4265 /************************************************************************ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4266 Toolkit scroll bars |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4267 ************************************************************************/ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4268 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4269 #ifdef USE_TOOLKIT_SCROLL_BARS |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4270 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4271 static pascal void scroll_bar_timer_callback P_ ((EventLoopTimerRef, void *)); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4272 static OSStatus install_scroll_bar_timer P_ ((void)); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4273 static OSStatus set_scroll_bar_timer P_ ((EventTimerInterval)); |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4274 static int control_part_code_to_scroll_bar_part P_ ((ControlPartCode)); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4275 static void construct_scroll_bar_click P_ ((struct scroll_bar *, int, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4276 struct input_event *)); |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4277 static OSErr get_control_part_bounds P_ ((ControlHandle, ControlPartCode, |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4278 Rect *)); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4279 static void x_scroll_bar_handle_press P_ ((struct scroll_bar *, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4280 ControlPartCode, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4281 struct input_event *)); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4282 static void x_scroll_bar_handle_release P_ ((struct scroll_bar *, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4283 struct input_event *)); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4284 static void x_scroll_bar_handle_drag P_ ((WindowPtr, struct scroll_bar *, |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4285 Point, struct input_event *)); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4286 static void x_set_toolkit_scroll_bar_thumb P_ ((struct scroll_bar *, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4287 int, int, int)); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4288 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4289 /* Last scroll bar part sent in x_scroll_bar_handle_*. */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4290 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4291 static int last_scroll_bar_part; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4292 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4293 static EventLoopTimerRef scroll_bar_timer; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4294 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4295 static int scroll_bar_timer_event_posted_p; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4296 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4297 #define SCROLL_BAR_FIRST_DELAY 0.5 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4298 #define SCROLL_BAR_CONTINUOUS_DELAY (1.0 / 15) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4299 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4300 static pascal void |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4301 scroll_bar_timer_callback (timer, data) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4302 EventLoopTimerRef timer; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4303 void *data; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4304 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4305 EventRef event = NULL; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4306 OSErr err; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4307 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4308 err = CreateEvent (NULL, kEventClassMouse, kEventMouseMoved, 0, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4309 kEventAttributeNone, &event); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4310 if (err == noErr) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4311 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4312 Point mouse_pos; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4313 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4314 GetMouse (&mouse_pos); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4315 LocalToGlobal (&mouse_pos); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4316 err = SetEventParameter (event, kEventParamMouseLocation, typeQDPoint, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4317 sizeof (Point), &mouse_pos); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4318 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4319 if (err == noErr) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4320 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4321 UInt32 modifiers = GetCurrentKeyModifiers (); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4322 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4323 err = SetEventParameter (event, kEventParamKeyModifiers, typeUInt32, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4324 sizeof (UInt32), &modifiers); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4325 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4326 if (err == noErr) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4327 err = PostEventToQueue (GetCurrentEventQueue (), event, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4328 kEventPriorityStandard); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4329 if (err == noErr) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4330 scroll_bar_timer_event_posted_p = 1; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4331 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4332 if (event) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4333 ReleaseEvent (event); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4334 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4335 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4336 static OSStatus |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4337 install_scroll_bar_timer () |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4338 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4339 static EventLoopTimerUPP scroll_bar_timer_callbackUPP = NULL; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4340 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4341 if (scroll_bar_timer_callbackUPP == NULL) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4342 scroll_bar_timer_callbackUPP = |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4343 NewEventLoopTimerUPP (scroll_bar_timer_callback); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4344 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4345 if (scroll_bar_timer == NULL) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4346 /* Mac OS X and CarbonLib 1.5 and later allow us to specify |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4347 kEventDurationForever as delays. */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4348 return |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4349 InstallEventLoopTimer (GetCurrentEventLoop (), |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4350 kEventDurationForever, kEventDurationForever, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4351 scroll_bar_timer_callbackUPP, NULL, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4352 &scroll_bar_timer); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4353 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4354 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4355 static OSStatus |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4356 set_scroll_bar_timer (delay) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4357 EventTimerInterval delay; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4358 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4359 if (scroll_bar_timer == NULL) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4360 install_scroll_bar_timer (); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4361 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4362 scroll_bar_timer_event_posted_p = 0; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4363 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4364 return SetEventLoopTimerNextFireTime (scroll_bar_timer, delay); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4365 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4366 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4367 static int |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4368 control_part_code_to_scroll_bar_part (part_code) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4369 ControlPartCode part_code; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4370 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4371 switch (part_code) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4372 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4373 case kControlUpButtonPart: return scroll_bar_up_arrow; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4374 case kControlDownButtonPart: return scroll_bar_down_arrow; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4375 case kControlPageUpPart: return scroll_bar_above_handle; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4376 case kControlPageDownPart: return scroll_bar_below_handle; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4377 case kControlIndicatorPart: return scroll_bar_handle; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4378 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4379 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4380 return -1; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4381 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4382 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4383 static void |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4384 construct_scroll_bar_click (bar, part, bufp) |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4385 struct scroll_bar *bar; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4386 int part; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4387 struct input_event *bufp; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4388 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4389 bufp->kind = SCROLL_BAR_CLICK_EVENT; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4390 bufp->frame_or_window = bar->window; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4391 bufp->arg = Qnil; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4392 bufp->part = part; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4393 bufp->code = 0; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4394 XSETINT (bufp->x, 0); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4395 XSETINT (bufp->y, 0); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4396 bufp->modifiers = 0; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4397 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4398 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4399 static OSErr |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4400 get_control_part_bounds (ch, part_code, rect) |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4401 ControlHandle ch; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4402 ControlPartCode part_code; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4403 Rect *rect; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4404 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4405 RgnHandle region = NewRgn (); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4406 OSStatus err; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4407 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4408 err = GetControlRegion (ch, part_code, region); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4409 if (err == noErr) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4410 GetRegionBounds (region, rect); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4411 DisposeRgn (region); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4412 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4413 return err; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4414 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4415 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4416 static void |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4417 x_scroll_bar_handle_press (bar, part_code, bufp) |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4418 struct scroll_bar *bar; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4419 ControlPartCode part_code; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4420 struct input_event *bufp; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4421 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4422 int part = control_part_code_to_scroll_bar_part (part_code); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4423 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4424 if (part < 0) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4425 return; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4426 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4427 if (part != scroll_bar_handle) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4428 { |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4429 construct_scroll_bar_click (bar, part, bufp); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4430 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4431 set_scroll_bar_timer (SCROLL_BAR_FIRST_DELAY); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4432 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4433 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4434 last_scroll_bar_part = part; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4435 bar->dragging = Qnil; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4436 tracked_scroll_bar = bar; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4437 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4438 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4439 static void |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4440 x_scroll_bar_handle_release (bar, bufp) |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4441 struct scroll_bar *bar; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4442 struct input_event *bufp; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4443 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4444 if (last_scroll_bar_part != scroll_bar_handle |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4445 || !GC_NILP (bar->dragging)) |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4446 construct_scroll_bar_click (bar, scroll_bar_end_scroll, bufp); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4447 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4448 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), 0); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4449 set_scroll_bar_timer (kEventDurationForever); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4450 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4451 last_scroll_bar_part = -1; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4452 bar->dragging = Qnil; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4453 tracked_scroll_bar = NULL; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4454 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4455 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4456 static void |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4457 x_scroll_bar_handle_drag (win, bar, mouse_pos, bufp) |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4458 WindowPtr win; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4459 struct scroll_bar *bar; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4460 Point mouse_pos; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4461 struct input_event *bufp; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4462 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4463 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4464 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4465 if (last_scroll_bar_part == scroll_bar_handle) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4466 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4467 int top, top_range; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4468 Rect r; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4469 |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4470 get_control_part_bounds (SCROLL_BAR_CONTROL_HANDLE (bar), |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4471 kControlIndicatorPart, &r); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4472 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4473 if (GC_NILP (bar->dragging)) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4474 XSETINT (bar->dragging, mouse_pos.v - r.top); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4475 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4476 top = mouse_pos.v - XINT (bar->dragging) - XINT (bar->track_top); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4477 top_range = (XINT (bar->track_height) - (r.bottom - r.top)) * |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4478 (1.0 + (float) GetControlViewSize (ch) / GetControl32BitMaximum (ch)) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4479 + .5; |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4480 |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4481 if (top < 0) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4482 top = 0; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4483 if (top > top_range) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4484 top = top_range; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4485 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4486 construct_scroll_bar_click (bar, scroll_bar_handle, bufp); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4487 XSETINT (bufp->x, top); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4488 XSETINT (bufp->y, top_range); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4489 } |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
4490 else |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4491 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4492 ControlPartCode part_code; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4493 int unhilite_p = 0, part; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4494 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4495 if (ch != FindControlUnderMouse (mouse_pos, win, &part_code)) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4496 unhilite_p = 1; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4497 else |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4498 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4499 part = control_part_code_to_scroll_bar_part (part_code); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4500 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4501 switch (last_scroll_bar_part) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4502 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4503 case scroll_bar_above_handle: |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4504 case scroll_bar_below_handle: |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4505 if (part != scroll_bar_above_handle |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4506 && part != scroll_bar_below_handle) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4507 unhilite_p = 1; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4508 break; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4509 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4510 case scroll_bar_up_arrow: |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4511 case scroll_bar_down_arrow: |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4512 if (part != scroll_bar_up_arrow |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4513 && part != scroll_bar_down_arrow) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4514 unhilite_p = 1; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4515 break; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4516 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4517 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4518 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4519 if (unhilite_p) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4520 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), 0); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4521 else if (part != last_scroll_bar_part |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4522 || scroll_bar_timer_event_posted_p) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4523 { |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4524 construct_scroll_bar_click (bar, part, bufp); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4525 last_scroll_bar_part = part; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4526 HiliteControl (SCROLL_BAR_CONTROL_HANDLE (bar), part_code); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4527 set_scroll_bar_timer (SCROLL_BAR_CONTINUOUS_DELAY); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4528 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4529 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4530 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4531 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4532 /* Set the thumb size and position of scroll bar BAR. We are currently |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4533 displaying PORTION out of a whole WHOLE, and our position POSITION. */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4534 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4535 static void |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4536 x_set_toolkit_scroll_bar_thumb (bar, portion, position, whole) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4537 struct scroll_bar *bar; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4538 int portion, position, whole; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4539 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4540 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4541 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4542 int value, viewsize, maximum; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4543 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4544 if (whole == 0 || XINT (bar->track_height) == 0) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4545 value = 0, viewsize = 1, maximum = 0; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4546 else |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4547 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4548 value = position; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4549 viewsize = portion; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4550 maximum = max (0, whole - portion); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4551 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4552 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4553 BLOCK_INPUT; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4554 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4555 SetControl32BitMinimum (ch, 0); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4556 SetControl32BitMaximum (ch, maximum); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4557 SetControl32BitValue (ch, value); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4558 SetControlViewSize (ch, viewsize); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4559 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4560 UNBLOCK_INPUT; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4561 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4562 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4563 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4564 |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
4565 |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
4566 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4567 /************************************************************************ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4568 Scroll bars, general |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4569 ************************************************************************/ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
4570 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4571 /* Create a scroll bar and return the scroll bar vector for it. W is |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4572 the Emacs window on which to create the scroll bar. TOP, LEFT, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4573 WIDTH and HEIGHT are the pixel coordinates and dimensions of the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4574 scroll bar. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4575 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4576 static struct scroll_bar * |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4577 x_scroll_bar_create (w, top, left, width, height, disp_top, disp_height) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4578 struct window *w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4579 int top, left, width, height, disp_top, disp_height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4580 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4581 struct frame *f = XFRAME (w->frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4582 struct scroll_bar *bar |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4583 = XSCROLL_BAR (Fmake_vector (make_number (SCROLL_BAR_VEC_SIZE), Qnil)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4584 Rect r; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4585 ControlHandle ch; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4586 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4587 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4588 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4589 r.left = left; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4590 r.top = disp_top; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4591 r.right = left + width; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4592 r.bottom = disp_top + disp_height; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
4593 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
4594 #if TARGET_API_MAC_CARBON |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4595 ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", width < disp_height, |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4596 0, 0, 0, kControlScrollBarProc, (long) bar); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4597 #else |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4598 ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p", width < disp_height, |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4599 0, 0, 0, scrollBarProc, (long) bar); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4600 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4601 SET_SCROLL_BAR_CONTROL_HANDLE (bar, ch); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4602 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4603 XSETWINDOW (bar->window, w); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4604 XSETINT (bar->top, top); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4605 XSETINT (bar->left, left); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4606 XSETINT (bar->width, width); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4607 XSETINT (bar->height, height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4608 XSETINT (bar->start, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4609 XSETINT (bar->end, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4610 bar->dragging = Qnil; |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4611 #ifdef USE_TOOLKIT_SCROLL_BARS |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4612 bar->track_top = Qnil; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4613 bar->track_height = Qnil; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4614 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4615 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4616 /* Add bar to its frame's list of scroll bars. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4617 bar->next = FRAME_SCROLL_BARS (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4618 bar->prev = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4619 XSETVECTOR (FRAME_SCROLL_BARS (f), bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4620 if (!NILP (bar->next)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4621 XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4622 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4623 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4624 return bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4625 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4626 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4627 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4628 /* Draw BAR's handle in the proper position. |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
4629 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4630 If the handle is already drawn from START to END, don't bother |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4631 redrawing it, unless REBUILD is non-zero; in that case, always |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4632 redraw it. (REBUILD is handy for drawing the handle after expose |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4633 events.) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4634 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4635 Normally, we want to constrain the start and end of the handle to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4636 fit inside its rectangle, but if the user is dragging the scroll |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4637 bar handle, we want to let them drag it down all the way, so that |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4638 the bar's top is as far down as it goes; otherwise, there's no way |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4639 to move to the very end of the buffer. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4640 |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4641 #ifndef USE_TOOLKIT_SCROLL_BARS |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4642 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4643 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4644 x_scroll_bar_set_handle (bar, start, end, rebuild) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4645 struct scroll_bar *bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4646 int start, end; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4647 int rebuild; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4648 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4649 int dragging = ! NILP (bar->dragging); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4650 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4651 FRAME_PTR f = XFRAME (WINDOW_FRAME (XWINDOW (bar->window))); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4652 int top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4653 int length = end - start; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4654 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4655 /* If the display is already accurate, do nothing. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4656 if (! rebuild |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4657 && start == XINT (bar->start) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4658 && end == XINT (bar->end)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4659 return; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4660 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4661 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4662 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4663 /* Make sure the values are reasonable, and try to preserve the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4664 distance between start and end. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4665 if (start < 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4666 start = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4667 else if (start > top_range) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4668 start = top_range; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4669 end = start + length; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
4670 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4671 if (end < start) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4672 end = start; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4673 else if (end > top_range && ! dragging) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4674 end = top_range; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4675 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4676 /* Store the adjusted setting in the scroll bar. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4677 XSETINT (bar->start, start); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4678 XSETINT (bar->end, end); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4679 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4680 /* Clip the end position, just for display. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4681 if (end > top_range) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4682 end = top_range; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4683 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4684 /* Draw bottom positions VERTICAL_SCROLL_BAR_MIN_HANDLE pixels below |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4685 top positions, to make sure the handle is always at least that |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4686 many pixels tall. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4687 end += VERTICAL_SCROLL_BAR_MIN_HANDLE; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4688 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4689 SetControlMinimum (ch, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4690 /* Don't inadvertently activate deactivated scroll bars */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4691 if (GetControlMaximum (ch) != -1) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4692 SetControlMaximum (ch, top_range + VERTICAL_SCROLL_BAR_MIN_HANDLE |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4693 - (end - start)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4694 SetControlValue (ch, start); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4695 #if TARGET_API_MAC_CARBON |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4696 SetControlViewSize (ch, end - start); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4697 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4698 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4699 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4700 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4701 |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4702 #endif /* !USE_TOOLKIT_SCROLL_BARS */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4703 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4704 /* Destroy scroll bar BAR, and set its Emacs window's scroll bar to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4705 nil. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4706 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4707 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4708 x_scroll_bar_remove (bar) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4709 struct scroll_bar *bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4710 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4711 FRAME_PTR f = XFRAME (WINDOW_FRAME (XWINDOW (bar->window))); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4712 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4713 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4714 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4715 /* Destroy the Mac scroll bar control */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4716 DisposeControl (SCROLL_BAR_CONTROL_HANDLE (bar)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4717 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4718 /* Disassociate this scroll bar from its window. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4719 XWINDOW (bar->window)->vertical_scroll_bar = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4720 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4721 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4722 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4723 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4724 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4725 /* Set the handle of the vertical scroll bar for WINDOW to indicate |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4726 that we are displaying PORTION characters out of a total of WHOLE |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4727 characters, starting at POSITION. If WINDOW has no scroll bar, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4728 create one. */ |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4729 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4730 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4731 XTset_vertical_scroll_bar (w, portion, whole, position) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4732 struct window *w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4733 int portion, whole, position; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4734 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4735 struct frame *f = XFRAME (w->frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4736 struct scroll_bar *bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4737 int top, height, left, sb_left, width, sb_width, disp_top, disp_height; |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
4738 int window_y, window_height; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4739 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4740 /* Get window dimensions. */ |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
4741 window_box (w, -1, 0, &window_y, 0, &window_height); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4742 top = window_y; |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
4743 width = WINDOW_CONFIG_SCROLL_BAR_COLS (w) * FRAME_COLUMN_WIDTH (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4744 height = window_height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4745 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4746 /* Compute the left edge of the scroll bar area. */ |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
4747 left = WINDOW_SCROLL_BAR_AREA_X (w); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4748 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4749 /* Compute the width of the scroll bar which might be less than |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4750 the width of the area reserved for the scroll bar. */ |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
4751 if (WINDOW_CONFIG_SCROLL_BAR_WIDTH (w) > 0) |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
4752 sb_width = WINDOW_CONFIG_SCROLL_BAR_WIDTH (w); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4753 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4754 sb_width = width; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4755 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4756 /* Compute the left edge of the scroll bar. */ |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
4757 if (WINDOW_HAS_VERTICAL_SCROLL_BAR_ON_RIGHT (w)) |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4758 sb_left = left; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4759 else |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4760 sb_left = left + width - sb_width; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
4761 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4762 /* Adjustments according to Inside Macintosh to make it look nice */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4763 disp_top = top; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4764 disp_height = height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4765 if (disp_top == 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4766 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4767 disp_top = -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4768 disp_height++; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4769 } |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
4770 else if (disp_top == FRAME_PIXEL_HEIGHT (f) - 16) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4771 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4772 disp_top++; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4773 disp_height--; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4774 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
4775 |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
4776 if (sb_left + sb_width == FRAME_PIXEL_WIDTH (f)) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4777 sb_left++; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
4778 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4779 /* Does the scroll bar exist yet? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4780 if (NILP (w->vertical_scroll_bar)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4781 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4782 BLOCK_INPUT; |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
4783 mac_clear_area (f, left, top, width, height); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4784 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4785 bar = x_scroll_bar_create (w, top, sb_left, sb_width, height, disp_top, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4786 disp_height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4787 XSETVECTOR (w->vertical_scroll_bar, bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4788 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4789 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4790 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4791 /* It may just need to be moved and resized. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4792 ControlHandle ch; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
4793 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4794 bar = XSCROLL_BAR (w->vertical_scroll_bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4795 ch = SCROLL_BAR_CONTROL_HANDLE (bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4796 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4797 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4798 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4799 /* If already correctly positioned, do nothing. */ |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4800 if (!(XINT (bar->left) == sb_left |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4801 && XINT (bar->top) == top |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4802 && XINT (bar->width) == sb_width |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4803 && XINT (bar->height) == height)) |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4804 { |
64424
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
4805 /* Since toolkit scroll bars are smaller than the space reserved |
feba2f2d875e
(x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64313
diff
changeset
|
4806 for them on the frame, we have to clear "under" them. */ |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
4807 mac_clear_area (f, left, top, width, height); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4808 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4809 HideControl (ch); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4810 MoveControl (ch, sb_left + VERTICAL_SCROLL_BAR_WIDTH_TRIM, disp_top); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4811 SizeControl (ch, sb_width - VERTICAL_SCROLL_BAR_WIDTH_TRIM * 2, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4812 disp_height); |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4813 if (sb_width < disp_height) |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4814 ShowControl (ch); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
4815 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4816 /* Remember new settings. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4817 XSETINT (bar->left, sb_left); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4818 XSETINT (bar->top, top); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4819 XSETINT (bar->width, sb_width); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4820 XSETINT (bar->height, height); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4821 #ifdef USE_TOOLKIT_SCROLL_BARS |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4822 bar->track_top = Qnil; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4823 bar->track_height = Qnil; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4824 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4825 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4826 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4827 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4828 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4829 |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4830 #ifdef USE_TOOLKIT_SCROLL_BARS |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4831 if (NILP (bar->track_top)) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4832 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4833 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4834 Rect r0, r1; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4835 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4836 BLOCK_INPUT; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4837 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4838 SetControl32BitMinimum (ch, 0); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4839 SetControl32BitMaximum (ch, 1); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4840 SetControlViewSize (ch, 1); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4841 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4842 /* Move the scroll bar thumb to the top. */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4843 SetControl32BitValue (ch, 0); |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4844 get_control_part_bounds (ch, kControlIndicatorPart, &r0); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4845 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4846 /* Move the scroll bar thumb to the bottom. */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4847 SetControl32BitValue (ch, 1); |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4848 get_control_part_bounds (ch, kControlIndicatorPart, &r1); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4849 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4850 UnionRect (&r0, &r1, &r0); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4851 XSETINT (bar->track_top, r0.top); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4852 XSETINT (bar->track_height, r0.bottom - r0.top); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4853 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4854 UNBLOCK_INPUT; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4855 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4856 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4857 x_set_toolkit_scroll_bar_thumb (bar, portion, position, whole); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4858 #else /* not USE_TOOLKIT_SCROLL_BARS */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4859 /* Set the scroll bar's current state, unless we're currently being |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4860 dragged. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4861 if (NILP (bar->dragging)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4862 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4863 int top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4864 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4865 if (whole == 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4866 x_scroll_bar_set_handle (bar, 0, top_range, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4867 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4868 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4869 int start = ((double) position * top_range) / whole; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4870 int end = ((double) (position + portion) * top_range) / whole; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4871 x_scroll_bar_set_handle (bar, start, end, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4872 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4873 } |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
4874 #endif /* not USE_TOOLKIT_SCROLL_BARS */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4875 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4876 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4877 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4878 /* The following three hooks are used when we're doing a thorough |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4879 redisplay of the frame. We don't explicitly know which scroll bars |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4880 are going to be deleted, because keeping track of when windows go |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4881 away is a real pain - "Can you say set-window-configuration, boys |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4882 and girls?" Instead, we just assert at the beginning of redisplay |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4883 that *all* scroll bars are to be removed, and then save a scroll bar |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4884 from the fiery pit when we actually redisplay its window. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4885 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4886 /* Arrange for all scroll bars on FRAME to be removed at the next call |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4887 to `*judge_scroll_bars_hook'. A scroll bar may be spared if |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4888 `*redeem_scroll_bar_hook' is applied to its window before the judgment. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4889 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4890 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4891 XTcondemn_scroll_bars (frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4892 FRAME_PTR frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4893 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4894 /* Transfer all the scroll bars to FRAME_CONDEMNED_SCROLL_BARS. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4895 while (! NILP (FRAME_SCROLL_BARS (frame))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4896 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4897 Lisp_Object bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4898 bar = FRAME_SCROLL_BARS (frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4899 FRAME_SCROLL_BARS (frame) = XSCROLL_BAR (bar)->next; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4900 XSCROLL_BAR (bar)->next = FRAME_CONDEMNED_SCROLL_BARS (frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4901 XSCROLL_BAR (bar)->prev = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4902 if (! NILP (FRAME_CONDEMNED_SCROLL_BARS (frame))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4903 XSCROLL_BAR (FRAME_CONDEMNED_SCROLL_BARS (frame))->prev = bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4904 FRAME_CONDEMNED_SCROLL_BARS (frame) = bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4905 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4906 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4907 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4908 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4909 /* Un-mark WINDOW's scroll bar for deletion in this judgment cycle. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4910 Note that WINDOW isn't necessarily condemned at all. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4911 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4912 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4913 XTredeem_scroll_bar (window) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4914 struct window *window; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4915 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4916 struct scroll_bar *bar; |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4917 struct frame *f; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4918 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4919 /* We can't redeem this window's scroll bar if it doesn't have one. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4920 if (NILP (window->vertical_scroll_bar)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4921 abort (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4922 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4923 bar = XSCROLL_BAR (window->vertical_scroll_bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4924 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4925 /* Unlink it from the condemned list. */ |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4926 f = XFRAME (WINDOW_FRAME (window)); |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4927 if (NILP (bar->prev)) |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4928 { |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4929 /* If the prev pointer is nil, it must be the first in one of |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4930 the lists. */ |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4931 if (EQ (FRAME_SCROLL_BARS (f), window->vertical_scroll_bar)) |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4932 /* It's not condemned. Everything's fine. */ |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4933 return; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4934 else if (EQ (FRAME_CONDEMNED_SCROLL_BARS (f), |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4935 window->vertical_scroll_bar)) |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4936 FRAME_CONDEMNED_SCROLL_BARS (f) = bar->next; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4937 else |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4938 /* If its prev pointer is nil, it must be at the front of |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4939 one or the other! */ |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4940 abort (); |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4941 } |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4942 else |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4943 XSCROLL_BAR (bar->prev)->next = bar->next; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4944 |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4945 if (! NILP (bar->next)) |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4946 XSCROLL_BAR (bar->next)->prev = bar->prev; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4947 |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4948 bar->next = FRAME_SCROLL_BARS (f); |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4949 bar->prev = Qnil; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4950 XSETVECTOR (FRAME_SCROLL_BARS (f), bar); |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4951 if (! NILP (bar->next)) |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
4952 XSETVECTOR (XSCROLL_BAR (bar->next)->prev, bar); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4953 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4954 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4955 /* Remove all scroll bars on FRAME that haven't been saved since the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4956 last call to `*condemn_scroll_bars_hook'. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4957 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4958 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4959 XTjudge_scroll_bars (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4960 FRAME_PTR f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4961 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4962 Lisp_Object bar, next; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4963 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4964 bar = FRAME_CONDEMNED_SCROLL_BARS (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4965 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4966 /* Clear out the condemned list now so we won't try to process any |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4967 more events on the hapless scroll bars. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4968 FRAME_CONDEMNED_SCROLL_BARS (f) = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4969 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4970 for (; ! NILP (bar); bar = next) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4971 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4972 struct scroll_bar *b = XSCROLL_BAR (bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4973 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4974 x_scroll_bar_remove (b); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4975 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4976 next = b->next; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4977 b->next = b->prev = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4978 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4979 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4980 /* Now there should be no references to the condemned scroll bars, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4981 and they should get garbage-collected. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4982 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4983 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4984 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4985 /* Handle a mouse click on the scroll bar BAR. If *EMACS_EVENT's kind |
45803
9484de301252
Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents:
45197
diff
changeset
|
4986 is set to something other than NO_EVENT, it is enqueued. |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4987 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4988 This may be called from a signal handler, so we have to ignore GC |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4989 mark bits. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4990 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4991 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4992 x_scroll_bar_handle_click (bar, part_code, er, bufp) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4993 struct scroll_bar *bar; |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
4994 ControlPartCode part_code; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4995 EventRecord *er; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4996 struct input_event *bufp; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
4997 { |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4998 int win_y, top_range; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
4999 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5000 if (! GC_WINDOWP (bar->window)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5001 abort (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5002 |
45803
9484de301252
Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents:
45197
diff
changeset
|
5003 bufp->kind = SCROLL_BAR_CLICK_EVENT; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5004 bufp->frame_or_window = bar->window; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5005 bufp->arg = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5006 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5007 bar->dragging = Qnil; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
5008 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5009 switch (part_code) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5010 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5011 case kControlUpButtonPart: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5012 bufp->part = scroll_bar_up_arrow; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5013 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5014 case kControlDownButtonPart: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5015 bufp->part = scroll_bar_down_arrow; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5016 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5017 case kControlPageUpPart: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5018 bufp->part = scroll_bar_above_handle; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5019 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5020 case kControlPageDownPart: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5021 bufp->part = scroll_bar_below_handle; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5022 break; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
5023 #if TARGET_API_MAC_CARBON |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5024 default: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5025 #else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5026 case kControlIndicatorPart: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5027 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5028 if (er->what == mouseDown) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5029 bar->dragging = make_number (0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5030 XSETVECTOR (last_mouse_scroll_bar, bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5031 bufp->part = scroll_bar_handle; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5032 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5033 } |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5034 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5035 win_y = XINT (bufp->y) - XINT (bar->top); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5036 top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (0/*dummy*/, XINT (bar->height)); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5037 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5038 win_y -= VERTICAL_SCROLL_BAR_TOP_BORDER; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5039 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5040 win_y -= 24; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5041 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5042 if (! NILP (bar->dragging)) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5043 win_y -= XINT (bar->dragging); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5044 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5045 if (win_y < 0) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5046 win_y = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5047 if (win_y > top_range) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5048 win_y = top_range; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5049 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5050 XSETINT (bufp->x, win_y); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5051 XSETINT (bufp->y, top_range); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5052 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5053 |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
5054 #ifndef USE_TOOLKIT_SCROLL_BARS |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5055 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5056 /* Handle some mouse motion while someone is dragging the scroll bar. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5057 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5058 This may be called from a signal handler, so we have to ignore GC |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5059 mark bits. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5060 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5061 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5062 x_scroll_bar_note_movement (bar, y_pos, t) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5063 struct scroll_bar *bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5064 int y_pos; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5065 Time t; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5066 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5067 FRAME_PTR f = XFRAME (XWINDOW (bar->window)->frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5068 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5069 last_mouse_movement_time = t; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5070 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5071 f->mouse_moved = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5072 XSETVECTOR (last_mouse_scroll_bar, bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5073 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5074 /* If we're dragging the bar, display it. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5075 if (! GC_NILP (bar->dragging)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5076 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5077 /* Where should the handle be now? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5078 int new_start = y_pos - 24; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5079 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5080 if (new_start != XINT (bar->start)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5081 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5082 int new_end = new_start + (XINT (bar->end) - XINT (bar->start)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5083 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5084 x_scroll_bar_set_handle (bar, new_start, new_end, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5085 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5086 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5087 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5088 |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
5089 #endif /* !USE_TOOLKIT_SCROLL_BARS */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5090 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
5091 /* Return information to the user about the current position of the mouse |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
5092 on the scroll bar. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5093 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5094 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5095 x_scroll_bar_report_motion (fp, bar_window, part, x, y, time) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5096 FRAME_PTR *fp; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5097 Lisp_Object *bar_window; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5098 enum scroll_bar_part *part; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5099 Lisp_Object *x, *y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5100 unsigned long *time; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5101 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5102 struct scroll_bar *bar = XSCROLL_BAR (last_mouse_scroll_bar); |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
5103 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
5104 #if TARGET_API_MAC_CARBON |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
5105 WindowPtr wp = GetControlOwner (ch); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
5106 #else |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
5107 WindowPtr wp = (*ch)->contrlOwner; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
5108 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5109 Point mouse_pos; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5110 struct frame *f = mac_window_to_frame (wp); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5111 int win_y, top_range; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5112 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
5113 SetPortWindowPort (wp); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5114 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5115 GetMouse (&mouse_pos); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5116 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5117 win_y = mouse_pos.v - XINT (bar->top); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5118 top_range = VERTICAL_SCROLL_BAR_TOP_RANGE (f, XINT (bar->height)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5119 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5120 win_y -= VERTICAL_SCROLL_BAR_TOP_BORDER; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5121 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5122 win_y -= 24; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5123 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5124 if (! NILP (bar->dragging)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5125 win_y -= XINT (bar->dragging); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5126 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5127 if (win_y < 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5128 win_y = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5129 if (win_y > top_range) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5130 win_y = top_range; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5131 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5132 *fp = f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5133 *bar_window = bar->window; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5134 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5135 if (! NILP (bar->dragging)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5136 *part = scroll_bar_handle; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5137 else if (win_y < XINT (bar->start)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5138 *part = scroll_bar_above_handle; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5139 else if (win_y < XINT (bar->end) + VERTICAL_SCROLL_BAR_MIN_HANDLE) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5140 *part = scroll_bar_handle; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5141 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5142 *part = scroll_bar_below_handle; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5143 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5144 XSETINT (*x, win_y); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5145 XSETINT (*y, top_range); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5146 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5147 f->mouse_moved = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5148 last_mouse_scroll_bar = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5149 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5150 *time = last_mouse_movement_time; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5151 } |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5152 |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5153 |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5154 /* The screen has been cleared so we may have changed foreground or |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5155 background colors, and the scroll bars may need to be redrawn. |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5156 Clear out the scroll bars, and ask for expose events, so we can |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5157 redraw them. */ |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5158 |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5159 void |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5160 x_scroll_bar_clear (f) |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5161 FRAME_PTR f; |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5162 { |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5163 XTcondemn_scroll_bars (f); |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5164 XTjudge_scroll_bars (f); |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5165 } |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
5166 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5167 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5168 /*********************************************************************** |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5169 Text Cursor |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5170 ***********************************************************************/ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5171 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5172 /* Set clipping for output in glyph row ROW. W is the window in which |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5173 we operate. GC is the graphics context to set clipping in. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5174 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5175 ROW may be a text row or, e.g., a mode line. Text rows must be |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5176 clipped to the interior of the window dedicated to text display, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5177 mode lines must be clipped to the whole window. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5178 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5179 static void |
58403
c936fa56eb60
(x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents:
57783
diff
changeset
|
5180 x_clip_to_row (w, row, area, gc) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5181 struct window *w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5182 struct glyph_row *row; |
58403
c936fa56eb60
(x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents:
57783
diff
changeset
|
5183 int area; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5184 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5185 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5186 struct frame *f = XFRAME (WINDOW_FRAME (w)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5187 Rect clip_rect; |
58403
c936fa56eb60
(x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents:
57783
diff
changeset
|
5188 int window_x, window_y, window_width; |
c936fa56eb60
(x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents:
57783
diff
changeset
|
5189 |
c936fa56eb60
(x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents:
57783
diff
changeset
|
5190 window_box (w, area, &window_x, &window_y, &window_width, 0); |
c936fa56eb60
(x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents:
57783
diff
changeset
|
5191 |
c936fa56eb60
(x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents:
57783
diff
changeset
|
5192 clip_rect.left = window_x; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5193 clip_rect.top = WINDOW_TO_FRAME_PIXEL_Y (w, row->y); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5194 clip_rect.top = max (clip_rect.top, window_y); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5195 clip_rect.right = clip_rect.left + window_width; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5196 clip_rect.bottom = clip_rect.top + row->visible_height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5197 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
5198 mac_set_clip_rectangles (FRAME_MAC_DISPLAY (f), gc, &clip_rect, 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5199 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5200 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5201 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5202 /* Draw a hollow box cursor on window W in glyph row ROW. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5203 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5204 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5205 x_draw_hollow_cursor (w, row) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5206 struct window *w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5207 struct glyph_row *row; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5208 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5209 struct frame *f = XFRAME (WINDOW_FRAME (w)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5210 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5211 Display *dpy = FRAME_MAC_DISPLAY (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5212 int x, y, wd, h; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5213 XGCValues xgcv; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5214 struct glyph *cursor_glyph; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5215 GC gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5216 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5217 /* Get the glyph the cursor is on. If we can't tell because |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5218 the current matrix is invalid or such, give up. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5219 cursor_glyph = get_phys_cursor_glyph (w); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5220 if (cursor_glyph == NULL) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5221 return; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5222 |
59748
1df465faf1df
(x_draw_hollow_cursor): Use get_phys_cursor_geometry.
Kim F. Storm <storm@cua.dk>
parents:
59718
diff
changeset
|
5223 /* Compute frame-relative coordinates for phys cursor. */ |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5224 x = WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x); |
59748
1df465faf1df
(x_draw_hollow_cursor): Use get_phys_cursor_geometry.
Kim F. Storm <storm@cua.dk>
parents:
59718
diff
changeset
|
5225 y = get_phys_cursor_geometry (w, row, cursor_glyph, &h); |
1df465faf1df
(x_draw_hollow_cursor): Use get_phys_cursor_geometry.
Kim F. Storm <storm@cua.dk>
parents:
59718
diff
changeset
|
5226 wd = w->phys_cursor_width; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
5227 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5228 /* The foreground of cursor_gc is typically the same as the normal |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5229 background color, which can cause the cursor box to be invisible. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5230 xgcv.foreground = f->output_data.mac->cursor_pixel; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5231 if (dpyinfo->scratch_cursor_gc) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5232 XChangeGC (dpy, dpyinfo->scratch_cursor_gc, GCForeground, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5233 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5234 dpyinfo->scratch_cursor_gc = XCreateGC (dpy, FRAME_MAC_WINDOW (f), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5235 GCForeground, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5236 gc = dpyinfo->scratch_cursor_gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5237 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5238 /* Set clipping, draw the rectangle, and reset clipping again. */ |
58403
c936fa56eb60
(x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents:
57783
diff
changeset
|
5239 x_clip_to_row (w, row, TEXT_AREA, gc); |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5240 mac_draw_rectangle (f, gc, x, y, wd, h); |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
5241 mac_reset_clip_rectangles (dpy, gc); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5242 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5243 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5244 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5245 /* Draw a bar cursor on window W in glyph row ROW. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5246 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5247 Implementation note: One would like to draw a bar cursor with an |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5248 angle equal to the one given by the font property XA_ITALIC_ANGLE. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5249 Unfortunately, I didn't find a font yet that has this property set. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5250 --gerd. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5251 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5252 static void |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5253 x_draw_bar_cursor (w, row, width, kind) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5254 struct window *w; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5255 struct glyph_row *row; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5256 int width; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5257 enum text_cursor_kinds kind; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5258 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5259 struct frame *f = XFRAME (w->frame); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5260 struct glyph *cursor_glyph; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5261 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5262 /* If cursor is out of bounds, don't draw garbage. This can happen |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5263 in mini-buffer windows when switching between echo area glyphs |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5264 and mini-buffer. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5265 cursor_glyph = get_phys_cursor_glyph (w); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5266 if (cursor_glyph == NULL) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5267 return; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5268 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5269 /* If on an image, draw like a normal cursor. That's usually better |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5270 visible than drawing a bar, esp. if the image is large so that |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5271 the bar might not be in the window. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5272 if (cursor_glyph->type == IMAGE_GLYPH) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5273 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5274 struct glyph_row *row; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5275 row = MATRIX_ROW (w->current_matrix, w->phys_cursor.vpos); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5276 draw_phys_cursor_glyph (w, row, DRAW_CURSOR); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5277 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5278 else |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5279 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5280 Display *dpy = FRAME_MAC_DISPLAY (f); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5281 Window window = FRAME_MAC_WINDOW (f); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5282 GC gc = FRAME_MAC_DISPLAY_INFO (f)->scratch_cursor_gc; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5283 unsigned long mask = GCForeground | GCBackground; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5284 struct face *face = FACE_FROM_ID (f, cursor_glyph->face_id); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5285 XGCValues xgcv; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5286 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5287 /* If the glyph's background equals the color we normally draw |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5288 the bar cursor in, the bar cursor in its normal color is |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5289 invisible. Use the glyph's foreground color instead in this |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5290 case, on the assumption that the glyph's colors are chosen so |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5291 that the glyph is legible. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5292 if (face->background == f->output_data.mac->cursor_pixel) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5293 xgcv.background = xgcv.foreground = face->foreground; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5294 else |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5295 xgcv.background = xgcv.foreground = f->output_data.mac->cursor_pixel; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
5296 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5297 if (gc) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5298 XChangeGC (dpy, gc, mask, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5299 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5300 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5301 gc = XCreateGC (dpy, window, mask, &xgcv); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5302 FRAME_MAC_DISPLAY_INFO (f)->scratch_cursor_gc = gc; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5303 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5304 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5305 if (width < 0) |
47138
4a0541418bc5
(x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents:
47030
diff
changeset
|
5306 width = FRAME_CURSOR_WIDTH (f); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5307 width = min (cursor_glyph->pixel_width, width); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5308 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5309 w->phys_cursor_width = width; |
58403
c936fa56eb60
(x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents:
57783
diff
changeset
|
5310 x_clip_to_row (w, row, TEXT_AREA, gc); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5311 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5312 if (kind == BAR_CURSOR) |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5313 mac_fill_rectangle (f, gc, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5314 WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x), |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5315 WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y), |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5316 width, row->height); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5317 else |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5318 mac_fill_rectangle (f, gc, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5319 WINDOW_TEXT_TO_FRAME_PIXEL_X (w, w->phys_cursor.x), |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5320 WINDOW_TO_FRAME_PIXEL_Y (w, w->phys_cursor.y + |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5321 row->height - width), |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5322 cursor_glyph->pixel_width, |
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5323 width); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5324 |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
5325 mac_reset_clip_rectangles (dpy, gc); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5326 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5327 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5328 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5329 |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5330 /* RIF: Define cursor CURSOR on frame F. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5331 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5332 static void |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5333 mac_define_frame_cursor (f, cursor) |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5334 struct frame *f; |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5335 Cursor cursor; |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5336 { |
68770
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
5337 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
5338 |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
5339 if (dpyinfo->x_focus_frame == f) |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
5340 SetThemeCursor (cursor); |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5341 } |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5342 |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5343 |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5344 /* RIF: Clear area on frame F. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5345 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5346 static void |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5347 mac_clear_frame_area (f, x, y, width, height) |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5348 struct frame *f; |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5349 int x, y, width, height; |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5350 { |
66110
479c8c41d179
(MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66080
diff
changeset
|
5351 mac_clear_area (f, x, y, width, height); |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5352 } |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5353 |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5354 |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5355 /* RIF: Draw cursor on window W. */ |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5356 |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5357 static void |
50243
3fb54e5a7201
(struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents:
50222
diff
changeset
|
5358 mac_draw_window_cursor (w, glyph_row, x, y, cursor_type, cursor_width, on_p, active_p) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5359 struct window *w; |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5360 struct glyph_row *glyph_row; |
50243
3fb54e5a7201
(struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents:
50222
diff
changeset
|
5361 int x, y; |
3fb54e5a7201
(struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents:
50222
diff
changeset
|
5362 int cursor_type, cursor_width; |
3fb54e5a7201
(struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents:
50222
diff
changeset
|
5363 int on_p, active_p; |
3fb54e5a7201
(struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents:
50222
diff
changeset
|
5364 { |
3fb54e5a7201
(struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents:
50222
diff
changeset
|
5365 if (on_p) |
3fb54e5a7201
(struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents:
50222
diff
changeset
|
5366 { |
3fb54e5a7201
(struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents:
50222
diff
changeset
|
5367 w->phys_cursor_type = cursor_type; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5368 w->phys_cursor_on_p = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5369 |
53606
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
5370 if (glyph_row->exact_window_width_line_p |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
5371 && w->phys_cursor.hpos >= glyph_row->used[TEXT_AREA]) |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
5372 { |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
5373 glyph_row->cursor_in_fringe_p = 1; |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
5374 draw_fringe_bitmap (w, glyph_row, 0); |
96c29ac603e8
(x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents:
53579
diff
changeset
|
5375 } |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5376 else |
50243
3fb54e5a7201
(struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents:
50222
diff
changeset
|
5377 switch (cursor_type) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5378 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5379 case HOLLOW_BOX_CURSOR: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5380 x_draw_hollow_cursor (w, glyph_row); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5381 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5382 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5383 case FILLED_BOX_CURSOR: |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
5384 draw_phys_cursor_glyph (w, glyph_row, DRAW_CURSOR); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5385 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5386 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5387 case BAR_CURSOR: |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5388 x_draw_bar_cursor (w, glyph_row, cursor_width, BAR_CURSOR); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5389 break; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5390 |
47138
4a0541418bc5
(x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents:
47030
diff
changeset
|
5391 case HBAR_CURSOR: |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5392 x_draw_bar_cursor (w, glyph_row, cursor_width, HBAR_CURSOR); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5393 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5394 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5395 case NO_CURSOR: |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
5396 w->phys_cursor_width = 0; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5397 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5398 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5399 default: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5400 abort (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5401 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5402 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5403 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5404 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5405 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5406 /* Icons. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5407 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5408 #if 0 /* MAC_TODO: no icon support yet. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5409 int |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5410 x_bitmap_icon (f, icon) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5411 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5412 Lisp_Object icon; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5413 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5414 HANDLE hicon; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5415 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5416 if (FRAME_W32_WINDOW (f) == 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5417 return 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5418 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5419 if (NILP (icon)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5420 hicon = LoadIcon (hinst, EMACS_CLASS); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5421 else if (STRINGP (icon)) |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46169
diff
changeset
|
5422 hicon = LoadImage (NULL, (LPCTSTR) SDATA (icon), IMAGE_ICON, 0, 0, |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5423 LR_DEFAULTSIZE | LR_LOADFROMFILE); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5424 else if (SYMBOLP (icon)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5425 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5426 LPCTSTR name; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5427 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5428 if (EQ (icon, intern ("application"))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5429 name = (LPCTSTR) IDI_APPLICATION; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5430 else if (EQ (icon, intern ("hand"))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5431 name = (LPCTSTR) IDI_HAND; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5432 else if (EQ (icon, intern ("question"))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5433 name = (LPCTSTR) IDI_QUESTION; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5434 else if (EQ (icon, intern ("exclamation"))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5435 name = (LPCTSTR) IDI_EXCLAMATION; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5436 else if (EQ (icon, intern ("asterisk"))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5437 name = (LPCTSTR) IDI_ASTERISK; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5438 else if (EQ (icon, intern ("winlogo"))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5439 name = (LPCTSTR) IDI_WINLOGO; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5440 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5441 return 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5442 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5443 hicon = LoadIcon (NULL, name); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5444 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5445 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5446 return 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5447 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5448 if (hicon == NULL) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5449 return 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5450 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5451 PostMessage (FRAME_W32_WINDOW (f), WM_SETICON, (WPARAM) ICON_BIG, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5452 (LPARAM) hicon); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5453 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5454 return 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5455 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5456 #endif /* MAC_TODO */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5457 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5458 /************************************************************************ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5459 Handling X errors |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5460 ************************************************************************/ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5461 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5462 /* Display Error Handling functions not used on W32. Listing them here |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5463 helps diff stay in step when comparing w32term.c with xterm.c. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5464 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5465 x_error_catcher (display, error) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5466 x_catch_errors (dpy) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5467 x_catch_errors_unwind (old_val) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5468 x_check_errors (dpy, format) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5469 x_had_errors_p (dpy) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5470 x_clear_errors (dpy) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5471 x_uncatch_errors (dpy, count) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5472 x_trace_wire () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5473 x_connection_signal (signalnum) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5474 x_connection_closed (dpy, error_message) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5475 x_error_quitter (display, error) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5476 x_error_handler (display, error) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5477 x_io_error_quitter (display) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5478 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5479 */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5480 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5481 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5482 /* Changing the font of the frame. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5483 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5484 /* Give frame F the font named FONTNAME as its default font, and |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5485 return the full name of that font. FONTNAME may be a wildcard |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5486 pattern; in that case, we choose some font that fits the pattern. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5487 The return value shows which font we chose. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5488 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5489 Lisp_Object |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5490 x_new_font (f, fontname) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5491 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5492 register char *fontname; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5493 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5494 struct font_info *fontp |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5495 = FS_LOAD_FONT (f, fontname); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5496 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5497 if (!fontp) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5498 return Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5499 |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5500 if (FRAME_FONT (f) == (XFontStruct *) (fontp->font)) |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5501 /* This font is already set in frame F. There's nothing more to |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5502 do. */ |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5503 return build_string (fontp->full_name); |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5504 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5505 FRAME_FONT (f) = (XFontStruct *) (fontp->font); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5506 FRAME_BASELINE_OFFSET (f) = fontp->baseline_offset; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5507 FRAME_FONTSET (f) = -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5508 |
59325
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
5509 FRAME_COLUMN_WIDTH (f) = fontp->average_width; |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
5510 FRAME_SPACE_WIDTH (f) = fontp->space_width; |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5511 FRAME_LINE_HEIGHT (f) = FONT_HEIGHT (FRAME_FONT (f)); |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5512 |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5513 compute_fringe_widths (f, 1); |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5514 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5515 /* Compute the scroll bar width in character columns. */ |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5516 if (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) > 0) |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5517 { |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5518 int wid = FRAME_COLUMN_WIDTH (f); |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
5519 FRAME_CONFIG_SCROLL_BAR_COLS (f) |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5520 = (FRAME_CONFIG_SCROLL_BAR_WIDTH (f) + wid-1) / wid; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5521 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5522 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5523 { |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5524 int wid = FRAME_COLUMN_WIDTH (f); |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5525 FRAME_CONFIG_SCROLL_BAR_COLS (f) = (14 + wid - 1) / wid; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5526 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5527 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5528 /* Now make the frame display the given font. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5529 if (FRAME_MAC_WINDOW (f) != 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5530 { |
45848 | 5531 XSetFont (FRAME_MAC_DISPLAY (f), f->output_data.mac->normal_gc, |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5532 FRAME_FONT (f)); |
45848 | 5533 XSetFont (FRAME_MAC_DISPLAY (f), f->output_data.mac->reverse_gc, |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5534 FRAME_FONT (f)); |
45848 | 5535 XSetFont (FRAME_MAC_DISPLAY (f), f->output_data.mac->cursor_gc, |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5536 FRAME_FONT (f)); |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5537 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
5538 /* Don't change the size of a tip frame; there's no point in |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
5539 doing it because it's done in Fx_show_tip, and it leads to |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
5540 problems because the tip frame has no widget. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5541 if (NILP (tip_frame) || XFRAME (tip_frame) != f) |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5542 x_set_window_size (f, 0, FRAME_COLS (f), FRAME_LINES (f)); |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5543 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5544 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5545 return build_string (fontp->full_name); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5546 } |
90248
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5547 |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5548 /* Give frame F the fontset named FONTSETNAME as its default fontset, |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5549 and return the full name of that fontset. FONTSETNAME may be a |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5550 wildcard pattern; in that case, we choose some fontset that fits |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5551 the pattern. FONTSETNAME may be a font name for ASCII characters; |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5552 in that case, we create a fontset from that font name. |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5553 |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5554 The return value shows which fontset we chose. |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5555 If FONTSETNAME specifies the default fontset, return Qt. |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5556 If an ASCII font in the specified fontset can't be loaded, return |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
5557 Qnil. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5558 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5559 Lisp_Object |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5560 x_new_fontset (f, fontsetname) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5561 struct frame *f; |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5562 Lisp_Object fontsetname; |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5563 { |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5564 int fontset = fs_query_fontset (fontsetname, 0); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5565 Lisp_Object result; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5566 |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5567 if (fontset > 0 && FRAME_FONTSET(f) == fontset) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5568 /* This fontset is already set in frame F. There's nothing more |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5569 to do. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5570 return fontset_name (fontset); |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5571 else if (fontset == 0) |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5572 /* The default fontset can't be the default font. */ |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5573 return Qt; |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5574 |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5575 if (fontset > 0) |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5576 result = x_new_font (f, (SDATA (fontset_ascii (fontset)))); |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5577 else |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5578 result = x_new_font (f, SDATA (fontsetname)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5579 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5580 if (!STRINGP (result)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5581 /* Can't load ASCII font. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5582 return Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5583 |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5584 if (fontset < 0) |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5585 fontset = new_fontset_from_font_name (result); |
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5586 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5587 /* Since x_new_font doesn't update any fontset information, do it now. */ |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
5588 FRAME_FONTSET (f) = fontset; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5589 |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
5590 return fontset_name (fontset); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5591 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5592 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5593 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5594 /*********************************************************************** |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5595 TODO: W32 Input Methods |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5596 ***********************************************************************/ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5597 /* Listing missing functions from xterm.c helps diff stay in step. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5598 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5599 xim_destroy_callback (xim, client_data, call_data) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5600 xim_open_dpy (dpyinfo, resource_name) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5601 struct xim_inst_t |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5602 xim_instantiate_callback (display, client_data, call_data) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5603 xim_initialize (dpyinfo, resource_name) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5604 xim_close_dpy (dpyinfo) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5605 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5606 */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5607 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5608 |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5609 void |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5610 mac_get_window_bounds (f, inner, outer) |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5611 struct frame *f; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5612 Rect *inner, *outer; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5613 { |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5614 #if TARGET_API_MAC_CARBON |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5615 GetWindowBounds (FRAME_MAC_WINDOW (f), kWindowContentRgn, inner); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5616 GetWindowBounds (FRAME_MAC_WINDOW (f), kWindowStructureRgn, outer); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5617 #else /* not TARGET_API_MAC_CARBON */ |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5618 RgnHandle region = NewRgn (); |
57373
38e45bf0128a
(x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents:
57357
diff
changeset
|
5619 |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5620 GetWindowRegion (FRAME_MAC_WINDOW (f), kWindowContentRgn, region); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5621 *inner = (*region)->rgnBBox; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5622 GetWindowRegion (FRAME_MAC_WINDOW (f), kWindowStructureRgn, region); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5623 *outer = (*region)->rgnBBox; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5624 DisposeRgn (region); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5625 #endif /* not TARGET_API_MAC_CARBON */ |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5626 } |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5627 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5628 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
5629 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5630 /* Calculate the absolute position in frame F |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5631 from its current recorded position values and gravity. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5632 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5633 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5634 x_calc_absolute_position (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5635 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5636 { |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5637 int width_diff = 0, height_diff = 0; |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5638 int flags = f->size_hint_flags; |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5639 Rect inner, outer; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5640 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5641 /* We have nothing to do if the current position |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5642 is already for the top-left corner. */ |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5643 if (! ((flags & XNegative) || (flags & YNegative))) |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5644 return; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5645 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5646 /* Find the offsets of the outside upper-left corner of |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5647 the inner window, with respect to the outer window. */ |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5648 mac_get_window_bounds (f, &inner, &outer); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5649 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5650 width_diff = (outer.right - outer.left) - (inner.right - inner.left); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5651 height_diff = (outer.bottom - outer.top) - (inner.bottom - inner.top); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5652 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5653 /* Treat negative positions as relative to the leftmost bottommost |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5654 position that fits on the screen. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5655 if (flags & XNegative) |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5656 f->left_pos = (FRAME_MAC_DISPLAY_INFO (f)->width |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5657 - width_diff |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5658 - FRAME_PIXEL_WIDTH (f) |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5659 + f->left_pos); |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5660 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5661 if (flags & YNegative) |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5662 f->top_pos = (FRAME_MAC_DISPLAY_INFO (f)->height |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5663 - height_diff |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5664 - FRAME_PIXEL_HEIGHT (f) |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5665 + f->top_pos); |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5666 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5667 /* The left_pos and top_pos |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5668 are now relative to the top and left screen edges, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5669 so the flags should correspond. */ |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5670 f->size_hint_flags &= ~ (XNegative | YNegative); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5671 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5672 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5673 /* CHANGE_GRAVITY is 1 when calling from Fset_frame_position, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5674 to really change the position, and 0 when calling from |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5675 x_make_frame_visible (in that case, XOFF and YOFF are the current |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5676 position values). It is -1 when calling from x_set_frame_parameters, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5677 which means, do adjust for borders but don't change the gravity. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5678 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5679 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5680 x_set_offset (f, xoff, yoff, change_gravity) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5681 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5682 register int xoff, yoff; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5683 int change_gravity; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5684 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5685 if (change_gravity > 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5686 { |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5687 f->top_pos = yoff; |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5688 f->left_pos = xoff; |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5689 f->size_hint_flags &= ~ (XNegative | YNegative); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5690 if (xoff < 0) |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5691 f->size_hint_flags |= XNegative; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5692 if (yoff < 0) |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5693 f->size_hint_flags |= YNegative; |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5694 f->win_gravity = NorthWestGravity; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5695 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5696 x_calc_absolute_position (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5697 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5698 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5699 x_wm_set_size_hint (f, (long) 0, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5700 |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5701 #if TARGET_API_MAC_CARBON |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5702 MoveWindowStructure (FRAME_MAC_WINDOW (f), f->left_pos, f->top_pos); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5703 /* If the title bar is completely outside the screen, adjust the |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5704 position. */ |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5705 ConstrainWindowToScreen (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn, |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5706 kWindowConstrainMoveRegardlessOfFit |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5707 | kWindowConstrainAllowPartial, NULL, NULL); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5708 x_real_positions (f, &f->left_pos, &f->top_pos); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5709 #else |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5710 { |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5711 Rect inner, outer, screen_rect, dummy; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5712 RgnHandle region = NewRgn (); |
57373
38e45bf0128a
(x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents:
57357
diff
changeset
|
5713 |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5714 mac_get_window_bounds (f, &inner, &outer); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5715 f->x_pixels_diff = inner.left - outer.left; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5716 f->y_pixels_diff = inner.top - outer.top; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5717 MoveWindow (FRAME_MAC_WINDOW (f), f->left_pos + f->x_pixels_diff, |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5718 f->top_pos + f->y_pixels_diff, false); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5719 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5720 /* If the title bar is completely outside the screen, adjust the |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5721 position. The variable `outer' holds the title bar rectangle. |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5722 The variable `inner' holds slightly smaller one than `outer', |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5723 so that the calculation of overlapping may not become too |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5724 strict. */ |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5725 GetWindowRegion (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn, region); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5726 outer = (*region)->rgnBBox; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5727 DisposeRgn (region); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5728 inner = outer; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5729 InsetRect (&inner, 8, 8); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5730 screen_rect = qd.screenBits.bounds; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5731 screen_rect.top += GetMBarHeight (); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5732 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5733 if (!SectRect (&inner, &screen_rect, &dummy)) |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5734 { |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5735 if (inner.right <= screen_rect.left) |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5736 f->left_pos = screen_rect.left; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5737 else if (inner.left >= screen_rect.right) |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5738 f->left_pos = screen_rect.right - (outer.right - outer.left); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5739 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5740 if (inner.bottom <= screen_rect.top) |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5741 f->top_pos = screen_rect.top; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5742 else if (inner.top >= screen_rect.bottom) |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5743 f->top_pos = screen_rect.bottom - (outer.bottom - outer.top); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5744 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5745 MoveWindow (FRAME_MAC_WINDOW (f), f->left_pos + f->x_pixels_diff, |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5746 f->top_pos + f->y_pixels_diff, false); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5747 } |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5748 } |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
5749 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5750 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5751 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5752 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5753 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5754 /* Call this to change the size of frame F's x-window. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5755 If CHANGE_GRAVITY is 1, we change to top-left-corner window gravity |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5756 for this size change and subsequent size changes. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5757 Otherwise we leave the window gravity unchanged. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5758 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5759 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5760 x_set_window_size (f, change_gravity, cols, rows) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5761 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5762 int change_gravity; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5763 int cols, rows; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5764 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5765 int pixelwidth, pixelheight; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
5766 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5767 BLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
5768 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5769 check_frame_size (f, &rows, &cols); |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5770 f->scroll_bar_actual_width |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5771 = FRAME_SCROLL_BAR_COLS (f) * FRAME_COLUMN_WIDTH (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5772 |
50097 | 5773 compute_fringe_widths (f, 0); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5774 |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5775 pixelwidth = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, cols); |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5776 pixelheight = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, rows); |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5777 |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5778 f->win_gravity = NorthWestGravity; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5779 x_wm_set_size_hint (f, (long) 0, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5780 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5781 SizeWindow (FRAME_MAC_WINDOW (f), pixelwidth, pixelheight, 0); |
60623
5a3fa411c713
(activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60611
diff
changeset
|
5782 #if TARGET_API_MAC_CARBON |
5a3fa411c713
(activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60611
diff
changeset
|
5783 if (f->output_data.mac->hourglass_control) |
5a3fa411c713
(activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60611
diff
changeset
|
5784 MoveControl (f->output_data.mac->hourglass_control, |
5a3fa411c713
(activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60611
diff
changeset
|
5785 pixelwidth - HOURGLASS_WIDTH, 0); |
5a3fa411c713
(activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60611
diff
changeset
|
5786 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5787 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5788 /* Now, strictly speaking, we can't be sure that this is accurate, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5789 but the window manager will get around to dealing with the size |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5790 change request eventually, and we'll hear how it went when the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5791 ConfigureNotify event gets here. |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
5792 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5793 We could just not bother storing any of this information here, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5794 and let the ConfigureNotify event set everything up, but that |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5795 might be kind of confusing to the Lisp code, since size changes |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5796 wouldn't be reported in the frame parameters until some random |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5797 point in the future when the ConfigureNotify event arrives. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5798 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5799 We pass 1 for DELAY since we can't run Lisp code inside of |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5800 a BLOCK_INPUT. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5801 change_frame_size (f, rows, cols, 0, 1, 0); |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5802 FRAME_PIXEL_WIDTH (f) = pixelwidth; |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5803 FRAME_PIXEL_HEIGHT (f) = pixelheight; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5804 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5805 /* We've set {FRAME,PIXEL}_{WIDTH,HEIGHT} to the values we hope to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5806 receive in the ConfigureNotify event; if we get what we asked |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5807 for, then the event won't cause the screen to become garbaged, so |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5808 we have to make sure to do it here. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5809 SET_FRAME_GARBAGED (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5810 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5811 XFlush (FRAME_X_DISPLAY (f)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5812 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5813 /* If cursor was outside the new size, mark it as off. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5814 mark_window_cursors_off (XWINDOW (f->root_window)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5815 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5816 /* Clear out any recollection of where the mouse highlighting was, |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
5817 since it might be in a place that's outside the new frame size. |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5818 Actually checking whether it is outside is a pain in the neck, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5819 so don't try--just let the highlighting be done afresh with new size. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5820 cancel_mouse_face (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5821 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5822 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5823 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5824 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5825 /* Mouse warping. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5826 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5827 void x_set_mouse_pixel_position (struct frame *f, int pix_x, int pix_y); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5828 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5829 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5830 x_set_mouse_position (f, x, y) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5831 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5832 int x, y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5833 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5834 int pix_x, pix_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5835 |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5836 pix_x = FRAME_COL_TO_PIXEL_X (f, x) + FRAME_COLUMN_WIDTH (f) / 2; |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5837 pix_y = FRAME_LINE_TO_PIXEL_Y (f, y) + FRAME_LINE_HEIGHT (f) / 2; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5838 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5839 if (pix_x < 0) pix_x = 0; |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5840 if (pix_x > FRAME_PIXEL_WIDTH (f)) pix_x = FRAME_PIXEL_WIDTH (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5841 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5842 if (pix_y < 0) pix_y = 0; |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
5843 if (pix_y > FRAME_PIXEL_HEIGHT (f)) pix_y = FRAME_PIXEL_HEIGHT (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5844 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5845 x_set_mouse_pixel_position (f, pix_x, pix_y); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5846 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5847 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5848 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5849 x_set_mouse_pixel_position (f, pix_x, pix_y) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5850 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5851 int pix_x, pix_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5852 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5853 #if 0 /* MAC_TODO: CursorDeviceMoveTo is non-Carbon */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5854 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5855 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5856 XWarpPointer (FRAME_X_DISPLAY (f), None, FRAME_X_WINDOW (f), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5857 0, 0, 0, 0, pix_x, pix_y); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5858 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5859 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5860 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5861 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5862 /* focus shifting, raising and lowering. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5863 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5864 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5865 x_focus_on_frame (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5866 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5867 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5868 #if 0 /* This proves to be unpleasant. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5869 x_raise_frame (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5870 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5871 #if 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5872 /* I don't think that the ICCCM allows programs to do things like this |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5873 without the interaction of the window manager. Whatever you end up |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5874 doing with this code, do it to x_unfocus_frame too. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5875 XSetInputFocus (FRAME_X_DISPLAY (f), FRAME_X_WINDOW (f), |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5876 RevertToPointerRoot, CurrentTime); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5877 #endif /* ! 0 */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5878 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5879 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5880 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5881 x_unfocus_frame (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5882 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5883 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5884 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5885 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5886 /* Raise frame F. */ |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
5887 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5888 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5889 x_raise_frame (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5890 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5891 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5892 if (f->async_visible) |
57425
0867872551d9
macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents:
57373
diff
changeset
|
5893 { |
0867872551d9
macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents:
57373
diff
changeset
|
5894 BLOCK_INPUT; |
68770
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
5895 BringToFront (FRAME_MAC_WINDOW (f)); |
57425
0867872551d9
macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents:
57373
diff
changeset
|
5896 UNBLOCK_INPUT; |
0867872551d9
macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents:
57373
diff
changeset
|
5897 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5898 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5899 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5900 /* Lower frame F. */ |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
5901 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5902 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5903 x_lower_frame (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5904 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5905 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5906 if (f->async_visible) |
57425
0867872551d9
macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents:
57373
diff
changeset
|
5907 { |
0867872551d9
macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents:
57373
diff
changeset
|
5908 BLOCK_INPUT; |
68770
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
5909 SendBehind (FRAME_MAC_WINDOW (f), NULL); |
57425
0867872551d9
macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents:
57373
diff
changeset
|
5910 UNBLOCK_INPUT; |
0867872551d9
macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents:
57373
diff
changeset
|
5911 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5912 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5913 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5914 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5915 XTframe_raise_lower (f, raise_flag) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5916 FRAME_PTR f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5917 int raise_flag; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5918 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5919 if (raise_flag) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5920 x_raise_frame (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5921 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5922 x_lower_frame (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5923 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5924 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5925 /* Change of visibility. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5926 |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5927 static void |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5928 mac_handle_visibility_change (f) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5929 struct frame *f; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5930 { |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5931 WindowPtr wp = FRAME_MAC_WINDOW (f); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5932 int visible = 0, iconified = 0; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5933 struct input_event buf; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5934 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5935 if (IsWindowVisible (wp)) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5936 if (IsWindowCollapsed (wp)) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5937 iconified = 1; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5938 else |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5939 visible = 1; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5940 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5941 if (!f->async_visible && visible) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5942 { |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5943 if (f->iconified) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5944 { |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5945 /* wait_reading_process_output will notice this and update |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5946 the frame's display structures. If we were made |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5947 invisible, we should not set garbaged, because that stops |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5948 redrawing on Update events. */ |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5949 SET_FRAME_GARBAGED (f); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5950 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5951 EVENT_INIT (buf); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5952 buf.kind = DEICONIFY_EVENT; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5953 XSETFRAME (buf.frame_or_window, f); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5954 kbd_buffer_store_event (&buf); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5955 } |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5956 else if (! NILP (Vframe_list) && ! NILP (XCDR (Vframe_list))) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5957 /* Force a redisplay sooner or later to update the |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5958 frame titles in case this is the second frame. */ |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5959 record_asynch_buffer_change (); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5960 } |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5961 else if (f->async_visible && !visible) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5962 if (iconified) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5963 { |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5964 EVENT_INIT (buf); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5965 buf.kind = ICONIFY_EVENT; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5966 XSETFRAME (buf.frame_or_window, f); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5967 kbd_buffer_store_event (&buf); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5968 } |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5969 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5970 f->async_visible = visible; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5971 f->async_iconified = iconified; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5972 } |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5973 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5974 /* This tries to wait until the frame is really visible. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5975 However, if the window manager asks the user where to position |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5976 the frame, this will return before the user finishes doing that. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5977 The frame will not actually be visible at that time, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5978 but it will become visible later when the window manager |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5979 finishes with it. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5980 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5981 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5982 x_make_frame_visible (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5983 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5984 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5985 Lisp_Object type; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5986 int original_top, original_left; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5987 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5988 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5989 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5990 if (! FRAME_VISIBLE_P (f)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5991 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5992 /* We test FRAME_GARBAGED_P here to make sure we don't |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5993 call x_set_offset a second time |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5994 if we get to x_make_frame_visible a second time |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5995 before the window gets really visible. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5996 if (! FRAME_ICONIFIED_P (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
5997 && ! f->output_data.mac->asked_for_visible) |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5998 #if TARGET_API_MAC_CARBON |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
5999 if (!(FRAME_SIZE_HINTS (f)->flags & (USPosition | PPosition))) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6000 { |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6001 struct frame *sf = SELECTED_FRAME (); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6002 if (!FRAME_MAC_P (sf)) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6003 RepositionWindow (FRAME_MAC_WINDOW (f), NULL, |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6004 kWindowCenterOnMainScreen); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6005 else |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6006 RepositionWindow (FRAME_MAC_WINDOW (f), |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6007 FRAME_MAC_WINDOW (sf), |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6008 #if MAC_OS_X_VERSION_MAX_ALLOWED >= 1020 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6009 kWindowCascadeStartAtParentWindowScreen |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6010 #else |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6011 kWindowCascadeOnParentWindowScreen |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6012 #endif |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6013 ); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6014 x_real_positions (f, &f->left_pos, &f->top_pos); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6015 } |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6016 else |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6017 #endif |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6018 x_set_offset (f, f->left_pos, f->top_pos, 0); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6019 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6020 f->output_data.mac->asked_for_visible = 1; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
6021 |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6022 CollapseWindow (FRAME_MAC_WINDOW (f), false); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6023 ShowWindow (FRAME_MAC_WINDOW (f)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6024 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6025 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6026 XFlush (FRAME_MAC_DISPLAY (f)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6027 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6028 /* Synchronize to ensure Emacs knows the frame is visible |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6029 before we do anything else. We do this loop with input not blocked |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6030 so that incoming events are handled. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6031 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6032 Lisp_Object frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6033 int count; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6034 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6035 /* This must come after we set COUNT. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6036 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6037 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6038 XSETFRAME (frame, f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6039 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6040 /* Wait until the frame is visible. Process X events until a |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6041 MapNotify event has been seen, or until we think we won't get a |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6042 MapNotify at all.. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6043 for (count = input_signal_count + 10; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6044 input_signal_count < count && !FRAME_VISIBLE_P (f);) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6045 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6046 /* Force processing of queued events. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6047 x_sync (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6048 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6049 /* Machines that do polling rather than SIGIO have been |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6050 observed to go into a busy-wait here. So we'll fake an |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6051 alarm signal to let the handler know that there's something |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6052 to be read. We used to raise a real alarm, but it seems |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6053 that the handler isn't always enabled here. This is |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6054 probably a bug. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6055 if (input_polling_used ()) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6056 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6057 /* It could be confusing if a real alarm arrives while |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6058 processing the fake one. Turn it off and let the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6059 handler reset it. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6060 extern void poll_for_input_1 P_ ((void)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6061 int old_poll_suppress_count = poll_suppress_count; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6062 poll_suppress_count = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6063 poll_for_input_1 (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6064 poll_suppress_count = old_poll_suppress_count; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6065 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6066 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6067 /* See if a MapNotify event has been processed. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6068 FRAME_SAMPLE_VISIBILITY (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6069 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6070 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6071 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6072 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6073 /* Change from mapped state to withdrawn state. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6074 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6075 /* Make the frame visible (mapped and not iconified). */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6076 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6077 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6078 x_make_frame_invisible (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6079 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6080 { |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6081 /* A deactivate event does not occur when the last visible frame is |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6082 made invisible. So if we clear the highlight here, it will not |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6083 be rehighlighted when it is made visible. */ |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6084 #if 0 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6085 /* Don't keep the highlight on an invisible frame. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6086 if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6087 FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame = 0; |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6088 #endif |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
6089 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6090 BLOCK_INPUT; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
6091 |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
6092 /* Before unmapping the window, update the WM_SIZE_HINTS property to claim |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
6093 that the current position of the window is user-specified, rather than |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
6094 program-specified, so that when the window is mapped again, it will be |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
6095 placed at the same location, without forcing the user to position it |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
6096 by hand again (they have already done that once for this window.) */ |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
6097 x_wm_set_size_hint (f, (long) 0, 1); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
6098 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6099 HideWindow (FRAME_MAC_WINDOW (f)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
6100 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6101 UNBLOCK_INPUT; |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6102 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6103 #if !USE_CARBON_EVENTS |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6104 mac_handle_visibility_change (f); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6105 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6106 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6107 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6108 /* Change window state from mapped to iconified. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6109 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6110 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6111 x_iconify_frame (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6112 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6113 { |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6114 OSErr err; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6115 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6116 /* A deactivate event does not occur when the last visible frame is |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6117 iconified. So if we clear the highlight here, it will not be |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6118 rehighlighted when it is deiconified. */ |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6119 #if 0 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6120 /* Don't keep the highlight on an invisible frame. */ |
46798 | 6121 if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f) |
6122 FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame = 0; | |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6123 #endif |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6124 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6125 if (f->async_iconified) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6126 return; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6127 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6128 BLOCK_INPUT; |
46798 | 6129 |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6130 FRAME_SAMPLE_VISIBILITY (f); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6131 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6132 if (! FRAME_VISIBLE_P (f)) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6133 ShowWindow (FRAME_MAC_WINDOW (f)); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6134 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6135 err = CollapseWindow (FRAME_MAC_WINDOW (f), true); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
6136 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6137 UNBLOCK_INPUT; |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6138 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6139 if (err != noErr) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6140 error ("Can't notify window manager of iconification"); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6141 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6142 #if !USE_CARBON_EVENTS |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6143 mac_handle_visibility_change (f); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
6144 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6145 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6146 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6147 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6148 /* Free X resources of frame F. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6149 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6150 void |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6151 x_free_frame_resources (f) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6152 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6153 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6154 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
6155 WindowPtr wp = FRAME_MAC_WINDOW (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6156 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6157 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6158 |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
6159 if (wp != tip_window) |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
6160 remove_window_handler (wp); |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
6161 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
6162 DisposeWindow (wp); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
6163 if (wp == tip_window) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
6164 /* Neither WaitNextEvent nor ReceiveNextEvent receives `window |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
6165 closed' event. So we reset tip_window here. */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
6166 tip_window = NULL; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6167 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6168 free_frame_menubar (f); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6169 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6170 if (FRAME_FACE_CACHE (f)) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6171 free_frame_faces (f); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6172 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6173 x_free_gcs (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6174 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6175 if (FRAME_SIZE_HINTS (f)) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6176 xfree (FRAME_SIZE_HINTS (f)); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6177 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6178 xfree (f->output_data.mac); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6179 f->output_data.mac = NULL; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6180 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6181 if (f == dpyinfo->x_focus_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6182 dpyinfo->x_focus_frame = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6183 if (f == dpyinfo->x_focus_event_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6184 dpyinfo->x_focus_event_frame = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6185 if (f == dpyinfo->x_highlight_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6186 dpyinfo->x_highlight_frame = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6187 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6188 if (f == dpyinfo->mouse_face_mouse_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6189 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6190 dpyinfo->mouse_face_beg_row |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6191 = dpyinfo->mouse_face_beg_col = -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6192 dpyinfo->mouse_face_end_row |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6193 = dpyinfo->mouse_face_end_col = -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6194 dpyinfo->mouse_face_window = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6195 dpyinfo->mouse_face_deferred_gc = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6196 dpyinfo->mouse_face_mouse_frame = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6197 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6198 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6199 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6200 } |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6201 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6202 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6203 /* Destroy the X window of frame F. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6204 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6205 void |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6206 x_destroy_window (f) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6207 struct frame *f; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6208 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6209 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6210 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6211 x_free_frame_resources (f); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6212 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6213 dpyinfo->reference_count--; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6214 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6215 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6216 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6217 /* Setting window manager hints. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6218 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6219 /* Set the normal size hints for the window manager, for frame F. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6220 FLAGS is the flags word to use--or 0 meaning preserve the flags |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6221 that the window now has. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6222 If USER_POSITION is nonzero, we set the USPosition |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6223 flag (this is useful when FLAGS is 0). */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6224 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6225 x_wm_set_size_hint (f, flags, user_position) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6226 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6227 long flags; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6228 int user_position; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6229 { |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6230 int base_width, base_height, width_inc, height_inc; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6231 int min_rows = 0, min_cols = 0; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6232 XSizeHints *size_hints; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6233 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6234 base_width = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, 0); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6235 base_height = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, 0); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6236 width_inc = FRAME_COLUMN_WIDTH (f); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6237 height_inc = FRAME_LINE_HEIGHT (f); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6238 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6239 check_frame_size (f, &min_rows, &min_cols); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6240 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6241 size_hints = FRAME_SIZE_HINTS (f); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6242 if (size_hints == NULL) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6243 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6244 size_hints = FRAME_SIZE_HINTS (f) = xmalloc (sizeof (XSizeHints)); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6245 bzero (size_hints, sizeof (XSizeHints)); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6246 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6247 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6248 size_hints->flags |= PResizeInc | PMinSize | PBaseSize ; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6249 size_hints->width_inc = width_inc; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6250 size_hints->height_inc = height_inc; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6251 size_hints->min_width = base_width + min_cols * width_inc; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6252 size_hints->min_height = base_height + min_rows * height_inc; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6253 size_hints->base_width = base_width; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6254 size_hints->base_height = base_height; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6255 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6256 if (flags) |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6257 size_hints->flags = flags; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6258 else if (user_position) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6259 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6260 size_hints->flags &= ~ PPosition; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6261 size_hints->flags |= USPosition; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
6262 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6263 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6264 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6265 #if 0 /* MAC_TODO: hide application instead of iconify? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6266 /* Used for IconicState or NormalState */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6267 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6268 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6269 x_wm_set_window_state (f, state) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6270 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6271 int state; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6272 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6273 #ifdef USE_X_TOOLKIT |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6274 Arg al[1]; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6275 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6276 XtSetArg (al[0], XtNinitialState, state); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6277 XtSetValues (f->output_data.x->widget, al, 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6278 #else /* not USE_X_TOOLKIT */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6279 Window window = FRAME_X_WINDOW (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6280 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6281 f->output_data.x->wm_hints.flags |= StateHint; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6282 f->output_data.x->wm_hints.initial_state = state; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6283 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6284 XSetWMHints (FRAME_X_DISPLAY (f), window, &f->output_data.x->wm_hints); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6285 #endif /* not USE_X_TOOLKIT */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6286 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6287 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6288 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6289 x_wm_set_icon_pixmap (f, pixmap_id) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6290 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6291 int pixmap_id; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6292 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6293 Pixmap icon_pixmap; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6294 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6295 #ifndef USE_X_TOOLKIT |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6296 Window window = FRAME_X_WINDOW (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6297 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6298 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6299 if (pixmap_id > 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6300 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6301 icon_pixmap = x_bitmap_pixmap (f, pixmap_id); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6302 f->output_data.x->wm_hints.icon_pixmap = icon_pixmap; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6303 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6304 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6305 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6306 /* It seems there is no way to turn off use of an icon pixmap. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6307 The following line does it, only if no icon has yet been created, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6308 for some window managers. But with mwm it crashes. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6309 Some people say it should clear the IconPixmapHint bit in this case, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6310 but that doesn't work, and the X consortium said it isn't the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6311 right thing at all. Since there is no way to win, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6312 best to explicitly give up. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6313 #if 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6314 f->output_data.x->wm_hints.icon_pixmap = None; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6315 #else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6316 return; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6317 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6318 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6319 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6320 #ifdef USE_X_TOOLKIT /* same as in x_wm_set_window_state. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6321 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6322 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6323 Arg al[1]; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6324 XtSetArg (al[0], XtNiconPixmap, icon_pixmap); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6325 XtSetValues (f->output_data.x->widget, al, 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6326 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6327 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6328 #else /* not USE_X_TOOLKIT */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
6329 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6330 f->output_data.x->wm_hints.flags |= IconPixmapHint; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6331 XSetWMHints (FRAME_X_DISPLAY (f), window, &f->output_data.x->wm_hints); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6332 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6333 #endif /* not USE_X_TOOLKIT */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6334 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6335 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6336 #endif /* MAC_TODO */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6337 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6338 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6339 x_wm_set_icon_position (f, icon_x, icon_y) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6340 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6341 int icon_x, icon_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6342 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6343 #if 0 /* MAC_TODO: no icons on Mac */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6344 #ifdef USE_X_TOOLKIT |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6345 Window window = XtWindow (f->output_data.x->widget); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6346 #else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6347 Window window = FRAME_X_WINDOW (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6348 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6349 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6350 f->output_data.x->wm_hints.flags |= IconPositionHint; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6351 f->output_data.x->wm_hints.icon_x = icon_x; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6352 f->output_data.x->wm_hints.icon_y = icon_y; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6353 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6354 XSetWMHints (FRAME_X_DISPLAY (f), window, &f->output_data.x->wm_hints); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6355 #endif /* MAC_TODO */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6356 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6357 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6358 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6359 /*********************************************************************** |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6360 XLFD Pattern Match |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6361 ***********************************************************************/ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6362 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6363 /* An XLFD pattern is divided into blocks delimited by '*'. This |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6364 structure holds information for each block. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6365 struct xlfdpat_block |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6366 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6367 /* Length of the pattern string in this block. Non-zero except for |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6368 the first and the last blocks. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6369 int len; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6370 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6371 /* Pattern string except the last character in this block. The last |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6372 character is replaced with NUL in order to use it as a |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6373 sentinel. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6374 unsigned char *pattern; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6375 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6376 /* Last character of the pattern string. Must not be '?'. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6377 unsigned char last_char; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6378 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6379 /* One of the tables for the Boyer-Moore string search. It |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6380 specifies the number of positions to proceed for each character |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6381 with which the match fails. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6382 int skip[256]; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6383 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6384 /* The skip value for the last character in the above `skip' is |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6385 assigned to `infinity' in order to simplify a loop condition. |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6386 The original value is saved here. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6387 int last_char_skip; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6388 }; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6389 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6390 struct xlfdpat |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6391 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6392 /* Normalized pattern string. "Normalized" means that capital |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6393 letters are lowered, blocks are not empty except the first and |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6394 the last ones, and trailing '?'s in a block that is not the last |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6395 one are moved to the next one. The last character in each block |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6396 is replaced with NUL. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6397 unsigned char *buf; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6398 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6399 /* Number of characters except '*'s and trailing '?'s in the |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6400 normalized pattern string. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6401 int nchars; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6402 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6403 /* Number of trailing '?'s in the normalized pattern string. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6404 int trailing_anychars; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6405 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6406 /* Number of blocks and information for each block. The latter is |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6407 NULL if the pattern is exact (no '*' or '?' in it). */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6408 int nblocks; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6409 struct xlfdpat_block *blocks; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6410 }; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6411 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6412 static void |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6413 xlfdpat_destroy (pat) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6414 struct xlfdpat *pat; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6415 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6416 if (pat) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6417 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6418 if (pat->buf) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6419 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6420 if (pat->blocks) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6421 xfree (pat->blocks); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6422 xfree (pat->buf); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6423 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6424 xfree (pat); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6425 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6426 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6427 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6428 static struct xlfdpat * |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6429 xlfdpat_create (pattern) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6430 char *pattern; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6431 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6432 struct xlfdpat *pat; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6433 int nblocks, i, skip; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6434 unsigned char last_char, *p, *q, *anychar_head; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6435 struct xlfdpat_block *blk; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6436 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6437 pat = xmalloc (sizeof (struct xlfdpat)); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6438 if (pat == NULL) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6439 goto error; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6440 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6441 pat->buf = xmalloc (strlen (pattern) + 1); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6442 if (pat->buf == NULL) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6443 goto error; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6444 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6445 /* Normalize the pattern string and store it to `pat->buf'. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6446 nblocks = 0; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6447 anychar_head = NULL; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6448 q = pat->buf; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6449 last_char = '\0'; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6450 for (p = pattern; *p; p++) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6451 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6452 unsigned char c = *p; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6453 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6454 if (c == '*') |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6455 if (last_char == '*') |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6456 /* ...a** -> ...a* */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6457 continue; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6458 else |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6459 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6460 if (last_char == '?') |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6461 if (anychar_head > pat->buf && *(anychar_head - 1) == '*') |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6462 /* ...*??* -> ...*?? */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6463 continue; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6464 else |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6465 /* ...a??* -> ...a*?? */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6466 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6467 *anychar_head++ = '*'; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6468 c = '?'; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6469 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6470 nblocks++; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6471 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6472 else if (c == '?') |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6473 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6474 if (last_char != '?') |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6475 anychar_head = q; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6476 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6477 else |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6478 /* On Mac OS X 10.3, tolower also converts non-ASCII |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6479 characters for some locales. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6480 if (isascii (c)) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6481 c = tolower (c); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6482 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6483 *q++ = last_char = c; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6484 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6485 *q = '\0'; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6486 nblocks++; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6487 pat->nblocks = nblocks; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6488 if (last_char != '?') |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6489 pat->trailing_anychars = 0; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6490 else |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6491 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6492 pat->trailing_anychars = q - anychar_head; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6493 q = anychar_head; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6494 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6495 pat->nchars = q - pat->buf - (nblocks - 1); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6496 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6497 if (anychar_head == NULL && nblocks == 1) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6498 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6499 /* The pattern is exact. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6500 pat->blocks = NULL; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6501 return pat; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6502 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6503 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6504 pat->blocks = xmalloc (sizeof (struct xlfdpat_block) * nblocks); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6505 if (pat->blocks == NULL) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6506 goto error; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6507 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6508 /* Divide the normalized pattern into blocks. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6509 p = pat->buf; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6510 for (blk = pat->blocks; blk < pat->blocks + nblocks - 1; blk++) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6511 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6512 blk->pattern = p; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6513 while (*p != '*') |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6514 p++; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6515 blk->len = p - blk->pattern; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6516 p++; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6517 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6518 blk->pattern = p; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6519 blk->len = q - blk->pattern; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6520 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6521 /* Setup a table for the Boyer-Moore string search. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6522 for (blk = pat->blocks; blk < pat->blocks + nblocks; blk++) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6523 if (blk->len != 0) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6524 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6525 blk->last_char = blk->pattern[blk->len - 1]; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6526 blk->pattern[blk->len - 1] = '\0'; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6527 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6528 for (skip = 1; skip < blk->len; skip++) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6529 if (blk->pattern[blk->len - skip - 1] == '?') |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6530 break; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6531 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6532 for (i = 0; i < 256; i++) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6533 blk->skip[i] = skip; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6534 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6535 p = blk->pattern + (blk->len - skip); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6536 while (--skip > 0) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6537 blk->skip[*p++] = skip; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6538 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6539 blk->last_char_skip = blk->skip[blk->last_char]; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6540 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6541 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6542 return pat; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6543 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6544 error: |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6545 xlfdpat_destroy (pat); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6546 return NULL; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6547 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6548 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6549 static INLINE int |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6550 xlfdpat_exact_p (pat) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6551 struct xlfdpat *pat; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6552 { |
65643
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
6553 return pat->blocks == NULL; |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6554 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6555 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6556 /* Return the first string in STRING + 0, ..., STRING + START_MAX such |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6557 that the pattern in *BLK matches with its prefix. Return NULL |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6558 there is no such strings. STRING must be lowered in advance. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6559 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6560 static char * |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6561 xlfdpat_block_match_1 (blk, string, start_max) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6562 struct xlfdpat_block *blk; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6563 unsigned char *string; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6564 int start_max; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6565 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6566 int start, infinity; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6567 unsigned char *p, *s; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6568 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6569 xassert (blk->len > 0); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6570 xassert (start_max + blk->len <= strlen (string)); |
65643
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
6571 xassert (blk->last_char != '?'); |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6572 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6573 /* See the comments in the function `boyer_moore' (search.c) for the |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6574 use of `infinity'. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6575 infinity = start_max + blk->len + 1; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6576 blk->skip[blk->last_char] = infinity; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6577 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6578 start = 0; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6579 do |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6580 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6581 /* Check the last character of the pattern. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6582 s = string + blk->len - 1; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6583 do |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6584 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6585 start += blk->skip[*(s + start)]; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6586 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6587 while (start <= start_max); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6588 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6589 if (start < infinity) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6590 /* Couldn't find the last character. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6591 return NULL; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6592 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6593 /* No less than `infinity' means we could find the last |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6594 character at `s[start - infinity]'. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6595 start -= infinity; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6596 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6597 /* Check the remaining characters. We prefer making no-'?' |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6598 cases faster because the use of '?' is really rare. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6599 p = blk->pattern; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6600 s = string + start; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6601 do |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6602 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6603 while (*p++ == *s++) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6604 ; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6605 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6606 while (*(p - 1) == '?'); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6607 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6608 if (*(p - 1) == '\0') |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6609 /* Matched. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6610 return string + start; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6611 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6612 /* Didn't match. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6613 start += blk->last_char_skip; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6614 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6615 while (start <= start_max); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6616 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6617 return NULL; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6618 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6619 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6620 #define xlfdpat_block_match(b, s, m) \ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6621 ((b)->len == 1 ? memchr ((s), (b)->last_char, (m) + 1) \ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6622 : xlfdpat_block_match_1 (b, s, m)) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6623 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6624 /* Check if XLFD pattern PAT, which is generated by `xfldpat_create', |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6625 matches with STRING. STRING must be lowered in advance. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6626 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6627 static int |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6628 xlfdpat_match (pat, string) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6629 struct xlfdpat *pat; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6630 unsigned char *string; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6631 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6632 int str_len, nblocks, i, start_max; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6633 struct xlfdpat_block *blk; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6634 unsigned char *s; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6635 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6636 xassert (pat->nblocks > 0); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6637 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6638 if (xlfdpat_exact_p (pat)) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6639 return strcmp (pat->buf, string) == 0; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6640 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6641 /* The number of the characters in the string must not be smaller |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6642 than that in the pattern. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6643 str_len = strlen (string); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6644 if (str_len < pat->nchars + pat->trailing_anychars) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6645 return 0; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6646 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6647 /* Chop off the trailing '?'s. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6648 str_len -= pat->trailing_anychars; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6649 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6650 /* The last block. When it is non-empty, it must match at the end |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6651 of the string. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6652 nblocks = pat->nblocks; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6653 blk = pat->blocks + (nblocks - 1); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6654 if (nblocks == 1) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6655 /* The last block is also the first one. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6656 return (str_len == blk->len |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6657 && (blk->len == 0 || xlfdpat_block_match (blk, string, 0))); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6658 else if (blk->len != 0) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6659 if (!xlfdpat_block_match (blk, string + (str_len - blk->len), 0)) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6660 return 0; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6661 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6662 /* The first block. When it is non-empty, it must match at the |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6663 beginning of the string. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6664 blk = pat->blocks; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6665 if (blk->len != 0) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6666 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6667 s = xlfdpat_block_match (blk, string, 0); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6668 if (s == NULL) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6669 return 0; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6670 string = s + blk->len; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6671 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6672 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6673 /* The rest of the blocks. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6674 start_max = str_len - pat->nchars; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6675 for (i = 1, blk++; i < nblocks - 1; i++, blk++) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6676 { |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6677 s = xlfdpat_block_match (blk, string, start_max); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6678 if (s == NULL) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6679 return 0; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6680 start_max -= s - string; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6681 string = s + blk->len; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6682 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6683 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6684 return 1; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6685 } |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6686 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6687 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6688 /*********************************************************************** |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6689 Fonts |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6690 ***********************************************************************/ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6691 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6692 /* Return a pointer to struct font_info of font FONT_IDX of frame F. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6693 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6694 struct font_info * |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6695 x_get_font_info (f, font_idx) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6696 FRAME_PTR f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6697 int font_idx; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6698 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6699 return (FRAME_MAC_FONT_TABLE (f) + font_idx); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6700 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6701 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6702 /* the global font name table */ |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
6703 static char **font_name_table = NULL; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
6704 static int font_name_table_size = 0; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
6705 static int font_name_count = 0; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6706 |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6707 /* Alist linking font family names to Font Manager font family |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6708 references (which can also be used as QuickDraw font IDs). We use |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6709 an alist because hash tables are not ready when the terminal frame |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6710 for Mac OS Classic is created. */ |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6711 static Lisp_Object fm_font_family_alist; |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6712 #if USE_ATSUI |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6713 /* Hash table linking font family names to ATSU font IDs. */ |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6714 static Lisp_Object atsu_font_id_hash; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6715 #endif |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6716 |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6717 /* Alist linking character set strings to Mac text encoding and Emacs |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6718 coding system. */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6719 static Lisp_Object Vmac_charset_info_alist; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6720 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6721 static Lisp_Object |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6722 create_text_encoding_info_alist () |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6723 { |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6724 Lisp_Object result = Qnil, rest; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6725 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6726 for (rest = Vmac_charset_info_alist; CONSP (rest); rest = XCDR (rest)) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6727 { |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6728 Lisp_Object charset_info = XCAR (rest); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6729 Lisp_Object charset, coding_system, text_encoding; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6730 Lisp_Object existing_info; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6731 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6732 if (!(CONSP (charset_info) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6733 && STRINGP (charset = XCAR (charset_info)) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6734 && CONSP (XCDR (charset_info)) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6735 && INTEGERP (text_encoding = XCAR (XCDR (charset_info))) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6736 && CONSP (XCDR (XCDR (charset_info))) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6737 && SYMBOLP (coding_system = XCAR (XCDR (XCDR (charset_info)))))) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6738 continue; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6739 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6740 existing_info = assq_no_quit (text_encoding, result); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6741 if (NILP (existing_info)) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6742 result = Fcons (list3 (text_encoding, coding_system, charset), |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6743 result); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6744 else |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6745 if (NILP (Fmember (charset, XCDR (XCDR (existing_info))))) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6746 XSETCDR (XCDR (existing_info), |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6747 Fcons (charset, XCDR (XCDR (existing_info)))); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6748 } |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6749 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6750 return result; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6751 } |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6752 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6753 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6754 static void |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6755 decode_mac_font_name (name, size, coding_system) |
58634
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
6756 char *name; |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
6757 int size; |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6758 Lisp_Object coding_system; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6759 { |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6760 struct coding_system coding; |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6761 char *buf, *p; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6762 |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6763 if (!NILP (coding_system) && !NILP (Fcoding_system_p (coding_system))) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6764 { |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6765 for (p = name; *p; p++) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6766 if (!isascii (*p) || iscntrl (*p)) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6767 break; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6768 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6769 if (*p) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6770 { |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6771 setup_coding_system (coding_system, &coding); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6772 coding.src_multibyte = 0; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6773 coding.dst_multibyte = 1; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6774 coding.mode |= CODING_MODE_LAST_BLOCK; |
90248
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
6775 coding.dst_bytes = size; |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
6776 coding.destination = (unsigned char *) alloca (coding.dst_bytes); |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
6777 |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
6778 decode_coding_c_string (&coding, name, strlen (name), Qnil); |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
6779 bcopy (coding.destination, name, min (coding.produced, size)); |
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
6780 name[min (coding.produced, size)] = '\0'; |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6781 } |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6782 } |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6783 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6784 /* If there's just one occurrence of '-' in the family name, it is |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6785 replaced with '_'. (More than one occurrence of '-' means a |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6786 "FOUNDRY-FAMILY-CHARSET"-style name.) */ |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6787 p = strchr (name, '-'); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6788 if (p && strchr (p + 1, '-') == NULL) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6789 *p = '_'; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6790 |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6791 for (p = name; *p; p++) |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6792 /* On Mac OS X 10.3, tolower also converts non-ASCII characters |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6793 for some locales. */ |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6794 if (isascii (*p)) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6795 *p = tolower (*p); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
6796 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6797 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6798 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6799 static char * |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6800 mac_to_x_fontname (name, size, style, charset) |
58634
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
6801 char *name; |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
6802 int size; |
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
6803 Style style; |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6804 char *charset; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6805 { |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
6806 Str31 foundry, cs; |
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
6807 Str255 family; |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6808 char xf[256], *result; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6809 unsigned char *p; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6810 |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
6811 if (sscanf (name, "%31[^-]-%255[^-]-%31s", foundry, family, cs) == 3) |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6812 charset = cs; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6813 else |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6814 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6815 strcpy(foundry, "Apple"); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6816 strcpy(family, name); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6817 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6818 |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
6819 sprintf (xf, "%s-%c-normal--%d-%d-%d-%d-m-%d-%s", |
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
6820 style & bold ? "bold" : "medium", style & italic ? 'i' : 'r', |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
6821 size, size * 10, size ? 72 : 0, size ? 72 : 0, size * 10, charset); |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
6822 |
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
6823 result = xmalloc (strlen (foundry) + strlen (family) + strlen (xf) + 3 + 1); |
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
6824 sprintf (result, "-%s-%s-%s", foundry, family, xf); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6825 for (p = result; *p; p++) |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6826 /* On Mac OS X 10.3, tolower also converts non-ASCII characters |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6827 for some locales. */ |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6828 if (isascii (*p)) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6829 *p = tolower (*p); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6830 return result; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6831 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
6832 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6833 |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6834 /* Parse fully-specified and instantiated X11 font spec XF, and store |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6835 the results to FAMILY, *SIZE, *STYLE, and CHARSET. Return 1 if the |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6836 parsing succeeded, and 0 otherwise. For FAMILY and CHARSET, the |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6837 caller must allocate at least 256 and 32 bytes respectively. For |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6838 ordinary Mac fonts, the value stored to FAMILY should just be their |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6839 names, like "monaco", "Taipei", etc. Fonts converted from the GNU |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6840 intlfonts collection contain their charset designation in their |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6841 names, like "ETL-Fixed-iso8859-1", "ETL-Fixed-koi8-r", etc. Both |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6842 types of font names are handled accordingly. */ |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6843 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6844 const int kDefaultFontSize = 12; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6845 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6846 static int |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6847 parse_x_font_name (xf, family, size, style, charset) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6848 char *xf, *family; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6849 int *size; |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6850 Style *style; |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6851 char *charset; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6852 { |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6853 Str31 foundry, weight; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6854 int point_size, avgwidth; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6855 char slant[2], *p; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6856 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6857 if (sscanf (xf, "-%31[^-]-%255[^-]-%31[^-]-%1[^-]-%*[^-]-%*[^-]-%d-%d-%*[^-]-%*[^-]-%*c-%d-%31s", |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6858 foundry, family, weight, slant, size, |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6859 &point_size, &avgwidth, charset) != 8 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6860 && sscanf (xf, "-%31[^-]-%255[^-]-%31[^-]-%1[^-]-%*[^-]--%d-%d-%*[^-]-%*[^-]-%*c-%d-%31s", |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6861 foundry, family, weight, slant, size, |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6862 &point_size, &avgwidth, charset) != 8) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6863 return 0; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6864 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6865 if (*size == 0) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6866 { |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6867 if (point_size > 0) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6868 *size = point_size / 10; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6869 else if (avgwidth > 0) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6870 *size = avgwidth / 10; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6871 } |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6872 if (*size == 0) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6873 *size = kDefaultFontSize; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6874 |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6875 *style = normal; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6876 if (strcmp (weight, "bold") == 0) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6877 *style |= bold; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6878 if (*slant == 'i') |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6879 *style |= italic; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6880 |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6881 if (NILP (Fassoc (build_string (charset), Vmac_charset_info_alist))) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6882 { |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6883 int foundry_len = strlen (foundry), family_len = strlen (family); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6884 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6885 if (foundry_len + family_len + strlen (charset) + 2 < sizeof (Str255)) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6886 { |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6887 /* Like sprintf (family, "%s-%s-%s", foundry, family, charset), |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6888 but take overlap into account. */ |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6889 memmove (family + foundry_len + 1, family, family_len); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6890 memcpy (family, foundry, foundry_len); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6891 family[foundry_len] = '-'; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6892 family[foundry_len + 1 + family_len] = '-'; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6893 strcpy (family + foundry_len + 1 + family_len + 1, charset); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6894 } |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6895 else |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6896 return 0; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6897 } |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6898 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6899 for (p = family; *p; p++) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6900 /* On Mac OS X 10.3, tolower also converts non-ASCII characters |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6901 for some locales. */ |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6902 if (isascii (*p)) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6903 *p = tolower (*p); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6904 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6905 return 1; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6906 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6907 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6908 |
45848 | 6909 static void |
6910 add_font_name_table_entry (char *font_name) | |
6911 { | |
6912 if (font_name_table_size == 0) | |
6913 { | |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6914 font_name_table_size = 256; |
45848 | 6915 font_name_table = (char **) |
6916 xmalloc (font_name_table_size * sizeof (char *)); | |
6917 } | |
6918 else if (font_name_count + 1 >= font_name_table_size) | |
6919 { | |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
6920 font_name_table_size *= 2; |
45848 | 6921 font_name_table = (char **) |
6922 xrealloc (font_name_table, | |
6923 font_name_table_size * sizeof (char *)); | |
6924 } | |
6925 | |
6926 font_name_table[font_name_count++] = font_name; | |
6927 } | |
6928 | |
6929 /* Sets up the table font_name_table to contain the list of all fonts | |
6930 in the system the first time the table is used so that the Resource | |
6931 Manager need not be accessed every time this information is | |
6932 needed. */ | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6933 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6934 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6935 init_font_name_table () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6936 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
6937 #if TARGET_API_MAC_CARBON |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6938 FMFontFamilyIterator ffi; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6939 FMFontFamilyInstanceIterator ffii; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6940 FMFontFamily ff; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6941 Lisp_Object text_encoding_info_alist; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6942 struct gcpro gcpro1; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
6943 |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6944 text_encoding_info_alist = create_text_encoding_info_alist (); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6945 |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6946 #if USE_ATSUI |
67000
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
6947 #if USE_CG_TEXT_DRAWING |
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
6948 init_cg_text_anti_aliasing_threshold (); |
e99c1fd37bcd
[USE_CG_TEXT_DRAWING] (cg_text_anti_aliasing_threshold): New variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66841
diff
changeset
|
6949 #endif |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6950 if (!NILP (assq_no_quit (make_number (kTextEncodingMacUnicode), |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6951 text_encoding_info_alist))) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6952 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6953 OSErr err; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6954 ItemCount nfonts, i; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6955 ATSUFontID *font_ids = NULL; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6956 Ptr name, prev_name = NULL; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6957 ByteCount name_len; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6958 |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6959 atsu_font_id_hash = |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6960 make_hash_table (Qequal, make_number (DEFAULT_HASH_SIZE), |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6961 make_float (DEFAULT_REHASH_SIZE), |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6962 make_float (DEFAULT_REHASH_THRESHOLD), |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6963 Qnil, Qnil, Qnil);; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6964 err = ATSUFontCount (&nfonts); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6965 if (err == noErr) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6966 font_ids = xmalloc (sizeof (ATSUFontID) * nfonts); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6967 if (font_ids) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6968 err = ATSUGetFontIDs (font_ids, nfonts, NULL); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6969 if (err == noErr) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6970 for (i = 0; i < nfonts; i++) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6971 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6972 err = ATSUFindFontName (font_ids[i], kFontFamilyName, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6973 kFontMacintoshPlatform, kFontNoScript, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6974 kFontNoLanguage, 0, NULL, &name_len, NULL); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6975 if (err != noErr) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6976 continue; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6977 name = xmalloc (name_len + 1); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6978 if (name == NULL) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6979 continue; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6980 name[name_len] = '\0'; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6981 err = ATSUFindFontName (font_ids[i], kFontFamilyName, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6982 kFontMacintoshPlatform, kFontNoScript, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6983 kFontNoLanguage, name_len, name, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6984 NULL, NULL); |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6985 if (err == noErr) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
6986 decode_mac_font_name (name, name_len + 1, Qnil); |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6987 if (err == noErr |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6988 && *name != '.' |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6989 && (prev_name == NULL |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6990 || strcmp (name, prev_name) != 0)) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6991 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6992 static char *cs = "iso10646-1"; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6993 |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6994 add_font_name_table_entry (mac_to_x_fontname (name, 0, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6995 normal, cs)); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6996 add_font_name_table_entry (mac_to_x_fontname (name, 0, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6997 italic, cs)); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6998 add_font_name_table_entry (mac_to_x_fontname (name, 0, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
6999 bold, cs)); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7000 add_font_name_table_entry (mac_to_x_fontname (name, 0, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7001 italic | bold, cs)); |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7002 Fputhash (make_unibyte_string (name, name_len), |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7003 long_to_cons (font_ids[i]), atsu_font_id_hash); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7004 xfree (prev_name); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7005 prev_name = name; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7006 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7007 else |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7008 xfree (name); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7009 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7010 if (prev_name) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7011 xfree (prev_name); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7012 if (font_ids) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7013 xfree (font_ids); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7014 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7015 #endif |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7016 |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7017 /* Create a dummy instance iterator here to avoid creating and |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7018 destroying it in the loop. */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7019 if (FMCreateFontFamilyInstanceIterator (0, &ffii) != noErr) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7020 return; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7021 /* Create an iterator to enumerate the font families. */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7022 if (FMCreateFontFamilyIterator (NULL, NULL, kFMDefaultOptions, &ffi) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7023 != noErr) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7024 { |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7025 FMDisposeFontFamilyInstanceIterator (&ffii); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7026 return; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7027 } |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7028 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7029 GCPRO1 (text_encoding_info_alist); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7030 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7031 while (FMGetNextFontFamily (&ffi, &ff) == noErr) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7032 { |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7033 Str255 name; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7034 FMFont font; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7035 FMFontStyle style; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7036 FMFontSize size; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7037 TextEncoding encoding; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7038 TextEncodingBase sc; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7039 Lisp_Object text_encoding_info; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7040 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7041 if (FMGetFontFamilyName (ff, name) != noErr) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7042 break; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7043 p2cstr (name); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7044 if (*name == '.') |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7045 continue; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7046 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7047 if (FMGetFontFamilyTextEncoding (ff, &encoding) != noErr) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7048 break; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7049 sc = GetTextEncodingBase (encoding); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7050 text_encoding_info = assq_no_quit (make_number (sc), |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7051 text_encoding_info_alist); |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7052 if (NILP (text_encoding_info)) |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7053 text_encoding_info = assq_no_quit (make_number (kTextEncodingMacRoman), |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7054 text_encoding_info_alist); |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7055 decode_mac_font_name (name, sizeof (name), |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7056 XCAR (XCDR (text_encoding_info))); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7057 fm_font_family_alist = Fcons (Fcons (build_string (name), |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7058 make_number (ff)), |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7059 fm_font_family_alist); |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7060 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7061 /* Point the instance iterator at the current font family. */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7062 if (FMResetFontFamilyInstanceIterator (ff, &ffii) != noErr) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7063 break; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7064 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7065 while (FMGetNextFontFamilyInstance (&ffii, &font, &style, &size) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7066 == noErr) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7067 { |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7068 Lisp_Object rest = XCDR (XCDR (text_encoding_info)); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7069 |
65643
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7070 if (size > 0 || style == normal) |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7071 for (; !NILP (rest); rest = XCDR (rest)) |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7072 { |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7073 char *cs = SDATA (XCAR (rest)); |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7074 |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7075 if (size == 0) |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7076 { |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7077 add_font_name_table_entry (mac_to_x_fontname (name, size, |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7078 style, cs)); |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7079 add_font_name_table_entry (mac_to_x_fontname (name, size, |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7080 italic, cs)); |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7081 add_font_name_table_entry (mac_to_x_fontname (name, size, |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7082 bold, cs)); |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7083 add_font_name_table_entry (mac_to_x_fontname (name, size, |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7084 italic | bold, |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7085 cs)); |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7086 } |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7087 else |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7088 { |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7089 add_font_name_table_entry (mac_to_x_fontname (name, size, |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7090 style, cs)); |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7091 } |
44af31946762
(xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65346
diff
changeset
|
7092 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7093 } |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7094 } |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7095 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7096 UNGCPRO; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7097 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7098 /* Dispose of the iterators. */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7099 FMDisposeFontFamilyIterator (&ffi); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7100 FMDisposeFontFamilyInstanceIterator (&ffii); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7101 #else /* !TARGET_API_MAC_CARBON */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7102 GrafPtr port; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7103 SInt16 fontnum, old_fontnum; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7104 int num_mac_fonts = CountResources('FOND'); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7105 int i, j; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7106 Handle font_handle, font_handle_2; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7107 short id, scriptcode; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7108 ResType type; |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
7109 Str255 name; |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7110 struct FontAssoc *fat; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7111 struct AsscEntry *assc_entry; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7112 Lisp_Object text_encoding_info_alist, text_encoding_info; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7113 struct gcpro gcpro1; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7114 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7115 GetPort (&port); /* save the current font number used */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7116 old_fontnum = port->txFont; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7117 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7118 text_encoding_info_alist = create_text_encoding_info_alist (); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7119 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7120 GCPRO1 (text_encoding_info_alist); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7121 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7122 for (i = 1; i <= num_mac_fonts; i++) /* get all available fonts */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7123 { |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7124 font_handle = GetIndResource ('FOND', i); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7125 if (!font_handle) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7126 continue; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7127 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7128 GetResInfo (font_handle, &id, &type, name); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7129 GetFNum (name, &fontnum); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7130 p2cstr (name); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7131 if (fontnum == 0) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7132 continue; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7133 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7134 TextFont (fontnum); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7135 scriptcode = FontToScript (fontnum); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7136 text_encoding_info = assq_no_quit (make_number (scriptcode), |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7137 text_encoding_info_alist); |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7138 if (NILP (text_encoding_info)) |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7139 text_encoding_info = assq_no_quit (make_number (smRoman), |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7140 text_encoding_info_alist); |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7141 decode_mac_font_name (name, sizeof (name), |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7142 XCAR (XCDR (text_encoding_info))); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7143 fm_font_family_alist = Fcons (Fcons (build_string (name), |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7144 make_number (fontnum)), |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7145 fm_font_family_alist); |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7146 do |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7147 { |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7148 HLock (font_handle); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7149 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7150 if (GetResourceSizeOnDisk (font_handle) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7151 >= sizeof (struct FamRec)) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7152 { |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7153 fat = (struct FontAssoc *) (*font_handle |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7154 + sizeof (struct FamRec)); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7155 assc_entry |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7156 = (struct AsscEntry *) (*font_handle |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7157 + sizeof (struct FamRec) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7158 + sizeof (struct FontAssoc)); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7159 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7160 for (j = 0; j <= fat->numAssoc; j++, assc_entry++) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7161 { |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7162 Lisp_Object rest = XCDR (XCDR (text_encoding_info)); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7163 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7164 for (; !NILP (rest); rest = XCDR (rest)) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7165 { |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7166 char *cs = SDATA (XCAR (rest)); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7167 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7168 add_font_name_table_entry (mac_to_x_fontname (name, |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7169 assc_entry->fontSize, |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7170 assc_entry->fontStyle, |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7171 cs)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7172 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7173 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7174 } |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7175 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7176 HUnlock (font_handle); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7177 font_handle_2 = GetNextFOND (font_handle); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7178 ReleaseResource (font_handle); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7179 font_handle = font_handle_2; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7180 } |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7181 while (ResError () == noErr && font_handle); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7182 } |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7183 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7184 UNGCPRO; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7185 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7186 TextFont (old_fontnum); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7187 #endif /* !TARGET_API_MAC_CARBON */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7188 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7189 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7190 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7191 void |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7192 mac_clear_font_name_table () |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7193 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7194 int i; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7195 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7196 for (i = 0; i < font_name_count; i++) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7197 xfree (font_name_table[i]); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7198 xfree (font_name_table); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7199 font_name_table = NULL; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7200 font_name_table_size = font_name_count = 0; |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7201 fm_font_family_alist = Qnil; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7202 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7203 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7204 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7205 enum xlfd_scalable_field_index |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7206 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7207 XLFD_SCL_PIXEL_SIZE, |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7208 XLFD_SCL_POINT_SIZE, |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7209 XLFD_SCL_AVGWIDTH, |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7210 XLFD_SCL_LAST |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7211 }; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7212 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7213 static int xlfd_scalable_fields[] = |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7214 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7215 6, /* PIXEL_SIZE */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7216 7, /* POINT_SIZE */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7217 11, /* AVGWIDTH */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7218 -1 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7219 }; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7220 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7221 static Lisp_Object |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7222 mac_do_list_fonts (pattern, maxnames) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7223 char *pattern; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7224 int maxnames; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7225 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7226 int i, n_fonts = 0; |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7227 Lisp_Object font_list = Qnil; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7228 struct xlfdpat *pat; |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
7229 char *scaled, *ptr; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7230 int scl_val[XLFD_SCL_LAST], *field, *val; |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7231 int exact; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7232 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7233 if (font_name_table == NULL) /* Initialize when first used. */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7234 init_font_name_table (); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7235 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7236 for (i = 0; i < XLFD_SCL_LAST; i++) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7237 scl_val[i] = -1; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7238 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7239 /* If the pattern contains 14 dashes and one of PIXEL_SIZE, |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7240 POINT_SIZE, and AVGWIDTH fields is explicitly specified, scalable |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7241 fonts are scaled according to the specified size. */ |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7242 ptr = pattern; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7243 i = 0; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7244 field = xlfd_scalable_fields; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7245 val = scl_val; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7246 if (*ptr == '-') |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7247 do |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7248 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7249 ptr++; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7250 if (i == *field) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7251 { |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7252 if ('0' <= *ptr && *ptr <= '9') |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7253 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7254 *val = *ptr++ - '0'; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7255 while ('0' <= *ptr && *ptr <= '9' && *val < 10000) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7256 *val = *val * 10 + *ptr++ - '0'; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7257 if (*ptr != '-') |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7258 *val = -1; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7259 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7260 field++; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7261 val++; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7262 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7263 ptr = strchr (ptr, '-'); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7264 i++; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7265 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7266 while (ptr && i < 14); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7267 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7268 if (i == 14 && ptr == NULL) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7269 { |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7270 if (scl_val[XLFD_SCL_PIXEL_SIZE] < 0) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7271 scl_val[XLFD_SCL_PIXEL_SIZE] = |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7272 (scl_val[XLFD_SCL_POINT_SIZE] > 0 ? scl_val[XLFD_SCL_POINT_SIZE] / 10 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7273 : (scl_val[XLFD_SCL_AVGWIDTH] > 0 ? scl_val[XLFD_SCL_AVGWIDTH] / 10 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7274 : -1)); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7275 if (scl_val[XLFD_SCL_POINT_SIZE] < 0) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7276 scl_val[XLFD_SCL_POINT_SIZE] = |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7277 (scl_val[XLFD_SCL_PIXEL_SIZE] > 0 ? scl_val[XLFD_SCL_PIXEL_SIZE] * 10 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7278 : (scl_val[XLFD_SCL_AVGWIDTH] > 0 ? scl_val[XLFD_SCL_AVGWIDTH] |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7279 : -1)); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7280 if (scl_val[XLFD_SCL_AVGWIDTH] < 0) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7281 scl_val[XLFD_SCL_AVGWIDTH] = |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7282 (scl_val[XLFD_SCL_PIXEL_SIZE] > 0 ? scl_val[XLFD_SCL_PIXEL_SIZE] * 10 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7283 : (scl_val[XLFD_SCL_POINT_SIZE] > 0 ? scl_val[XLFD_SCL_POINT_SIZE] |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7284 : -1)); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7285 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7286 else |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7287 scl_val[XLFD_SCL_PIXEL_SIZE] = -1; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7288 |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7289 pat = xlfdpat_create (pattern); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7290 if (pat == NULL) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7291 return Qnil; |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7292 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7293 exact = xlfdpat_exact_p (pat); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7294 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7295 for (i = 0; i < font_name_count; i++) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7296 { |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7297 if (xlfdpat_match (pat, font_name_table[i])) |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7298 { |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7299 font_list = Fcons (build_string (font_name_table[i]), font_list); |
59034
2dd8aacd82ce
* term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents:
58634
diff
changeset
|
7300 if (exact || maxnames > 0 && ++n_fonts >= maxnames) |
59041
b978ab01b88e
(mac_do_list_fonts): Fix memory leak
Steven Tamm <steventamm@mac.com>
parents:
59034
diff
changeset
|
7301 break; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7302 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7303 else if (scl_val[XLFD_SCL_PIXEL_SIZE] > 0 |
62944
35f25c15b8c2
(mac_to_x_fontname, mac_do_list_fonts): Set XLFD
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62281
diff
changeset
|
7304 && (ptr = strstr (font_name_table[i], "-0-0-0-0-m-0-"))) |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7305 { |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7306 int former_len = ptr - font_name_table[i]; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7307 |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
7308 scaled = xmalloc (strlen (font_name_table[i]) + 20 + 1); |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7309 if (scaled == NULL) |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7310 continue; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7311 memcpy (scaled, font_name_table[i], former_len); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7312 sprintf (scaled + former_len, |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
7313 "-%d-%d-72-72-m-%d-%s", |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7314 scl_val[XLFD_SCL_PIXEL_SIZE], |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7315 scl_val[XLFD_SCL_POINT_SIZE], |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7316 scl_val[XLFD_SCL_AVGWIDTH], |
62944
35f25c15b8c2
(mac_to_x_fontname, mac_do_list_fonts): Set XLFD
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62281
diff
changeset
|
7317 ptr + sizeof ("-0-0-0-0-m-0-") - 1); |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7318 |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7319 if (xlfdpat_match (pat, scaled)) |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7320 { |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7321 font_list = Fcons (build_string (scaled), font_list); |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7322 xfree (scaled); |
59034
2dd8aacd82ce
* term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents:
58634
diff
changeset
|
7323 if (exact || maxnames > 0 && ++n_fonts >= maxnames) |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7324 break; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7325 } |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7326 else |
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7327 xfree (scaled); |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7328 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7329 } |
59034
2dd8aacd82ce
* term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents:
58634
diff
changeset
|
7330 |
65346
88cf9abcfe60
(struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65110
diff
changeset
|
7331 xlfdpat_destroy (pat); |
59034
2dd8aacd82ce
* term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents:
58634
diff
changeset
|
7332 |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7333 return font_list; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7334 } |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7335 |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7336 /* Return a list of names of available fonts matching PATTERN on frame F. |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7337 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7338 Frame F null means we have not yet created any frame on Mac, and |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7339 consult the first display in x_display_list. MAXNAMES sets a limit |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7340 on how many fonts to match. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7341 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7342 Lisp_Object |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7343 x_list_fonts (f, pattern, size, maxnames) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7344 struct frame *f; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7345 Lisp_Object pattern; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7346 int size, maxnames; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7347 { |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7348 Lisp_Object list = Qnil, patterns, tem, key; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7349 struct mac_display_info *dpyinfo |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7350 = f ? FRAME_MAC_DISPLAY_INFO (f) : x_display_list; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7351 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7352 xassert (size <= 0); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7353 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7354 patterns = Fassoc (pattern, Valternate_fontname_alist); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7355 if (NILP (patterns)) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7356 patterns = Fcons (pattern, Qnil); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7357 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7358 for (; CONSP (patterns); patterns = XCDR (patterns)) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7359 { |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7360 pattern = XCAR (patterns); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7361 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7362 if (!STRINGP (pattern)) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7363 continue; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7364 |
60635
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
7365 tem = XCAR (XCDR (dpyinfo->name_list_element)); |
46169
36989d5089ee
2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46168
diff
changeset
|
7366 key = Fcons (pattern, make_number (maxnames)); |
36989d5089ee
2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46168
diff
changeset
|
7367 |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7368 list = Fassoc (key, tem); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7369 if (!NILP (list)) |
46169
36989d5089ee
2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46168
diff
changeset
|
7370 { |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7371 list = Fcdr_safe (list); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7372 /* We have a cashed list. Don't have to get the list again. */ |
46169
36989d5089ee
2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46168
diff
changeset
|
7373 goto label_cached; |
36989d5089ee
2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46168
diff
changeset
|
7374 } |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7375 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7376 BLOCK_INPUT; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7377 list = mac_do_list_fonts (SDATA (pattern), maxnames); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7378 UNBLOCK_INPUT; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7379 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7380 /* MAC_TODO: add code for matching outline fonts here */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7381 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7382 /* Now store the result in the cache. */ |
60635
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
7383 XSETCAR (XCDR (dpyinfo->name_list_element), |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7384 Fcons (Fcons (key, list), |
60635
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
7385 XCAR (XCDR (dpyinfo->name_list_element)))); |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7386 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7387 label_cached: |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7388 if (NILP (list)) continue; /* Try the remaining alternatives. */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7389 } |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7390 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7391 return list; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7392 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7393 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7394 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7395 #if GLYPH_DEBUG |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7396 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7397 /* Check that FONT is valid on frame F. It is if it can be found in F's |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7398 font table. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7399 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7400 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7401 x_check_font (f, font) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7402 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7403 XFontStruct *font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7404 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7405 int i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7406 struct x_display_info *dpyinfo = FRAME_X_DISPLAY_INFO (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7407 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7408 xassert (font != NULL); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7409 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7410 for (i = 0; i < dpyinfo->n_fonts; i++) |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7411 if (dpyinfo->font_table[i].name |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7412 && font == dpyinfo->font_table[i].font) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7413 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7414 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7415 xassert (i < dpyinfo->n_fonts); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7416 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7417 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7418 #endif /* GLYPH_DEBUG != 0 */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7419 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7420 /* Set *W to the minimum width, *H to the minimum font height of FONT. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7421 Note: There are (broken) X fonts out there with invalid XFontStruct |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7422 min_bounds contents. For example, handa@etl.go.jp reports that |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7423 "-adobe-courier-medium-r-normal--*-180-*-*-m-*-iso8859-1" fonts |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7424 have font->min_bounds.width == 0. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7425 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7426 static INLINE void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7427 x_font_min_bounds (font, w, h) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7428 MacFontStruct *font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7429 int *w, *h; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7430 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7431 *h = FONT_HEIGHT (font); |
59325
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
7432 *w = font->min_bounds.width; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7433 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7434 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7435 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7436 /* Compute the smallest character width and smallest font height over |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7437 all fonts available on frame F. Set the members smallest_char_width |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7438 and smallest_font_height in F's x_display_info structure to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7439 the values computed. Value is non-zero if smallest_font_height or |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7440 smallest_char_width become smaller than they were before. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7441 |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
7442 static int |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7443 x_compute_min_glyph_bounds (f) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7444 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7445 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7446 int i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7447 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7448 MacFontStruct *font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7449 int old_width = dpyinfo->smallest_char_width; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7450 int old_height = dpyinfo->smallest_font_height; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7451 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7452 dpyinfo->smallest_font_height = 100000; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7453 dpyinfo->smallest_char_width = 100000; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7454 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7455 for (i = 0; i < dpyinfo->n_fonts; ++i) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7456 if (dpyinfo->font_table[i].name) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7457 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7458 struct font_info *fontp = dpyinfo->font_table + i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7459 int w, h; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7460 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7461 font = (MacFontStruct *) fontp->font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7462 xassert (font != (MacFontStruct *) ~0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7463 x_font_min_bounds (font, &w, &h); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7464 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7465 dpyinfo->smallest_font_height = min (dpyinfo->smallest_font_height, h); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7466 dpyinfo->smallest_char_width = min (dpyinfo->smallest_char_width, w); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7467 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7468 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7469 xassert (dpyinfo->smallest_char_width > 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7470 && dpyinfo->smallest_font_height > 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7471 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7472 return (dpyinfo->n_fonts == 1 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7473 || dpyinfo->smallest_char_width < old_width |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7474 || dpyinfo->smallest_font_height < old_height); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7475 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7476 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7477 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7478 /* Determine whether given string is a fully-specified XLFD: all 14 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7479 fields are present, none is '*'. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7480 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7481 static int |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7482 is_fully_specified_xlfd (char *p) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7483 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7484 int i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7485 char *q; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7486 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7487 if (*p != '-') |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7488 return 0; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7489 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7490 for (i = 0; i < 13; i++) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7491 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7492 q = strchr (p + 1, '-'); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7493 if (q == NULL) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7494 return 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7495 if (q - p == 2 && *(p + 1) == '*') |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7496 return 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7497 p = q; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7498 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7499 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7500 if (strchr (p + 1, '-') != NULL) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7501 return 0; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7502 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7503 if (*(p + 1) == '*' && *(p + 2) == '\0') |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7504 return 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7505 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7506 return 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7507 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7508 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7509 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7510 /* XLoadQueryFont creates and returns an internal representation for a |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7511 font in a MacFontStruct struct. There is really no concept |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7512 corresponding to "loading" a font on the Mac. But we check its |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7513 existence and find the font number and all other information for it |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7514 and store them in the returned MacFontStruct. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7515 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7516 static MacFontStruct * |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7517 XLoadQueryFont (Display *dpy, char *fontname) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7518 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7519 int size; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7520 char *name; |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7521 Str255 family; |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
7522 Str31 charset; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7523 SInt16 fontnum; |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7524 #if USE_ATSUI |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7525 static ATSUFontID font_id; |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7526 ATSUStyle mac_style = NULL; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7527 #endif |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7528 Style fontface; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7529 #if TARGET_API_MAC_CARBON |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7530 TextEncoding encoding; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7531 int scriptcode; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7532 #else |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7533 short scriptcode; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7534 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7535 MacFontStruct *font; |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7536 XCharStruct *space_bounds = NULL, *pcm; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7537 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7538 if (is_fully_specified_xlfd (fontname)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7539 name = fontname; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7540 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7541 { |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7542 Lisp_Object matched_fonts; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7543 |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7544 matched_fonts = mac_do_list_fonts (fontname, 1); |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7545 if (NILP (matched_fonts)) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7546 return NULL; |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
7547 name = SDATA (XCAR (matched_fonts)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7548 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7549 |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7550 if (parse_x_font_name (name, family, &size, &fontface, charset) == 0) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7551 return NULL; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7552 |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7553 #if USE_ATSUI |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7554 if (strcmp (charset, "iso10646-1") == 0) /* XXX */ |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7555 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7556 OSErr err; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7557 ATSUAttributeTag tags[] = {kATSUFontTag, kATSUSizeTag, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7558 kATSUQDBoldfaceTag, kATSUQDItalicTag}; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7559 ByteCount sizes[] = {sizeof (ATSUFontID), sizeof (Fixed), |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7560 sizeof (Boolean), sizeof (Boolean)}; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7561 static Fixed size_fixed; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7562 static Boolean bold_p, italic_p; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7563 ATSUAttributeValuePtr values[] = {&font_id, &size_fixed, |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7564 &bold_p, &italic_p}; |
68145
d88b44855af3
[USE_ATSUI] (atsu_get_text_layout_with_text_ptr)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67788
diff
changeset
|
7565 ATSUFontFeatureType types[] = {kAllTypographicFeaturesType, |
d88b44855af3
[USE_ATSUI] (atsu_get_text_layout_with_text_ptr)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67788
diff
changeset
|
7566 kDiacriticsType}; |
d88b44855af3
[USE_ATSUI] (atsu_get_text_layout_with_text_ptr)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67788
diff
changeset
|
7567 ATSUFontFeatureSelector selectors[] = {kAllTypeFeaturesOffSelector, |
d88b44855af3
[USE_ATSUI] (atsu_get_text_layout_with_text_ptr)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67788
diff
changeset
|
7568 kDecomposeDiacriticsSelector}; |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7569 Lisp_Object font_id_cons; |
65910
a53616277ba6
(GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65892
diff
changeset
|
7570 |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7571 font_id_cons = Fgethash (make_unibyte_string (family, strlen (family)), |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7572 atsu_font_id_hash, Qnil); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7573 if (NILP (font_id_cons)) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7574 return NULL; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7575 font_id = cons_to_long (font_id_cons); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7576 size_fixed = Long2Fix (size); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7577 bold_p = (fontface & bold) != 0; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7578 italic_p = (fontface & italic) != 0; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7579 err = ATSUCreateStyle (&mac_style); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7580 if (err != noErr) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7581 return NULL; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7582 err = ATSUSetFontFeatures (mac_style, sizeof (types) / sizeof (types[0]), |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7583 types, selectors); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7584 if (err != noErr) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7585 return NULL; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7586 err = ATSUSetAttributes (mac_style, sizeof (tags) / sizeof (tags[0]), |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7587 tags, sizes, values); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7588 fontnum = -1; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7589 scriptcode = kTextEncodingMacUnicode; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7590 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7591 else |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7592 #endif |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7593 { |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7594 Lisp_Object tmp = Fassoc (build_string (family), fm_font_family_alist); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7595 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7596 if (NILP (tmp)) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7597 return NULL; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7598 fontnum = XINT (XCDR (tmp)); |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7599 #if TARGET_API_MAC_CARBON |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7600 if (FMGetFontFamilyTextEncoding (fontnum, &encoding) != noErr) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7601 return NULL; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7602 scriptcode = GetTextEncodingBase (encoding); |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7603 #else |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7604 scriptcode = FontToScript (fontnum); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7605 #endif |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7606 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7607 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7608 font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7609 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7610 font->mac_fontnum = fontnum; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7611 font->mac_fontsize = size; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7612 font->mac_fontface = fontface; |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7613 font->mac_scriptcode = scriptcode; |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7614 #if USE_ATSUI |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7615 font->mac_style = mac_style; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7616 #if USE_CG_TEXT_DRAWING |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7617 font->cg_font = NULL; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7618 font->cg_glyphs = NULL; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7619 #endif |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7620 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7621 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7622 /* Apple Japanese (SJIS) font is listed as both |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7623 "*-jisx0208.1983-sjis" (Japanese script) and "*-jisx0201.1976-0" |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7624 (Roman script) in init_font_name_table (). The latter should be |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7625 treated as a one-byte font. */ |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7626 if (scriptcode == smJapanese && strcmp (charset, "jisx0201.1976-0") == 0) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7627 font->mac_scriptcode = smRoman; |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7628 |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7629 font->full_name = mac_to_x_fontname (family, size, fontface, charset); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7630 |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7631 #if USE_ATSUI |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7632 if (font->mac_style) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7633 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7634 OSErr err; |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7635 UniChar c; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7636 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7637 font->min_byte1 = 0; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7638 font->max_byte1 = 0xff; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7639 font->min_char_or_byte2 = 0; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7640 font->max_char_or_byte2 = 0xff; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7641 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7642 font->bounds.rows = xmalloc (sizeof (XCharStructRow *) * 0x100); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7643 if (font->bounds.rows == NULL) |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7644 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7645 mac_unload_font (&one_mac_display_info, font); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7646 return NULL; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7647 } |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7648 bzero (font->bounds.rows, sizeof (XCharStructRow *) * 0x100); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7649 font->bounds.rows[0] = xmalloc (sizeof (XCharStructRow)); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7650 if (font->bounds.rows[0] == NULL) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7651 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7652 mac_unload_font (&one_mac_display_info, font); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7653 return NULL; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7654 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7655 bzero (font->bounds.rows[0], sizeof (XCharStructRow)); |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7656 |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7657 #if USE_CG_TEXT_DRAWING |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7658 { |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7659 FMFontFamily font_family; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7660 FMFontStyle style; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7661 ATSFontRef ats_font; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7662 |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7663 err = FMGetFontFamilyInstanceFromFont (font_id, &font_family, &style); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7664 if (err == noErr) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7665 err = FMGetFontFromFontFamilyInstance (font_family, fontface, |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7666 &font_id, &style); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7667 /* Use CG text drawing if italic/bold is not synthesized. */ |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7668 if (err == noErr && style == fontface) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7669 { |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7670 ats_font = FMGetATSFontRefFromFont (font_id); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7671 font->cg_font = CGFontCreateWithPlatformFont (&ats_font); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7672 } |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7673 } |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7674 |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7675 if (font->cg_font) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7676 font->cg_glyphs = xmalloc (sizeof (CGGlyph) * 0x100); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7677 if (font->cg_glyphs) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7678 bzero (font->cg_glyphs, sizeof (CGGlyph) * 0x100); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7679 #endif |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7680 space_bounds = font->bounds.rows[0]->per_char + 0x20; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7681 err = mac_query_char_extents (font->mac_style, 0x20, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7682 &font->ascent, &font->descent, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7683 space_bounds, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7684 #if USE_CG_TEXT_DRAWING |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7685 (font->cg_glyphs ? font->cg_glyphs + 0x20 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7686 : NULL) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7687 #else |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7688 NULL |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7689 #endif |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7690 ); |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7691 if (err != noErr) |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7692 { |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7693 mac_unload_font (&one_mac_display_info, font); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7694 return NULL; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7695 } |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7696 XCHARSTRUCTROW_SET_CHAR_VALID (font->bounds.rows[0], 0x20); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7697 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7698 pcm = font->bounds.rows[0]->per_char; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7699 for (c = 0x21; c <= 0xff; c++) |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7700 { |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7701 if (c == 0xad) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7702 /* Soft hyphen is not supported in ATSUI. */ |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7703 continue; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7704 else if (c == 0x7f) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7705 { |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7706 c = 0x9f; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7707 continue; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7708 } |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7709 |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7710 mac_query_char_extents (font->mac_style, c, NULL, NULL, pcm + c, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7711 #if USE_CG_TEXT_DRAWING |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7712 (font->cg_glyphs ? font->cg_glyphs + c |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7713 : NULL) |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
7714 #else |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7715 NULL |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7716 #endif |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7717 ); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7718 XCHARSTRUCTROW_SET_CHAR_VALID (font->bounds.rows[0], c); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7719 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7720 #if USE_CG_TEXT_DRAWING |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7721 if (font->cg_glyphs && font->cg_glyphs[c] == 0) |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7722 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7723 /* Don't use CG text drawing if font substitution occurs in |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7724 ASCII or Latin-1 characters. */ |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7725 CGFontRelease (font->cg_font); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7726 font->cg_font = NULL; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7727 xfree (font->cg_glyphs); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7728 font->cg_glyphs = NULL; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7729 } |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7730 #endif |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7731 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7732 } |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7733 else |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7734 #endif |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7735 { |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7736 GrafPtr port; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7737 SInt16 old_fontnum, old_fontsize; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7738 Style old_fontface; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7739 FontInfo the_fontinfo; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7740 int is_two_byte_font; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7741 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7742 /* Save the current font number used. */ |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7743 GetPort (&port); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7744 #if TARGET_API_MAC_CARBON |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7745 old_fontnum = GetPortTextFont (port); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7746 old_fontsize = GetPortTextSize (port); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7747 old_fontface = GetPortTextFace (port); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7748 #else |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7749 old_fontnum = port->txFont; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7750 old_fontsize = port->txSize; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7751 old_fontface = port->txFace; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7752 #endif |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7753 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7754 TextFont (fontnum); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7755 TextSize (size); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7756 TextFace (fontface); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7757 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7758 GetFontInfo (&the_fontinfo); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7759 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7760 font->ascent = the_fontinfo.ascent; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7761 font->descent = the_fontinfo.descent; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7762 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7763 is_two_byte_font = (font->mac_scriptcode == smJapanese |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7764 || font->mac_scriptcode == smTradChinese |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7765 || font->mac_scriptcode == smSimpChinese |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7766 || font->mac_scriptcode == smKorean); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7767 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7768 if (is_two_byte_font) |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7769 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7770 int char_width; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7771 |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7772 font->min_byte1 = 0xa1; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7773 font->max_byte1 = 0xfe; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7774 font->min_char_or_byte2 = 0xa1; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7775 font->max_char_or_byte2 = 0xfe; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7776 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7777 /* Use the width of an "ideographic space" of that font |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7778 because the_fontinfo.widMax returns the wrong width for |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7779 some fonts. */ |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7780 switch (font->mac_scriptcode) |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7781 { |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7782 case smJapanese: |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7783 font->min_byte1 = 0x81; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7784 font->max_byte1 = 0xfc; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7785 font->min_char_or_byte2 = 0x40; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7786 font->max_char_or_byte2 = 0xfc; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7787 char_width = StringWidth("\p\x81\x40"); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7788 break; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7789 case smTradChinese: |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7790 font->min_char_or_byte2 = 0x40; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7791 char_width = StringWidth("\p\xa1\x40"); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7792 break; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7793 case smSimpChinese: |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7794 char_width = StringWidth("\p\xa1\xa1"); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7795 break; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7796 case smKorean: |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7797 char_width = StringWidth("\p\xa1\xa1"); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7798 break; |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7799 } |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7800 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7801 font->bounds.per_char = NULL; |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7802 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7803 if (fontface & italic) |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7804 font->max_bounds.rbearing = char_width + 1; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7805 else |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7806 font->max_bounds.rbearing = char_width; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7807 font->max_bounds.lbearing = 0; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7808 font->max_bounds.width = char_width; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7809 font->max_bounds.ascent = the_fontinfo.ascent; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7810 font->max_bounds.descent = the_fontinfo.descent; |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7811 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7812 font->min_bounds = font->max_bounds; |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7813 } |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7814 else |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7815 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7816 int c; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7817 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7818 font->min_byte1 = font->max_byte1 = 0; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7819 font->min_char_or_byte2 = 0x20; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7820 font->max_char_or_byte2 = 0xff; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7821 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7822 font->bounds.per_char = |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7823 xmalloc (sizeof (XCharStruct) * (0xff - 0x20 + 1)); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7824 if (font->bounds.per_char == NULL) |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7825 { |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7826 mac_unload_font (&one_mac_display_info, font); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7827 return NULL; |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7828 } |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7829 bzero (font->bounds.per_char, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7830 sizeof (XCharStruct) * (0xff - 0x20 + 1)); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7831 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7832 space_bounds = font->bounds.per_char; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7833 mac_query_char_extents (NULL, 0x20, &font->ascent, &font->descent, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7834 space_bounds, NULL); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7835 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7836 for (c = 0x21, pcm = space_bounds + 1; c <= 0xff; c++, pcm++) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7837 mac_query_char_extents (NULL, c, NULL, NULL, pcm, NULL); |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7838 } |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7839 |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7840 /* Restore previous font number, size and face. */ |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7841 TextFont (old_fontnum); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7842 TextSize (old_fontsize); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7843 TextFace (old_fontface); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
7844 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
7845 |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7846 if (space_bounds) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7847 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7848 int c; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7849 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7850 font->min_bounds = font->max_bounds = *space_bounds; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7851 for (c = 0x21, pcm = space_bounds + 1; c <= 0x7f; c++, pcm++) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7852 if (pcm->width > 0) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7853 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7854 font->min_bounds.lbearing = min (font->min_bounds.lbearing, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7855 pcm->lbearing); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7856 font->min_bounds.rbearing = min (font->min_bounds.rbearing, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7857 pcm->rbearing); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7858 font->min_bounds.width = min (font->min_bounds.width, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7859 pcm->width); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7860 font->min_bounds.ascent = min (font->min_bounds.ascent, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7861 pcm->ascent); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7862 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7863 font->max_bounds.lbearing = max (font->max_bounds.lbearing, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7864 pcm->lbearing); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7865 font->max_bounds.rbearing = max (font->max_bounds.rbearing, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7866 pcm->rbearing); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7867 font->max_bounds.width = max (font->max_bounds.width, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7868 pcm->width); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7869 font->max_bounds.ascent = max (font->max_bounds.ascent, |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7870 pcm->ascent); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7871 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7872 if ( |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7873 #if USE_ATSUI |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7874 font->mac_style == NULL && |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7875 #endif |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7876 font->max_bounds.width == font->min_bounds.width |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7877 && font->min_bounds.lbearing >= 0 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7878 && font->max_bounds.rbearing <= font->max_bounds.width) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7879 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7880 /* Fixed width and no overhangs. */ |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7881 xfree (font->bounds.per_char); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7882 font->bounds.per_char = NULL; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7883 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7884 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7885 |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7886 #if !defined (MAC_OS8) || USE_ATSUI |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7887 /* AppKit and WebKit do some adjustment to the heights of Courier, |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7888 Helvetica, and Times. This only works on the environments where |
69061
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
7889 srcCopy text transfer mode is never used. */ |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
7890 if ( |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
7891 #ifdef MAC_OS8 /* implies USE_ATSUI */ |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
7892 font->mac_style && |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
7893 #endif |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
7894 (strcmp (family, "courier") == 0 || strcmp (family, "helvetica") == 0 |
783439580869
(mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68770
diff
changeset
|
7895 || strcmp (family, "times") == 0)) |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7896 font->ascent += (font->ascent + font->descent) * .15 + 0.5; |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7897 #endif |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7898 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7899 return font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7900 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7901 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7902 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7903 void |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7904 mac_unload_font (dpyinfo, font) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7905 struct mac_display_info *dpyinfo; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7906 XFontStruct *font; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7907 { |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7908 xfree (font->full_name); |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7909 #if USE_ATSUI |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
7910 if (font->mac_style) |
67733
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7911 { |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7912 int i; |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7913 |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7914 for (i = font->min_byte1; i <= font->max_byte1; i++) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7915 if (font->bounds.rows[i]) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7916 xfree (font->bounds.rows[i]); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7917 xfree (font->bounds.rows); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7918 ATSUDisposeStyle (font->mac_style); |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7919 } |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7920 else |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7921 #endif |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7922 if (font->bounds.per_char) |
330ac31a0c82
(mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67672
diff
changeset
|
7923 xfree (font->bounds.per_char); |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7924 #if USE_CG_TEXT_DRAWING |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7925 if (font->cg_font) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7926 CGFontRelease (font->cg_font); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7927 if (font->cg_glyphs) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7928 xfree (font->cg_glyphs); |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
7929 #endif |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7930 xfree (font); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7931 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7932 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7933 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7934 /* Load font named FONTNAME of the size SIZE for frame F, and return a |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7935 pointer to the structure font_info while allocating it dynamically. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7936 If SIZE is 0, load any size of font. |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7937 If loading is failed, return NULL. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7938 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7939 struct font_info * |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7940 x_load_font (f, fontname, size) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7941 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7942 register char *fontname; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7943 int size; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7944 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7945 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7946 Lisp_Object font_names; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7947 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7948 /* Get a list of all the fonts that match this name. Once we |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7949 have a list of matching fonts, we compare them against the fonts |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7950 we already have by comparing names. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7951 font_names = x_list_fonts (f, build_string (fontname), size, 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7952 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7953 if (!NILP (font_names)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7954 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7955 Lisp_Object tail; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7956 int i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7957 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7958 for (i = 0; i < dpyinfo->n_fonts; i++) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7959 for (tail = font_names; CONSP (tail); tail = XCDR (tail)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7960 if (dpyinfo->font_table[i].name |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7961 && (!strcmp (dpyinfo->font_table[i].name, |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46169
diff
changeset
|
7962 SDATA (XCAR (tail))) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7963 || !strcmp (dpyinfo->font_table[i].full_name, |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46169
diff
changeset
|
7964 SDATA (XCAR (tail))))) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7965 return (dpyinfo->font_table + i); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7966 } |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7967 else |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7968 return NULL; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7969 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7970 /* Load the font and add it to the table. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7971 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7972 char *full_name; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7973 struct MacFontStruct *font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7974 struct font_info *fontp; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7975 unsigned long value; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7976 int i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7977 |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
7978 fontname = (char *) SDATA (XCAR (font_names)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7979 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7980 BLOCK_INPUT; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7981 font = (MacFontStruct *) XLoadQueryFont (FRAME_MAC_DISPLAY (f), fontname); |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
7982 UNBLOCK_INPUT; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7983 if (!font) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7984 return NULL; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7985 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7986 /* Find a free slot in the font table. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7987 for (i = 0; i < dpyinfo->n_fonts; ++i) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7988 if (dpyinfo->font_table[i].name == NULL) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7989 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7990 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7991 /* If no free slot found, maybe enlarge the font table. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7992 if (i == dpyinfo->n_fonts |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7993 && dpyinfo->n_fonts == dpyinfo->font_table_size) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7994 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7995 int sz; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7996 dpyinfo->font_table_size = max (16, 2 * dpyinfo->font_table_size); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7997 sz = dpyinfo->font_table_size * sizeof *dpyinfo->font_table; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7998 dpyinfo->font_table |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
7999 = (struct font_info *) xrealloc (dpyinfo->font_table, sz); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8000 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8001 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8002 fontp = dpyinfo->font_table + i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8003 if (i == dpyinfo->n_fonts) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8004 ++dpyinfo->n_fonts; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8005 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8006 /* Now fill in the slots of *FONTP. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8007 BLOCK_INPUT; |
52742
7f9bdf6cf89b
(x_load_font): Clear all members of FONTP before start filling them.
Kenichi Handa <handa@m17n.org>
parents:
52401
diff
changeset
|
8008 bzero (fontp, sizeof (*fontp)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8009 fontp->font = font; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8010 fontp->font_idx = i; |
90248
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
8011 fontp->charset = -1; /* fs_load_font sets it. */ |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
8012 fontp->name = (char *) xmalloc (strlen (fontname) + 1); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
8013 bcopy (fontname, fontp->name, strlen (fontname) + 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8014 |
59325
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8015 if (font->min_bounds.width == font->max_bounds.width) |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8016 { |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8017 /* Fixed width font. */ |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8018 fontp->average_width = fontp->space_width = font->min_bounds.width; |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8019 } |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8020 else |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8021 { |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8022 XChar2b char2b; |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8023 XCharStruct *pcm; |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8024 |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8025 char2b.byte1 = 0x00, char2b.byte2 = 0x20; |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8026 pcm = mac_per_char_metric (font, &char2b, 0); |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8027 if (pcm) |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8028 fontp->space_width = pcm->width; |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8029 else |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8030 fontp->space_width = FONT_WIDTH (font); |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8031 |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8032 if (pcm) |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8033 { |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8034 int width = pcm->width; |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8035 for (char2b.byte2 = 33; char2b.byte2 <= 126; char2b.byte2++) |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8036 if ((pcm = mac_per_char_metric (font, &char2b, 0)) != NULL) |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8037 width += pcm->width; |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8038 fontp->average_width = width / 95; |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8039 } |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8040 else |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8041 fontp->average_width = FONT_WIDTH (font); |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8042 } |
68eaccfa130a
* macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents:
59199
diff
changeset
|
8043 |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
8044 fontp->full_name = (char *) xmalloc (strlen (font->full_name) + 1); |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
8045 bcopy (font->full_name, fontp->full_name, strlen (font->full_name) + 1); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8046 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8047 fontp->size = font->max_bounds.width; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8048 fontp->height = FONT_HEIGHT (font); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8049 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8050 /* For some font, ascent and descent in max_bounds field is |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8051 larger than the above value. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8052 int max_height = font->max_bounds.ascent + font->max_bounds.descent; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8053 if (max_height > fontp->height) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8054 fontp->height = max_height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8055 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8056 |
89960
d79ab6afded5
macterm.c (mac_encode_char): Add charset argument and update
Steven Tamm <steventamm@mac.com>
parents:
89956
diff
changeset
|
8057 /* MAC_TODO: The script encoding is irrelevant in unicode? */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8058 /* The slot `encoding' specifies how to map a character |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8059 code-points (0x20..0x7F or 0x2020..0x7F7F) of each charset to |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8060 the font code-points (0:0x20..0x7F, 1:0xA0..0xFF), or |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8061 (0:0x2020..0x7F7F, 1:0xA0A0..0xFFFF, 3:0x20A0..0x7FFF, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8062 2:0xA020..0xFF7F). For the moment, we don't know which charset |
90248
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
8063 uses this font. So, we set information in fontp->encoding_type |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8064 which is never used by any charset. If mapping can't be |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8065 decided, set FONT_ENCODING_NOT_DECIDED. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8066 if (font->mac_scriptcode == smJapanese) |
90248
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
8067 fontp->encoding_type = 4; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8068 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8069 { |
90248
c8c3c8dbe333
(mac_encode_char): Call ccl_driver with the last arg Qnil.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
90242
diff
changeset
|
8070 fontp->encoding_type |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8071 = (font->max_byte1 == 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8072 /* 1-byte font */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8073 ? (font->min_char_or_byte2 < 0x80 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8074 ? (font->max_char_or_byte2 < 0x80 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8075 ? 0 /* 0x20..0x7F */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8076 : FONT_ENCODING_NOT_DECIDED) /* 0x20..0xFF */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8077 : 1) /* 0xA0..0xFF */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8078 /* 2-byte font */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8079 : (font->min_byte1 < 0x80 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8080 ? (font->max_byte1 < 0x80 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8081 ? (font->min_char_or_byte2 < 0x80 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8082 ? (font->max_char_or_byte2 < 0x80 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8083 ? 0 /* 0x2020..0x7F7F */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8084 : FONT_ENCODING_NOT_DECIDED) /* 0x2020..0x7FFF */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8085 : 3) /* 0x20A0..0x7FFF */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8086 : FONT_ENCODING_NOT_DECIDED) /* 0x20??..0xA0?? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8087 : (font->min_char_or_byte2 < 0x80 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8088 ? (font->max_char_or_byte2 < 0x80 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8089 ? 2 /* 0xA020..0xFF7F */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8090 : FONT_ENCODING_NOT_DECIDED) /* 0xA020..0xFFFF */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8091 : 1))); /* 0xA0A0..0xFFFF */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8092 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8093 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8094 #if 0 /* MAC_TODO: fill these out with more reasonably values */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8095 fontp->baseline_offset |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8096 = (XGetFontProperty (font, dpyinfo->Xatom_MULE_BASELINE_OFFSET, &value) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8097 ? (long) value : 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8098 fontp->relative_compose |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8099 = (XGetFontProperty (font, dpyinfo->Xatom_MULE_RELATIVE_COMPOSE, &value) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8100 ? (long) value : 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8101 fontp->default_ascent |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8102 = (XGetFontProperty (font, dpyinfo->Xatom_MULE_DEFAULT_ASCENT, &value) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8103 ? (long) value : 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8104 #else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8105 fontp->baseline_offset = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8106 fontp->relative_compose = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8107 fontp->default_ascent = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8108 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8109 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8110 /* Set global flag fonts_changed_p to non-zero if the font loaded |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8111 has a character with a smaller width than any other character |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8112 before, or if the font loaded has a smaller height than any |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8113 other font loaded before. If this happens, it will make a |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8114 glyph matrix reallocation necessary. */ |
64102
09d72bda30b9
(mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64084
diff
changeset
|
8115 fonts_changed_p |= x_compute_min_glyph_bounds (f); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8116 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8117 return fontp; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8118 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8119 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8120 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8121 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8122 /* Return a pointer to struct font_info of a font named FONTNAME for |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8123 frame F. If no such font is loaded, return NULL. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8124 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8125 struct font_info * |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8126 x_query_font (f, fontname) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8127 struct frame *f; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8128 register char *fontname; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8129 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8130 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8131 int i; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8132 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8133 for (i = 0; i < dpyinfo->n_fonts; i++) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8134 if (dpyinfo->font_table[i].name |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8135 && (!strcmp (dpyinfo->font_table[i].name, fontname) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8136 || !strcmp (dpyinfo->font_table[i].full_name, fontname))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8137 return (dpyinfo->font_table + i); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8138 return NULL; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8139 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8140 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8141 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8142 /* Find a CCL program for a font specified by FONTP, and set the member |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8143 `encoder' of the structure. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8144 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8145 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8146 x_find_ccl_program (fontp) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8147 struct font_info *fontp; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8148 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8149 Lisp_Object list, elt; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8150 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8151 for (list = Vfont_ccl_encoder_alist; CONSP (list); list = XCDR (list)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8152 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8153 elt = XCAR (list); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8154 if (CONSP (elt) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8155 && STRINGP (XCAR (elt)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8156 && (fast_c_string_match_ignore_case (XCAR (elt), fontp->name) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8157 >= 0)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8158 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8159 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8160 if (! NILP (list)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8161 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8162 struct ccl_program *ccl |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8163 = (struct ccl_program *) xmalloc (sizeof (struct ccl_program)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8164 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8165 if (setup_ccl_program (ccl, XCDR (elt)) < 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8166 xfree (ccl); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8167 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8168 fontp->font_encoder = ccl; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8169 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8170 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8171 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8172 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8173 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8174 /* The Mac Event loop code */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8175 |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
8176 #if !TARGET_API_MAC_CARBON |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8177 #include <Events.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8178 #include <Quickdraw.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8179 #include <Balloons.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8180 #include <Devices.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8181 #include <Fonts.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8182 #include <Gestalt.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8183 #include <Menus.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8184 #include <Processes.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8185 #include <Sound.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8186 #include <ToolUtils.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8187 #include <TextUtils.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8188 #include <Dialogs.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8189 #include <Script.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8190 #include <Types.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8191 #include <Resources.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8192 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8193 #if __MWERKS__ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8194 #include <unix.h> |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8195 #endif |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
8196 #endif /* ! TARGET_API_MAC_CARBON */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8197 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8198 #define M_APPLE 128 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8199 #define I_ABOUT 1 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8200 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8201 #define WINDOW_RESOURCE 128 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8202 #define TERM_WINDOW_RESOURCE 129 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8203 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8204 #define DEFAULT_NUM_COLS 80 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8205 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8206 #define MIN_DOC_SIZE 64 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8207 #define MAX_DOC_SIZE 32767 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8208 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8209 #define EXTRA_STACK_ALLOC (256 * 1024) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8210 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8211 #define ARGV_STRING_LIST_ID 129 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8212 #define ABOUT_ALERT_ID 128 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8213 #define RAM_TOO_LARGE_ALERT_ID 129 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8214 |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8215 /* Contains the string "reverse", which is a constant for mouse button emu.*/ |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8216 Lisp_Object Qreverse; |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8217 |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8218 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8219 /* Modifier associated with the control key, or nil to ignore. */ |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8220 Lisp_Object Vmac_control_modifier; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8221 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8222 /* Modifier associated with the option key, or nil to ignore. */ |
57783
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
8223 Lisp_Object Vmac_option_modifier; |
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
8224 |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8225 /* Modifier associated with the command key, or nil to ignore. */ |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8226 Lisp_Object Vmac_command_modifier; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8227 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8228 /* Modifier associated with the function key, or nil to ignore. */ |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8229 Lisp_Object Vmac_function_modifier; |
46798 | 8230 |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8231 /* True if the option and command modifiers should be used to emulate |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8232 a three button mouse */ |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8233 Lisp_Object Vmac_emulate_three_button_mouse; |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8234 |
46798 | 8235 #if USE_CARBON_EVENTS |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8236 /* Non-zero if the mouse wheel button (i.e. button 4) should map to |
46798 | 8237 mouse-2, instead of mouse-3. */ |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8238 int mac_wheel_button_is_mouse_2; |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8239 |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8240 /* If non-zero, the Mac "Command" key is passed on to the Mac Toolbox |
46860
8b7ade57211d
2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46856
diff
changeset
|
8241 for processing before Emacs sees it. */ |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8242 int mac_pass_command_to_system; |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8243 |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8244 /* If non-zero, the Mac "Control" key is passed on to the Mac Toolbox |
46860
8b7ade57211d
2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46856
diff
changeset
|
8245 for processing before Emacs sees it. */ |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8246 int mac_pass_control_to_system; |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8247 #endif |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8248 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8249 /* Points to the variable `inev' in the function XTread_socket. It is |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
8250 used for passing an input event to the function back from |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
8251 Carbon/Apple event handlers. */ |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8252 static struct input_event *read_socket_inev = NULL; |
46798 | 8253 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8254 Point saved_menu_event_location; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8255 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8256 /* Apple Events */ |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8257 #if USE_CARBON_EVENTS |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8258 static Lisp_Object Qhicommand; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8259 #endif |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8260 extern int mac_ready_for_apple_events; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8261 extern Lisp_Object Qundefined; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8262 extern void init_apple_event_handler P_ ((void)); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8263 extern void mac_find_apple_event_spec P_ ((AEEventClass, AEEventID, |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8264 Lisp_Object *, Lisp_Object *, |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8265 Lisp_Object *)); |
67788
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
8266 extern OSErr init_coercion_handler P_ ((void)); |
46798 | 8267 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8268 #if TARGET_API_MAC_CARBON |
46798 | 8269 /* Drag and Drop */ |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
8270 static pascal OSErr mac_do_track_drag (DragTrackingMessage, WindowPtr, void*, DragReference); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8271 static pascal OSErr mac_do_receive_drag (WindowPtr, void*, DragReference); |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
8272 static DragTrackingHandlerUPP mac_do_track_dragUPP = NULL; |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
8273 static DragReceiveHandlerUPP mac_do_receive_dragUPP = NULL; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8274 #endif |
46798 | 8275 |
8276 #if USE_CARBON_EVENTS | |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
8277 #ifdef MAC_OSX |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8278 extern void init_service_handler (); |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8279 static Lisp_Object Qservices, Qpaste, Qperform; |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
8280 #endif |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8281 /* Window Event Handler */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8282 static pascal OSStatus mac_handle_window_event (EventHandlerCallRef, |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8283 EventRef, void *); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8284 #endif |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
8285 OSErr install_window_handler (WindowPtr); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8286 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8287 extern void init_emacs_passwd_dir (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8288 extern int emacs_main (int, char **, char **); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8289 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8290 extern void initialize_applescript(); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8291 extern void terminate_applescript(); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8292 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8293 static unsigned int |
46798 | 8294 #if USE_CARBON_EVENTS |
8295 mac_to_emacs_modifiers (UInt32 mods) | |
8296 #else | |
8297 mac_to_emacs_modifiers (EventModifiers mods) | |
8298 #endif | |
8299 { | |
8300 unsigned int result = 0; | |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8301 if (mods & shiftKey) |
46798 | 8302 result |= shift_modifier; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
8303 |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8304 /* Deactivated to simplify configuration: |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8305 if Vmac_option_modifier is non-NIL, we fully process the Option |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8306 key. Otherwise, we only process it if an additional Ctrl or Command |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
8307 is pressed. That way the system may convert the character to a |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8308 composed one. |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8309 if ((mods & optionKey) && |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
8310 (( !NILP(Vmac_option_modifier) || |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8311 ((mods & cmdKey) || (mods & controlKey))))) */ |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8312 |
57783
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
8313 if (!NILP (Vmac_option_modifier) && (mods & optionKey)) { |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8314 Lisp_Object val = Fget(Vmac_option_modifier, Qmodifier_value); |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8315 if (INTEGERP(val)) |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8316 result |= XUINT(val); |
57783
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
8317 } |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8318 if (!NILP (Vmac_command_modifier) && (mods & cmdKey)) { |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8319 Lisp_Object val = Fget(Vmac_command_modifier, Qmodifier_value); |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8320 if (INTEGERP(val)) |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8321 result |= XUINT(val); |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
8322 } |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8323 if (!NILP (Vmac_control_modifier) && (mods & controlKey)) { |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8324 Lisp_Object val = Fget(Vmac_control_modifier, Qmodifier_value); |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8325 if (INTEGERP(val)) |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8326 result |= XUINT(val); |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
8327 } |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8328 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8329 #ifdef MAC_OSX |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8330 if (!NILP (Vmac_function_modifier) && (mods & kEventKeyModifierFnMask)) { |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8331 Lisp_Object val = Fget(Vmac_function_modifier, Qmodifier_value); |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8332 if (INTEGERP(val)) |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8333 result |= XUINT(val); |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
8334 } |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
8335 #endif |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
8336 |
46798 | 8337 return result; |
8338 } | |
8339 | |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8340 static int |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8341 mac_get_emulated_btn ( UInt32 modifiers ) |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8342 { |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8343 int result = 0; |
55583
21f88361795c
Various fixes to support USE_LSB_TAG with carbon emacs. Mostly fixing
Steven Tamm <steventamm@mac.com>
parents:
55539
diff
changeset
|
8344 if (!NILP (Vmac_emulate_three_button_mouse)) { |
21f88361795c
Various fixes to support USE_LSB_TAG with carbon emacs. Mostly fixing
Steven Tamm <steventamm@mac.com>
parents:
55539
diff
changeset
|
8345 int cmdIs3 = !EQ (Vmac_emulate_three_button_mouse, Qreverse); |
56277
fd126130c3cd
macterm.c (mac_get_emulated_btn)
Steven Tamm <steventamm@mac.com>
parents:
56271
diff
changeset
|
8346 if (modifiers & cmdKey) |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8347 result = cmdIs3 ? 2 : 1; |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8348 else if (modifiers & optionKey) |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
8349 result = cmdIs3 ? 1 : 2; |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8350 } |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8351 return result; |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8352 } |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8353 |
46798 | 8354 #if USE_CARBON_EVENTS |
8355 /* Obtains the event modifiers from the event ref and then calls | |
8356 mac_to_emacs_modifiers. */ | |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
8357 static UInt32 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8358 mac_event_to_emacs_modifiers (EventRef eventRef) |
46798 | 8359 { |
8360 UInt32 mods = 0; | |
8361 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL, | |
8362 sizeof (UInt32), NULL, &mods); | |
55583
21f88361795c
Various fixes to support USE_LSB_TAG with carbon emacs. Mostly fixing
Steven Tamm <steventamm@mac.com>
parents:
55539
diff
changeset
|
8363 if (!NILP (Vmac_emulate_three_button_mouse) && |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8364 GetEventClass(eventRef) == kEventClassMouse) |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8365 { |
56277
fd126130c3cd
macterm.c (mac_get_emulated_btn)
Steven Tamm <steventamm@mac.com>
parents:
56271
diff
changeset
|
8366 mods &= ~(optionKey | cmdKey); |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8367 } |
46798 | 8368 return mac_to_emacs_modifiers (mods); |
8369 } | |
8370 | |
8371 /* Given an event ref, return the code to use for the mouse button | |
8372 code in the emacs input_event. */ | |
8373 static int | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8374 mac_get_mouse_btn (EventRef ref) |
46798 | 8375 { |
8376 EventMouseButton result = kEventMouseButtonPrimary; | |
8377 GetEventParameter (ref, kEventParamMouseButton, typeMouseButton, NULL, | |
8378 sizeof (EventMouseButton), NULL, &result); | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8379 switch (result) |
46798 | 8380 { |
8381 case kEventMouseButtonPrimary: | |
55583
21f88361795c
Various fixes to support USE_LSB_TAG with carbon emacs. Mostly fixing
Steven Tamm <steventamm@mac.com>
parents:
55539
diff
changeset
|
8382 if (NILP (Vmac_emulate_three_button_mouse)) |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8383 return 0; |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8384 else { |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8385 UInt32 mods = 0; |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8386 GetEventParameter (ref, kEventParamKeyModifiers, typeUInt32, NULL, |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8387 sizeof (UInt32), NULL, &mods); |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8388 return mac_get_emulated_btn(mods); |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
8389 } |
46798 | 8390 case kEventMouseButtonSecondary: |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8391 return mac_wheel_button_is_mouse_2 ? 2 : 1; |
46798 | 8392 case kEventMouseButtonTertiary: |
8393 case 4: /* 4 is the number for the mouse wheel button */ | |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8394 return mac_wheel_button_is_mouse_2 ? 1 : 2; |
46798 | 8395 default: |
8396 return 0; | |
8397 } | |
8398 } | |
8399 | |
8400 /* Normally, ConvertEventRefToEventRecord will correctly handle all | |
8401 events. However the click of the mouse wheel is not converted to a | |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8402 mouseDown or mouseUp event. Likewise for dead key down events. |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8403 This calls ConvertEventRef, but then checks to see if it is a mouse |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8404 up/down, or a dead key down carbon event that has not been |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8405 converted, and if so, converts it by hand (to be picked up in the |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8406 XTread_socket loop). */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8407 static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec) |
46798 | 8408 { |
8409 Boolean result = ConvertEventRefToEventRecord (eventRef, eventRec); | |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8410 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8411 if (result) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8412 return result; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8413 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8414 switch (GetEventClass (eventRef)) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8415 { |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8416 case kEventClassMouse: |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8417 switch (GetEventKind (eventRef)) |
46798 | 8418 { |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8419 case kEventMouseDown: |
46798 | 8420 eventRec->what = mouseDown; |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8421 result = 1; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8422 break; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8423 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8424 case kEventMouseUp: |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8425 eventRec->what = mouseUp; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8426 result = 1; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8427 break; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8428 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8429 default: |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8430 break; |
46798 | 8431 } |
63794
0ddaa52824cd
[USE_CARBON_EVENTS] (mac_convert_event_ref): Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63461
diff
changeset
|
8432 break; |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8433 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8434 case kEventClassKeyboard: |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8435 switch (GetEventKind (eventRef)) |
46798 | 8436 { |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8437 case kEventRawKeyDown: |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8438 { |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8439 unsigned char char_codes; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8440 UInt32 key_code; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8441 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8442 eventRec->what = keyDown; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8443 GetEventParameter (eventRef, kEventParamKeyMacCharCodes, typeChar, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8444 NULL, sizeof (char), NULL, &char_codes); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8445 GetEventParameter (eventRef, kEventParamKeyCode, typeUInt32, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8446 NULL, sizeof (UInt32), NULL, &key_code); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8447 eventRec->message = char_codes | ((key_code & 0xff) << 8); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8448 result = 1; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8449 } |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8450 break; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8451 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8452 default: |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8453 break; |
46798 | 8454 } |
63794
0ddaa52824cd
[USE_CARBON_EVENTS] (mac_convert_event_ref): Fix last change.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63461
diff
changeset
|
8455 break; |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8456 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8457 default: |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8458 break; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8459 } |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8460 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8461 if (result) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8462 { |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8463 /* Need where and when. */ |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8464 UInt32 mods; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8465 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8466 GetEventParameter (eventRef, kEventParamMouseLocation, typeQDPoint, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8467 NULL, sizeof (Point), NULL, &eventRec->where); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8468 /* Use two step process because new event modifiers are 32-bit |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8469 and old are 16-bit. Currently, only loss is NumLock & Fn. */ |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8470 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8471 NULL, sizeof (UInt32), NULL, &mods); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8472 eventRec->modifiers = mods; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8473 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8474 eventRec->when = EventTimeToTicks (GetEventTime (eventRef)); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8475 } |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8476 |
46798 | 8477 return result; |
8478 } | |
8479 | |
8480 #endif | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8481 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8482 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8483 do_get_menus (void) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8484 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8485 Handle menubar_handle; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8486 MenuHandle menu_handle; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8487 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8488 menubar_handle = GetNewMBar (128); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8489 if(menubar_handle == NULL) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8490 abort (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8491 SetMenuBar (menubar_handle); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8492 DrawMenuBar (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8493 |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8494 #if !TARGET_API_MAC_CARBON |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8495 menu_handle = GetMenuHandle (M_APPLE); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8496 if(menu_handle != NULL) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8497 AppendResMenu (menu_handle,'DRVR'); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8498 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8499 abort (); |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8500 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8501 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8502 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8503 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8504 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8505 do_init_managers (void) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8506 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8507 #if !TARGET_API_MAC_CARBON |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8508 InitGraf (&qd.thePort); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8509 InitFonts (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8510 FlushEvents (everyEvent, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8511 InitWindows (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8512 InitMenus (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8513 TEInit (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8514 InitDialogs (NULL); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8515 #endif /* !TARGET_API_MAC_CARBON */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8516 InitCursor (); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8517 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8518 #if !TARGET_API_MAC_CARBON |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8519 /* set up some extra stack space for use by emacs */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8520 SetApplLimit ((Ptr) ((long) GetApplLimit () - EXTRA_STACK_ALLOC)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8521 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8522 /* MaxApplZone must be called for AppleScript to execute more |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8523 complicated scripts */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8524 MaxApplZone (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8525 MoreMasters (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8526 #endif /* !TARGET_API_MAC_CARBON */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8527 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8528 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8529 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8530 do_check_ram_size (void) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8531 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8532 SInt32 physical_ram_size, logical_ram_size; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8533 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8534 if (Gestalt (gestaltPhysicalRAMSize, &physical_ram_size) != noErr |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8535 || Gestalt (gestaltLogicalRAMSize, &logical_ram_size) != noErr |
53579
862b91168878
(do_check_ram_size): Don't hardcode the lisp address space size.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53475
diff
changeset
|
8536 || physical_ram_size > (1 << VALBITS) |
862b91168878
(do_check_ram_size): Don't hardcode the lisp address space size.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53475
diff
changeset
|
8537 || logical_ram_size > (1 << VALBITS)) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8538 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8539 StopAlert (RAM_TOO_LARGE_ALERT_ID, NULL); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8540 exit (1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8541 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8542 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8543 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8544 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8545 do_window_update (WindowPtr win) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8546 { |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
8547 struct frame *f = mac_window_to_frame (win); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
8548 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8549 BeginUpdate (win); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8550 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8551 /* The tooltip has been drawn already. Avoid the SET_FRAME_GARBAGED |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8552 below. */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8553 if (win != tip_window) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8554 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8555 if (f->async_visible == 0) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8556 { |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8557 /* Update events may occur when a frame gets iconified. */ |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8558 #if 0 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8559 f->async_visible = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8560 f->async_iconified = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8561 SET_FRAME_GARBAGED (f); |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8562 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8563 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8564 else |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8565 { |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8566 Rect r; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8567 #if TARGET_API_MAC_CARBON |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8568 RgnHandle region = NewRgn (); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8569 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8570 GetPortVisibleRegion (GetWindowPort (win), region); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8571 GetRegionBounds (region, &r); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8572 expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8573 UpdateControls (win, region); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8574 DisposeRgn (region); |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8575 #else |
60623
5a3fa411c713
(activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60611
diff
changeset
|
8576 r = (*win->visRgn)->rgnBBox; |
5a3fa411c713
(activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60611
diff
changeset
|
8577 expose_frame (f, r.left, r.top, r.right - r.left, r.bottom - r.top); |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8578 UpdateControls (win, win->visRgn); |
60623
5a3fa411c713
(activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60611
diff
changeset
|
8579 #endif |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
8580 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8581 } |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8582 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8583 EndUpdate (win); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8584 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8585 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8586 static int |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8587 is_emacs_window (WindowPtr win) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8588 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8589 Lisp_Object tail, frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8590 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8591 if (!win) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8592 return 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8593 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8594 FOR_EACH_FRAME (tail, frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8595 if (FRAME_MAC_P (XFRAME (frame))) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8596 if (FRAME_MAC_WINDOW (XFRAME (frame)) == win) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8597 return 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8598 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8599 return 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8600 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8601 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8602 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8603 do_app_resume () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8604 { |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8605 /* Window-activate events will do the job. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8606 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8607 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8608 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8609 do_app_suspend () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8610 { |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8611 /* Window-deactivate events will do the job. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8612 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8613 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8614 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8615 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8616 do_apple_menu (SInt16 menu_item) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8617 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8618 #if !TARGET_API_MAC_CARBON |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8619 Str255 item_name; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8620 SInt16 da_driver_refnum; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8621 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8622 if (menu_item == I_ABOUT) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8623 NoteAlert (ABOUT_ALERT_ID, NULL); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8624 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8625 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8626 GetMenuItemText (GetMenuHandle (M_APPLE), menu_item, item_name); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8627 da_driver_refnum = OpenDeskAcc (item_name); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8628 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8629 #endif /* !TARGET_API_MAC_CARBON */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8630 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8631 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8632 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8633 do_menu_choice (SInt32 menu_choice) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8634 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8635 SInt16 menu_id, menu_item; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8636 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8637 menu_id = HiWord (menu_choice); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8638 menu_item = LoWord (menu_choice); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8639 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8640 switch (menu_id) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8641 { |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8642 case 0: |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8643 break; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8644 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8645 case M_APPLE: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8646 do_apple_menu (menu_item); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8647 break; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8648 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8649 default: |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8650 { |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
8651 struct frame *f = mac_focus_frame (&one_mac_display_info); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8652 MenuHandle menu = GetMenuHandle (menu_id); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8653 if (menu) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8654 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8655 UInt32 refcon; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8656 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8657 GetMenuItemRefCon (menu, menu_item, &refcon); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8658 menubar_selection_callback (f, refcon); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8659 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8660 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8661 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8662 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8663 HiliteMenu (0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8664 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8665 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8666 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8667 /* Handle drags in size box. Based on code contributed by Ben |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8668 Mesander and IM - Window Manager A. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8669 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8670 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8671 do_grow_window (WindowPtr w, EventRecord *e) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8672 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8673 Rect limit_rect; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8674 int rows, columns, width, height; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
8675 struct frame *f = mac_window_to_frame (w); |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8676 XSizeHints *size_hints = FRAME_SIZE_HINTS (f); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8677 int min_width = MIN_DOC_SIZE, min_height = MIN_DOC_SIZE; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8678 #if TARGET_API_MAC_CARBON |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8679 Rect new_rect; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8680 #else |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8681 long grow_size; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8682 #endif |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8683 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8684 if (size_hints->flags & PMinSize) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8685 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8686 min_width = size_hints->min_width; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8687 min_height = size_hints->min_height; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8688 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8689 SetRect (&limit_rect, min_width, min_height, MAX_DOC_SIZE, MAX_DOC_SIZE); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8690 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8691 #if TARGET_API_MAC_CARBON |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8692 if (!ResizeWindow (w, e->where, &limit_rect, &new_rect)) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8693 return; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8694 height = new_rect.bottom - new_rect.top; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8695 width = new_rect.right - new_rect.left; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8696 #else |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8697 grow_size = GrowWindow (w, e->where, &limit_rect); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8698 /* see if it really changed size */ |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8699 if (grow_size == 0) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8700 return; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8701 height = HiWord (grow_size); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8702 width = LoWord (grow_size); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8703 #endif |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8704 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8705 if (width != FRAME_PIXEL_WIDTH (f) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8706 || height != FRAME_PIXEL_HEIGHT (f)) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8707 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8708 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, height); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8709 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8710 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8711 x_set_window_size (f, 0, columns, rows); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8712 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8713 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8714 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8715 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8716 /* Handle clicks in zoom box. Calculation of "standard state" based |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8717 on code in IM - Window Manager A and code contributed by Ben |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8718 Mesander. The standard state of an Emacs window is 80-characters |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8719 wide (DEFAULT_NUM_COLS) and as tall as will fit on the screen. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8720 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8721 static void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8722 do_zoom_window (WindowPtr w, int zoom_in_or_out) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8723 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8724 GrafPtr save_port; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8725 Rect zoom_rect, port_rect; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8726 Point top_left; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8727 int w_title_height, columns, rows, width, height; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
8728 struct frame *f = mac_window_to_frame (w); |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
8729 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8730 |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8731 #if TARGET_API_MAC_CARBON |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8732 { |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8733 Point standard_size; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8734 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8735 standard_size.h = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS); |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
8736 standard_size.v = dpyinfo->height; |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8737 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8738 if (IsWindowInStandardState (w, &standard_size, &zoom_rect)) |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8739 zoom_in_or_out = inZoomIn; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8740 else |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8741 { |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8742 /* Adjust the standard size according to character boundaries. */ |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8743 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8744 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, zoom_rect.right - zoom_rect.left); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8745 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, zoom_rect.bottom - zoom_rect.top); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8746 standard_size.h = FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, columns); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8747 standard_size.v = FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, rows); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8748 GetWindowBounds (w, kWindowContentRgn, &port_rect); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8749 if (IsWindowInStandardState (w, &standard_size, &zoom_rect) |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8750 && port_rect.left == zoom_rect.left |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8751 && port_rect.top == zoom_rect.top) |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8752 zoom_in_or_out = inZoomIn; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8753 else |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8754 zoom_in_or_out = inZoomOut; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8755 } |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8756 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8757 ZoomWindowIdeal (w, zoom_in_or_out, &standard_size); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8758 } |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8759 #else /* not TARGET_API_MAC_CARBON */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8760 GetPort (&save_port); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8761 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
8762 SetPortWindowPort (w); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8763 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8764 /* Clear window to avoid flicker. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8765 EraseRect (&(w->portRect)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8766 if (zoom_in_or_out == inZoomOut) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8767 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8768 SetPt (&top_left, w->portRect.left, w->portRect.top); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8769 LocalToGlobal (&top_left); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8770 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8771 /* calculate height of window's title bar */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8772 w_title_height = top_left.v - 1 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8773 - (**((WindowPeek) w)->strucRgn).rgnBBox.top + GetMBarHeight (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8774 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8775 /* get maximum height of window into zoom_rect.bottom - zoom_rect.top */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8776 zoom_rect = qd.screenBits.bounds; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8777 zoom_rect.top += w_title_height; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8778 InsetRect (&zoom_rect, 8, 4); /* not too tight */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
8779 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8780 zoom_rect.right = zoom_rect.left |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
8781 + FRAME_TEXT_COLS_TO_PIXEL_WIDTH (f, DEFAULT_NUM_COLS); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8782 |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8783 /* Adjust the standard size according to character boundaries. */ |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8784 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, zoom_rect.bottom - zoom_rect.top); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8785 zoom_rect.bottom = |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8786 zoom_rect.top + FRAME_TEXT_LINES_TO_PIXEL_HEIGHT (f, rows); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8787 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8788 (**((WStateDataHandle) ((WindowPeek) w)->dataHandle)).stdState |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8789 = zoom_rect; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8790 } |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8791 |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
8792 ZoomWindow (w, zoom_in_or_out, f == mac_focus_frame (dpyinfo)); |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8793 |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8794 SetPort (save_port); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8795 #endif /* not TARGET_API_MAC_CARBON */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8796 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8797 /* retrieve window size and update application values */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8798 #if TARGET_API_MAC_CARBON |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8799 GetWindowPortBounds (w, &port_rect); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8800 #else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8801 port_rect = w->portRect; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8802 #endif |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8803 height = port_rect.bottom - port_rect.top; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8804 width = port_rect.right - port_rect.left; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8805 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8806 if (width != FRAME_PIXEL_WIDTH (f) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8807 || height != FRAME_PIXEL_HEIGHT (f)) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8808 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8809 rows = FRAME_PIXEL_HEIGHT_TO_TEXT_LINES (f, height); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8810 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8811 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8812 change_frame_size (f, rows, columns, 0, 1, 0); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8813 SET_FRAME_GARBAGED (f); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8814 cancel_mouse_face (f); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8815 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8816 FRAME_PIXEL_WIDTH (f) = width; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8817 FRAME_PIXEL_HEIGHT (f) = height; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8818 } |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
8819 x_real_positions (f, &f->left_pos, &f->top_pos); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8820 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
8821 |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8822 OSErr |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8823 mac_store_apple_event (class, id, desc) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8824 Lisp_Object class, id; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8825 const AEDesc *desc; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8826 { |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8827 OSErr err = noErr; |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8828 struct input_event buf; |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8829 AEDesc *desc_copy; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8830 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8831 desc_copy = xmalloc (sizeof (AEDesc)); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8832 if (desc_copy == NULL) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8833 err = memFullErr; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8834 else |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8835 err = AEDuplicateDesc (desc, desc_copy); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8836 if (err == noErr) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8837 { |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8838 EVENT_INIT (buf); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8839 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8840 buf.kind = MAC_APPLE_EVENT; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8841 buf.x = class; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8842 buf.y = id; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8843 buf.code = (int)desc_copy; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8844 XSETFRAME (buf.frame_or_window, |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8845 mac_focus_frame (&one_mac_display_info)); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8846 buf.arg = Qnil; |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8847 kbd_buffer_store_event (&buf); |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8848 } |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8849 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8850 return err; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8851 } |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8852 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8853 Lisp_Object |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8854 mac_make_lispy_event_code (code) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8855 int code; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8856 { |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8857 AEDesc *desc = (AEDesc *)code; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8858 Lisp_Object obj; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8859 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8860 obj = mac_aedesc_to_lisp (desc); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8861 AEDisposeDesc (desc); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8862 xfree (desc); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8863 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8864 return obj; |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8865 } |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8866 |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8867 #if USE_CARBON_EVENTS |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8868 static pascal OSStatus |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8869 mac_handle_command_event (next_handler, event, data) |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8870 EventHandlerCallRef next_handler; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8871 EventRef event; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8872 void *data; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8873 { |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8874 OSStatus result; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8875 OSErr err; |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8876 HICommand command; |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8877 Lisp_Object class_key, id_key, binding; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8878 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8879 result = CallNextEventHandler (next_handler, event); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8880 if (result != eventNotHandledErr) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8881 return result; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8882 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8883 GetEventParameter (event, kEventParamDirectObject, typeHICommand, NULL, |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8884 sizeof (HICommand), NULL, &command); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8885 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8886 if (command.commandID == 0) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8887 return eventNotHandledErr; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8888 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8889 /* A HICommand event is mapped to an Apple event whose event class |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8890 symbol is `hicommand' and event ID is its command ID. */ |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8891 class_key = Qhicommand; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8892 mac_find_apple_event_spec (0, command.commandID, |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8893 &class_key, &id_key, &binding); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8894 if (!NILP (binding) && !EQ (binding, Qundefined)) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8895 if (INTEGERP (binding)) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8896 return XINT (binding); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8897 else |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8898 { |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8899 AppleEvent apple_event; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8900 UInt32 modifiers; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8901 static EventParamName names[] = {kEventParamDirectObject, |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8902 kEventParamKeyModifiers}; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8903 static EventParamType types[] = {typeHICommand, |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8904 typeUInt32}; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8905 err = create_apple_event_from_event_ref (event, 2, names, types, |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
8906 &apple_event); |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8907 if (err == noErr) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8908 { |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8909 err = mac_store_apple_event (class_key, id_key, &apple_event); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8910 AEDisposeDesc (&apple_event); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8911 } |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8912 if (err == noErr) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8913 return noErr; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
8914 } |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8915 |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8916 return eventNotHandledErr; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8917 } |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8918 |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8919 static OSErr |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
8920 init_command_handler () |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8921 { |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8922 OSErr err = noErr; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8923 EventTypeSpec specs[] = {{kEventClassCommand, kEventCommandProcess}}; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8924 static EventHandlerUPP handle_command_eventUPP = NULL; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8925 |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8926 if (handle_command_eventUPP == NULL) |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8927 handle_command_eventUPP = NewEventHandlerUPP (mac_handle_command_event); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8928 return InstallApplicationEventHandler (handle_command_eventUPP, |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8929 GetEventTypeCount (specs), specs, |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8930 NULL, NULL); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8931 } |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8932 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8933 static pascal OSStatus |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8934 mac_handle_window_event (next_handler, event, data) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8935 EventHandlerCallRef next_handler; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8936 EventRef event; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8937 void *data; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8938 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8939 WindowPtr wp; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8940 OSStatus result; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8941 UInt32 attributes; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8942 XSizeHints *size_hints; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8943 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8944 GetEventParameter (event, kEventParamDirectObject, typeWindowRef, |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8945 NULL, sizeof (WindowPtr), NULL, &wp); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8946 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8947 switch (GetEventKind (event)) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8948 { |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
8949 case kEventWindowUpdate: |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
8950 result = CallNextEventHandler (next_handler, event); |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
8951 if (result != eventNotHandledErr) |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
8952 return result; |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
8953 |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
8954 do_window_update (wp); |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
8955 return noErr; |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
8956 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8957 case kEventWindowBoundsChanging: |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8958 result = CallNextEventHandler (next_handler, event); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8959 if (result != eventNotHandledErr) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8960 return result; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8961 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8962 GetEventParameter (event, kEventParamAttributes, typeUInt32, |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8963 NULL, sizeof (UInt32), NULL, &attributes); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8964 size_hints = FRAME_SIZE_HINTS (mac_window_to_frame (wp)); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8965 if ((attributes & kWindowBoundsChangeUserResize) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8966 && ((size_hints->flags & (PResizeInc | PBaseSize | PMinSize)) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8967 == (PResizeInc | PBaseSize | PMinSize))) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8968 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8969 Rect bounds; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8970 int width, height; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8971 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8972 GetEventParameter (event, kEventParamCurrentBounds, |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8973 typeQDRectangle, |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8974 NULL, sizeof (Rect), NULL, &bounds); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8975 width = bounds.right - bounds.left; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8976 height = bounds.bottom - bounds.top; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8977 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8978 if (width < size_hints->min_width) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8979 width = size_hints->min_width; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8980 else |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8981 width = size_hints->base_width |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8982 + (int) ((width - size_hints->base_width) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8983 / (float) size_hints->width_inc + .5) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8984 * size_hints->width_inc; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8985 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8986 if (height < size_hints->min_height) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8987 height = size_hints->min_height; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8988 else |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8989 height = size_hints->base_height |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8990 + (int) ((height - size_hints->base_height) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8991 / (float) size_hints->height_inc + .5) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8992 * size_hints->height_inc; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8993 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8994 bounds.right = bounds.left + width; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8995 bounds.bottom = bounds.top + height; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8996 SetEventParameter (event, kEventParamCurrentBounds, |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8997 typeQDRectangle, sizeof (Rect), &bounds); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8998 return noErr; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
8999 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9000 break; |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9001 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9002 case kEventWindowShown: |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9003 case kEventWindowHidden: |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9004 case kEventWindowExpanded: |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9005 case kEventWindowCollapsed: |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9006 result = CallNextEventHandler (next_handler, event); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9007 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9008 mac_handle_visibility_change (mac_window_to_frame (wp)); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9009 return noErr; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9010 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9011 break; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9012 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9013 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9014 return eventNotHandledErr; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9015 } |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9016 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9017 static pascal OSStatus |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9018 mac_handle_mouse_event (next_handler, event, data) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9019 EventHandlerCallRef next_handler; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9020 EventRef event; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9021 void *data; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9022 { |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9023 OSStatus result; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9024 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9025 switch (GetEventKind (event)) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9026 { |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9027 case kEventMouseWheelMoved: |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9028 { |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9029 WindowPtr wp; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9030 struct frame *f; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9031 EventMouseWheelAxis axis; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9032 SInt32 delta; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9033 Point point; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9034 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9035 result = CallNextEventHandler (next_handler, event); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9036 if (result != eventNotHandledErr || read_socket_inev == NULL) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9037 return result; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9038 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9039 GetEventParameter (event, kEventParamWindowRef, typeWindowRef, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9040 NULL, sizeof (WindowRef), NULL, &wp); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9041 f = mac_window_to_frame (wp); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9042 if (f != mac_focus_frame (&one_mac_display_info)) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9043 break; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9044 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9045 GetEventParameter (event, kEventParamMouseWheelAxis, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9046 typeMouseWheelAxis, NULL, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9047 sizeof (EventMouseWheelAxis), NULL, &axis); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9048 if (axis != kEventMouseWheelAxisY) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9049 break; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9050 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9051 GetEventParameter (event, kEventParamMouseWheelDelta, typeSInt32, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9052 NULL, sizeof (SInt32), NULL, &delta); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9053 GetEventParameter (event, kEventParamMouseLocation, typeQDPoint, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9054 NULL, sizeof (Point), NULL, &point); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9055 read_socket_inev->kind = WHEEL_EVENT; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9056 read_socket_inev->code = 0; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9057 read_socket_inev->modifiers = |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9058 (mac_event_to_emacs_modifiers (event) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9059 | ((delta < 0) ? down_modifier : up_modifier)); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9060 SetPortWindowPort (wp); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9061 GlobalToLocal (&point); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9062 XSETINT (read_socket_inev->x, point.h); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9063 XSETINT (read_socket_inev->y, point.v); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9064 XSETFRAME (read_socket_inev->frame_or_window, f); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9065 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9066 return noErr; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9067 } |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9068 break; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9069 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9070 default: |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9071 break; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9072 } |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9073 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9074 return eventNotHandledErr; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9075 } |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9076 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9077 #ifdef MAC_OSX |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9078 OSErr |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9079 mac_store_services_event (event) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9080 EventRef event; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9081 { |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9082 OSErr err; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9083 AppleEvent apple_event; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9084 Lisp_Object id_key; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9085 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9086 switch (GetEventKind (event)) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9087 { |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9088 case kEventServicePaste: |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9089 id_key = Qpaste; |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9090 err = create_apple_event_from_event_ref (event, 0, NULL, NULL, |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9091 &apple_event); |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9092 break; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9093 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9094 case kEventServicePerform: |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9095 { |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9096 static EventParamName names[] = {kEventParamServiceMessageName, |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9097 kEventParamServiceUserData}; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9098 static EventParamType types[] = {typeCFStringRef, |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9099 typeCFStringRef}; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9100 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9101 id_key = Qperform; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9102 err = create_apple_event_from_event_ref (event, 2, names, types, |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9103 &apple_event); |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9104 } |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9105 break; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9106 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9107 default: |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9108 abort (); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9109 } |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9110 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9111 if (err == noErr) |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9112 { |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9113 err = mac_store_apple_event (Qservices, id_key, &apple_event); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9114 AEDisposeDesc (&apple_event); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9115 } |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9116 |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9117 return err; |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9118 } |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9119 #endif /* MAC_OSX */ |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9120 #endif /* USE_CARBON_EVENTS */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9121 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9122 |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9123 OSErr |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9124 install_window_handler (window) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9125 WindowPtr window; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9126 { |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9127 OSErr err = noErr; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9128 #if USE_CARBON_EVENTS |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9129 EventTypeSpec specs_window[] = |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9130 {{kEventClassWindow, kEventWindowUpdate}, |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9131 {kEventClassWindow, kEventWindowBoundsChanging}, |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9132 {kEventClassWindow, kEventWindowShown}, |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9133 {kEventClassWindow, kEventWindowHidden}, |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9134 {kEventClassWindow, kEventWindowExpanded}, |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
9135 {kEventClassWindow, kEventWindowCollapsed}}; |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9136 EventTypeSpec specs_mouse[] = {{kEventClassMouse, kEventMouseWheelMoved}}; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9137 static EventHandlerUPP handle_window_eventUPP = NULL; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9138 static EventHandlerUPP handle_mouse_eventUPP = NULL; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9139 |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9140 if (handle_window_eventUPP == NULL) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9141 handle_window_eventUPP = NewEventHandlerUPP (mac_handle_window_event); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9142 if (handle_mouse_eventUPP == NULL) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9143 handle_mouse_eventUPP = NewEventHandlerUPP (mac_handle_mouse_event); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9144 err = InstallWindowEventHandler (window, handle_window_eventUPP, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9145 GetEventTypeCount (specs_window), |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9146 specs_window, NULL, NULL); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9147 if (err == noErr) |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9148 err = InstallWindowEventHandler (window, handle_mouse_eventUPP, |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9149 GetEventTypeCount (specs_mouse), |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9150 specs_mouse, NULL, NULL); |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9151 #endif |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9152 #if TARGET_API_MAC_CARBON |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9153 if (mac_do_track_dragUPP == NULL) |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9154 mac_do_track_dragUPP = NewDragTrackingHandlerUPP (mac_do_track_drag); |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9155 if (mac_do_receive_dragUPP == NULL) |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9156 mac_do_receive_dragUPP = NewDragReceiveHandlerUPP (mac_do_receive_drag); |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9157 |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9158 if (err == noErr) |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9159 err = InstallTrackingHandler (mac_do_track_dragUPP, window, NULL); |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9160 if (err == noErr) |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9161 err = InstallReceiveHandler (mac_do_receive_dragUPP, window, NULL); |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9162 #endif |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9163 return err; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9164 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9165 |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9166 void |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9167 remove_window_handler (window) |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9168 WindowPtr window; |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9169 { |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9170 #if TARGET_API_MAC_CARBON |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9171 if (mac_do_track_dragUPP) |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9172 RemoveTrackingHandler (mac_do_track_dragUPP, window); |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9173 if (mac_do_receive_dragUPP) |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9174 RemoveReceiveHandler (mac_do_receive_dragUPP, window); |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9175 #endif |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9176 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9177 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9178 #if TARGET_API_MAC_CARBON |
47635 | 9179 static pascal OSErr |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9180 mac_do_track_drag (DragTrackingMessage message, WindowPtr window, |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9181 void *handlerRefCon, DragReference theDrag) |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9182 { |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9183 static int can_accept; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9184 short items; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9185 short index; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9186 ItemReference theItem; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9187 FlavorFlags theFlags; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9188 OSErr result; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9189 |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9190 if (GetFrontWindowOfClass (kMovableModalWindowClass, false)) |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9191 return dragNotAcceptedErr; |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9192 |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9193 switch (message) |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9194 { |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9195 case kDragTrackingEnterHandler: |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9196 CountDragItems (theDrag, &items); |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9197 can_accept = 0; |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9198 for (index = 1; index <= items; index++) |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9199 { |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9200 GetDragItemReferenceNumber (theDrag, index, &theItem); |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9201 result = GetFlavorFlags (theDrag, theItem, flavorTypeHFS, &theFlags); |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9202 if (result == noErr) |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9203 { |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9204 can_accept = 1; |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9205 break; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9206 } |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9207 } |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9208 break; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9209 |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9210 case kDragTrackingEnterWindow: |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9211 if (can_accept) |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9212 { |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9213 RgnHandle hilite_rgn = NewRgn (); |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9214 Rect r; |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9215 struct frame *f = mac_window_to_frame (window); |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9216 |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9217 GetWindowPortBounds (window, &r); |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9218 OffsetRect (&r, -r.left, -r.top); |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9219 RectRgn (hilite_rgn, &r); |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9220 ShowDragHilite (theDrag, hilite_rgn, true); |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9221 DisposeRgn (hilite_rgn); |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9222 SetThemeCursor (kThemeCopyArrowCursor); |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9223 } |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9224 break; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9225 |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9226 case kDragTrackingInWindow: |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9227 break; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9228 |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9229 case kDragTrackingLeaveWindow: |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9230 if (can_accept) |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9231 { |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9232 struct frame *f = mac_window_to_frame (window); |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9233 |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9234 HideDragHilite (theDrag); |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9235 SetThemeCursor (kThemeArrowCursor); |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9236 } |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9237 break; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9238 |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9239 case kDragTrackingLeaveHandler: |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9240 break; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9241 } |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9242 |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9243 return noErr; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9244 } |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9245 |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9246 static pascal OSErr |
47635 | 9247 mac_do_receive_drag (WindowPtr window, void *handlerRefCon, |
9248 DragReference theDrag) | |
46798 | 9249 { |
9250 short items; | |
9251 short index; | |
9252 FlavorFlags theFlags; | |
9253 Point mouse; | |
9254 OSErr result; | |
9255 ItemReference theItem; | |
9256 HFSFlavor data; | |
9257 Size size = sizeof (HFSFlavor); | |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9258 Lisp_Object file_list; |
46798 | 9259 |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9260 if (GetFrontWindowOfClass (kMovableModalWindowClass, false)) |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9261 return dragNotAcceptedErr; |
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9262 |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9263 file_list = Qnil; |
46798 | 9264 GetDragMouse (theDrag, &mouse, 0L); |
9265 CountDragItems (theDrag, &items); | |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
9266 for (index = 1; index <= items; index++) |
46798 | 9267 { |
9268 /* Only handle file references. */ | |
9269 GetDragItemReferenceNumber (theDrag, index, &theItem); | |
9270 result = GetFlavorFlags (theDrag, theItem, flavorTypeHFS, &theFlags); | |
9271 if (result == noErr) | |
9272 { | |
67788
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9273 OSErr err; |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9274 AEDesc desc; |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9275 |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9276 err = GetFlavorData (theDrag, theItem, flavorTypeHFS, |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9277 &data, &size, 0L); |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9278 if (err == noErr) |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9279 err = AECoercePtr (typeFSS, &data.fileSpec, sizeof (FSSpec), |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9280 TYPE_FILE_NAME, &desc); |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9281 if (err == noErr) |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9282 { |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9283 Lisp_Object file; |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9284 |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9285 /* x-dnd functions expect undecoded filenames. */ |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9286 file = make_uninit_string (AEGetDescDataSize (&desc)); |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9287 err = AEGetDescData (&desc, SDATA (file), SBYTES (file)); |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9288 if (err == noErr) |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9289 file_list = Fcons (file, file_list); |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9290 AEDisposeDesc (&desc); |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9291 } |
46798 | 9292 } |
9293 } | |
9294 /* If there are items in the list, construct an event and post it to | |
9295 the queue like an interrupt using kbd_buffer_store_event. */ | |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9296 if (!NILP (file_list)) |
46798 | 9297 { |
9298 struct input_event event; | |
9299 Lisp_Object frame; | |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9300 struct frame *f = mac_window_to_frame (window); |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9301 SInt16 modifiers; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9302 |
46798 | 9303 GlobalToLocal (&mouse); |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9304 GetDragModifiers (theDrag, NULL, NULL, &modifiers); |
46798 | 9305 |
9306 event.kind = DRAG_N_DROP_EVENT; | |
9307 event.code = 0; | |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9308 event.modifiers = mac_to_emacs_modifiers (modifiers); |
46798 | 9309 event.timestamp = TickCount () * (1000 / 60); |
9310 XSETINT (event.x, mouse.h); | |
9311 XSETINT (event.y, mouse.v); | |
9312 XSETFRAME (frame, f); | |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9313 event.frame_or_window = frame; |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9314 event.arg = file_list; |
46798 | 9315 /* Post to the interrupt queue */ |
9316 kbd_buffer_store_event (&event); | |
9317 /* MAC_TODO: Mimic behavior of windows by switching contexts to Emacs */ | |
9318 { | |
9319 ProcessSerialNumber psn; | |
9320 GetCurrentProcess (&psn); | |
9321 SetFrontProcess (&psn); | |
9322 } | |
59189
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9323 |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9324 return noErr; |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9325 } |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9326 else |
60ffced08532
* term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents:
59146
diff
changeset
|
9327 return dragNotAcceptedErr; |
46798 | 9328 } |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9329 #endif |
46798 | 9330 |
9331 | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9332 #if __profile__ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9333 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9334 profiler_exit_proc () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9335 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9336 ProfilerDump ("\pEmacs.prof"); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9337 ProfilerTerm (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9338 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9339 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9340 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9341 /* These few functions implement Emacs as a normal Mac application |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9342 (almost): set up the heap and the Toolbox, handle necessary system |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9343 events plus a few simple menu events. They also set up Emacs's |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9344 access to functions defined in the rest of this file. Emacs uses |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9345 function hooks to perform all its terminal I/O. A complete list of |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9346 these functions appear in termhooks.h. For what they do, read the |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9347 comments there and see also w32term.c and xterm.c. What's |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9348 noticeably missing here is the event loop, which is normally |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9349 present in most Mac application. After performing the necessary |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9350 Mac initializations, main passes off control to emacs_main |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9351 (corresponding to main in emacs.c). Emacs_main calls XTread_socket |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9352 (defined further below) to read input. This is where |
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9353 WaitNextEvent/ReceiveNextEvent is called to process Mac events. */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9354 |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
9355 #ifdef MAC_OS8 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9356 #undef main |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
9357 int |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9358 main (void) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9359 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9360 #if __profile__ /* is the profiler on? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9361 if (ProfilerInit(collectDetailed, bestTimeBase, 5000, 200)) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9362 exit(1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9363 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9364 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9365 #if __MWERKS__ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9366 /* set creator and type for files created by MSL */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9367 _fcreator = 'EMAx'; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9368 _ftype = 'TEXT'; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9369 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9370 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9371 do_init_managers (); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
9372 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9373 do_get_menus (); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
9374 |
53651
c7d570b7ba42
(main) [USE_LSB_TAG]: Don't range check the ram.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53606
diff
changeset
|
9375 #ifndef USE_LSB_TAG |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9376 do_check_ram_size (); |
53651
c7d570b7ba42
(main) [USE_LSB_TAG]: Don't range check the ram.
Stefan Monnier <monnier@iro.umontreal.ca>
parents:
53606
diff
changeset
|
9377 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9378 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9379 init_emacs_passwd_dir (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9380 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9381 init_environ (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9382 |
67788
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9383 init_coercion_handler (); |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
9384 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9385 initialize_applescript (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9386 |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9387 init_apple_event_handler (); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
9388 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9389 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9390 char **argv; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9391 int argc = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9392 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9393 /* set up argv array from STR# resource */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9394 get_string_list (&argv, ARGV_STRING_LIST_ID); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9395 while (argv[argc]) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9396 argc++; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9397 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9398 /* free up AppleScript resources on exit */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9399 atexit (terminate_applescript); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9400 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9401 #if __profile__ /* is the profiler on? */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9402 atexit (profiler_exit_proc); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9403 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9404 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9405 /* 3rd param "envp" never used in emacs_main */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9406 (void) emacs_main (argc, argv, 0); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9407 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9408 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9409 /* Never reached - real exit in Fkill_emacs */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9410 return 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9411 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9412 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9413 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9414 /* Table for translating Mac keycode to X keysym values. Contributed |
60611
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9415 by Sudhir Shenoy. |
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9416 Mapping for special keys is now identical to that in Apple X11 |
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9417 except `clear' (-> <clear>) on the KeyPad, `enter' (-> <kp-enter>) |
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9418 on the right of the Cmd key on laptops, and fn + `enter' (-> |
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9419 <linefeed>). */ |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9420 static unsigned char keycode_to_xkeysym_table[] = { |
49504
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9421 /*0x00*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9422 /*0x10*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9423 /*0x20*/ 0, 0, 0, 0, 0x0d /*return*/, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9424 |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9425 /*0x30*/ 0x09 /*tab*/, 0 /*0x0020 space*/, 0, 0x08 /*backspace*/, |
60611
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9426 /*0x34*/ 0x8d /*enter on laptops*/, 0x1b /*escape*/, 0, 0, |
49504
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9427 /*0x38*/ 0, 0, 0, 0, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9428 /*0x3C*/ 0, 0, 0, 0, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9429 |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
9430 /*0x40*/ 0, 0xae /*kp-.*/, 0, 0xaa /*kp-**/, |
60611
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9431 /*0x44*/ 0, 0xab /*kp-+*/, 0, 0x0b /*clear*/, |
49504
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9432 /*0x48*/ 0, 0, 0, 0xaf /*kp-/*/, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9433 /*0x4C*/ 0x8d /*kp-enter*/, 0, 0xad /*kp--*/, 0, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9434 |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9435 /*0x50*/ 0, 0xbd /*kp-=*/, 0xb0 /*kp-0*/, 0xb1 /*kp-1*/, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9436 /*0x54*/ 0xb2 /*kp-2*/, 0xb3 /*kp-3*/, 0xb4 /*kp-4*/, 0xb5 /*kp-5*/, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9437 /*0x58*/ 0xb6 /*kp-6*/, 0xb7 /*kp-7*/, 0, 0xb8 /*kp-8*/, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9438 /*0x5C*/ 0xb9 /*kp-9*/, 0, 0, 0, |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9439 |
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9440 /*0x60*/ 0xc2 /*f5*/, 0xc3 /*f6*/, 0xc4 /*f7*/, 0xc0 /*f3*/, |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
9441 /*0x64*/ 0xc5 /*f8*/, 0xc6 /*f9*/, 0, 0xc8 /*f11*/, |
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
9442 /*0x68*/ 0, 0xca /*f13*/, 0, 0xcb /*f14*/, |
60611
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9443 /*0x6C*/ 0, 0xc7 /*f10*/, 0x0a /*fn+enter on laptops*/, 0xc9 /*f12*/, |
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9444 |
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9445 /*0x70*/ 0, 0xcc /*f15*/, 0x6a /*help*/, 0x50 /*home*/, |
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9446 /*0x74*/ 0x55 /*pgup*/, 0xff /*delete*/, 0xc1 /*f4*/, 0x57 /*end*/, |
4536f307a219
(keycode_to_xkeysym_table): Change mapping so that it coincide with
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60364
diff
changeset
|
9447 /*0x78*/ 0xbf /*f2*/, 0x56 /*pgdown*/, 0xbe /*f1*/, 0x51 /*left*/, |
49504
0ffb4e489776
2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents:
49346
diff
changeset
|
9448 /*0x7C*/ 0x53 /*right*/, 0x54 /*down*/, 0x52 /*up*/, 0 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9449 }; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9450 |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9451 |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
9452 static int |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9453 keycode_to_xkeysym (int keyCode, int *xKeySym) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9454 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9455 *xKeySym = keycode_to_xkeysym_table [keyCode & 0x7f]; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9456 return *xKeySym != 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9457 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9458 |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9459 static unsigned char fn_keycode_to_xkeysym_table[] = { |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9460 /*0x00*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9461 /*0x10*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9462 /*0x20*/ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9463 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9464 /*0x30*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9465 /*0x34*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9466 /*0x38*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9467 /*0x3C*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9468 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9469 /*0x40*/ 0, 0x2e /*kp-. = .*/, 0, 0x50 /*kp-* = 'p'*/, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9470 /*0x44*/ 0, '/' /*kp-+*/, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9471 /*0x48*/ 0, 0, 0, 0x30 /*kp-/ = '0'*/, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9472 /*0x4C*/ 0, 0, 0x3b /*kp-- = ';'*/, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9473 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9474 /*0x50*/ 0, 0x2d /*kp-= = '-'*/, 0x6d /*kp-0 = 'm'*/, 0x6a /*kp-1 = 'j'*/, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9475 /*0x54*/ 0x6b /*kp-2 = 'k'*/, 0x6c /*kp-3 = 'l'*/, 'u' /*kp-4*/, 'i' /*kp-5*/, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9476 /*0x58*/ 'o' /*kp-6*/, '7' /*kp-7*/, 0, '8' /*kp-8*/, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9477 /*0x5C*/ '9' /*kp-9*/, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9478 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9479 /*0x60*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9480 /*0x64*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9481 /*0x68*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9482 /*0x6C*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9483 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9484 /*0x70*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9485 /*0x74*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9486 /*0x78*/ 0, 0, 0, 0, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9487 /*0x7C*/ 0, 0, 0, 0 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9488 }; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9489 static int |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9490 convert_fn_keycode (EventRef eventRef, int keyCode, int *newCode) |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9491 { |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9492 #ifdef MAC_OSX |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
9493 /* Use the special map to translate keys when function modifier is |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9494 to be caught. KeyTranslate can't be used in that case. |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9495 We can't detect the function key using the input_event.modifiers, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9496 because this uses the high word of an UInt32. Therefore, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9497 we'll just read it out of the original eventRef. |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9498 */ |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9499 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9500 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9501 /* TODO / known issues |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9502 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9503 - Fn-Shift-j is regonized as Fn-j and not Fn-J. |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9504 The above table always translates to lower characters. We need to use |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9505 the KCHR keyboard resource (KeyTranslate() ) to map k->K and 8->*. |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9506 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9507 - The table is meant for English language keyboards, and it will work |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9508 for many others with the exception of key combinations like Fn-ö on |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
9509 a German keyboard, which is currently mapped to Fn-;. |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9510 How to solve this without keeping separate tables for all keyboards |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9511 around? KeyTranslate isn't of much help here, as it only takes a 16-bit |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9512 value for keycode with the modifiers in he high byte, i.e. no room for the |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9513 Fn modifier. That's why we need the table. |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9514 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9515 */ |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9516 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9517 UInt32 mods = 0; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
9518 if (!NILP(Vmac_function_modifier)) |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9519 { |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9520 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9521 sizeof (UInt32), NULL, &mods); |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
9522 if (mods & kEventKeyModifierFnMask) |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9523 { *newCode = fn_keycode_to_xkeysym_table [keyCode & 0x7f]; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
9524 |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9525 return (*newCode != 0); |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9526 } |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9527 } |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9528 #endif |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9529 return false; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9530 } |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9531 |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
9532 static int |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
9533 backtranslate_modified_keycode(int mods, int keycode, int def) |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
9534 { |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9535 EventModifiers mapped_modifiers = |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9536 (NILP (Vmac_control_modifier) ? 0 : controlKey) |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9537 | (NILP (Vmac_option_modifier) ? 0 : optionKey) |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9538 | (NILP (Vmac_command_modifier) ? 0 : cmdKey); |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9539 |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9540 if (mods & mapped_modifiers) |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9541 { |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9542 /* This code comes from Keyboard Resource, |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9543 Appendix C of IM - Text. This is necessary |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9544 since shift is ignored in KCHR table |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9545 translation when option or command is pressed. |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9546 It also does not translate correctly |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9547 control-shift chars like C-% so mask off shift |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9548 here also. |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9549 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9550 Not done for combinations with the option key (alt) |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
9551 unless it is to be caught by Emacs: this is |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9552 to preserve key combinations translated by the OS |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9553 such as Alt-3. |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9554 */ |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9555 /* Mask off modifier keys that are mapped to some Emacs |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9556 modifiers. */ |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9557 int new_modifiers = mods & ~mapped_modifiers; |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9558 /* set high byte of keycode to modifier high byte*/ |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9559 int new_keycode = keycode | new_modifiers; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9560 Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache); |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9561 unsigned long some_state = 0; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9562 return (int) KeyTranslate (kchr_ptr, new_keycode, |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
9563 &some_state) & 0xff; |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9564 /* TO DO: Recognize two separate resulting characters, "for |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9565 example, when the user presses Option-E followed by N, you |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9566 can map this through the KeyTranslate function using the |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9567 U.S. 'KCHR' resource to produce ´n, which KeyTranslate |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9568 returns as two characters in the bytes labeled Character code |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9569 1 and Character code 2." (from Carbon API doc) */ |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9570 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9571 } |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9572 else |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9573 return def; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9574 } |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9575 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
9576 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9577 #if !USE_CARBON_EVENTS |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9578 static RgnHandle mouse_region = NULL; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9579 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9580 Boolean |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9581 mac_wait_next_event (er, sleep_time, dequeue) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9582 EventRecord *er; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9583 UInt32 sleep_time; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9584 Boolean dequeue; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9585 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9586 static EventRecord er_buf = {nullEvent}; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9587 UInt32 target_tick, current_tick; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9588 EventMask event_mask; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9589 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9590 if (mouse_region == NULL) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9591 mouse_region = NewRgn (); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9592 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9593 event_mask = everyEvent; |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
9594 if (!mac_ready_for_apple_events) |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9595 event_mask -= highLevelEventMask; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9596 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9597 current_tick = TickCount (); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9598 target_tick = current_tick + sleep_time; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9599 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9600 if (er_buf.what == nullEvent) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9601 while (!WaitNextEvent (event_mask, &er_buf, |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9602 target_tick - current_tick, mouse_region)) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9603 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9604 current_tick = TickCount (); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9605 if (target_tick <= current_tick) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9606 return false; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9607 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9608 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9609 *er = er_buf; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9610 if (dequeue) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9611 er_buf.what = nullEvent; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9612 return true; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9613 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9614 #endif /* not USE_CARBON_EVENTS */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9615 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9616 /* Emacs calls this whenever it wants to read an input event from the |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9617 user. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9618 int |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9619 XTread_socket (sd, expected, hold_quit) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9620 int sd, expected; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9621 struct input_event *hold_quit; |
54165
88d1b7a60637
(XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit arg.
Kim F. Storm <storm@cua.dk>
parents:
54150
diff
changeset
|
9622 { |
88d1b7a60637
(XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit arg.
Kim F. Storm <storm@cua.dk>
parents:
54150
diff
changeset
|
9623 struct input_event inev; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
9624 int count = 0; |
46798 | 9625 #if USE_CARBON_EVENTS |
9626 EventRef eventRef; | |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9627 EventTargetRef toolbox_dispatcher; |
46798 | 9628 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9629 EventRecord er; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9630 struct mac_display_info *dpyinfo = &one_mac_display_info; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9631 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9632 if (interrupt_input_blocked) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9633 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9634 interrupt_input_pending = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9635 return -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9636 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9637 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9638 interrupt_input_pending = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9639 BLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9640 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9641 /* So people can tell when we have read the available input. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9642 input_signal_count++; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9643 |
68770
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
9644 ++handling_signal; |
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
9645 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9646 #if USE_CARBON_EVENTS |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9647 toolbox_dispatcher = GetEventDispatcherTarget (); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9648 |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9649 while (!ReceiveNextEvent (0, NULL, kEventDurationNoWait, |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9650 kEventRemoveFromQueue, &eventRef)) |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9651 #else /* !USE_CARBON_EVENTS */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9652 while (mac_wait_next_event (&er, 0, true)) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9653 #endif /* !USE_CARBON_EVENTS */ |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9654 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9655 int do_help = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9656 struct frame *f; |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9657 unsigned long timestamp; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9658 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9659 /* It is necessary to set this (additional) argument slot of an |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9660 event to nil because keyboard.c protects incompletely |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9661 processed event from being garbage collected by placing them |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9662 in the kbd_buffer_gcpro vector. */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9663 EVENT_INIT (inev); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9664 inev.kind = NO_EVENT; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9665 inev.arg = Qnil; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9666 |
46798 | 9667 #if USE_CARBON_EVENTS |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9668 timestamp = GetEventTime (eventRef) / kEventDurationMillisecond; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9669 #else |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9670 timestamp = er.when * (1000 / 60); /* ticks to milliseconds */ |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9671 #endif |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9672 |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9673 #if USE_CARBON_EVENTS |
46798 | 9674 /* Handle new events */ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
9675 if (!mac_convert_event_ref (eventRef, &er)) |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9676 { |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9677 /* There used to be a handler for the kEventMouseWheelMoved |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9678 event here. But as of Mac OS X 10.4, this kind of event |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9679 is not directly posted to the main event queue by |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9680 two-finger scrolling on the trackpad. Instead, some |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9681 private event is posted and it is converted to a wheel |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9682 event by the default handler for the application target. |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9683 The converted one can be received by a Carbon event |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9684 handler installed on a window target. */ |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9685 read_socket_inev = &inev; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9686 SendEventToEventTarget (eventRef, toolbox_dispatcher); |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9687 read_socket_inev = NULL; |
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
9688 } |
46798 | 9689 else |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9690 #endif /* USE_CARBON_EVENTS */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9691 switch (er.what) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9692 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9693 case mouseDown: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9694 case mouseUp: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9695 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9696 WindowPtr window_ptr; |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9697 ControlPartCode part_code; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9698 int tool_bar_p = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9699 |
56278
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
9700 #if USE_CARBON_EVENTS |
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
9701 /* This is needed to send mouse events like aqua window |
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
9702 buttons to the correct handler. */ |
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
9703 if (SendEventToEventTarget (eventRef, toolbox_dispatcher) |
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
9704 != eventNotHandledErr) |
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
9705 break; |
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
9706 #endif |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
9707 last_mouse_glyph_frame = 0; |
56278
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
9708 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9709 if (dpyinfo->grabbed && last_mouse_frame |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9710 && FRAME_LIVE_P (last_mouse_frame)) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9711 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9712 window_ptr = FRAME_MAC_WINDOW (last_mouse_frame); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9713 part_code = inContent; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9714 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9715 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9716 { |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9717 part_code = FindWindow (er.where, &window_ptr); |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9718 if (tip_window && window_ptr == tip_window) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9719 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9720 HideWindow (tip_window); |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9721 part_code = FindWindow (er.where, &window_ptr); |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9722 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9723 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9724 |
66181
dc3ff6945eb2
(note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66110
diff
changeset
|
9725 if (er.what != mouseDown && |
dc3ff6945eb2
(note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66110
diff
changeset
|
9726 (part_code != inContent || dpyinfo->grabbed == 0)) |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9727 break; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9728 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9729 switch (part_code) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9730 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9731 case inMenuBar: |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9732 f = mac_focus_frame (dpyinfo); |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9733 saved_menu_event_location = er.where; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9734 inev.kind = MENU_BAR_ACTIVATE_EVENT; |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9735 XSETFRAME (inev.frame_or_window, f); |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9736 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9737 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9738 case inContent: |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9739 if (window_ptr != FRAME_MAC_WINDOW (mac_focus_frame (dpyinfo))) |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9740 SelectWindow (window_ptr); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9741 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9742 { |
62281
9df01a686e3c
[USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
62103
diff
changeset
|
9743 ControlPartCode control_part_code; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9744 ControlHandle ch; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9745 Point mouse_loc = er.where; |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9746 #ifdef MAC_OSX |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9747 ControlKind control_kind; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9748 #endif |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9749 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9750 f = mac_window_to_frame (window_ptr); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9751 /* convert to local coordinates of new window */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9752 SetPortWindowPort (window_ptr); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9753 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9754 GlobalToLocal (&mouse_loc); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9755 #if TARGET_API_MAC_CARBON |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9756 ch = FindControlUnderMouse (mouse_loc, window_ptr, |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9757 &control_part_code); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9758 #ifdef MAC_OSX |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9759 if (ch) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9760 GetControlKind (ch, &control_kind); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9761 #endif |
46798 | 9762 #else |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9763 control_part_code = FindControl (mouse_loc, window_ptr, |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9764 &ch); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9765 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
9766 |
46798 | 9767 #if USE_CARBON_EVENTS |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9768 inev.code = mac_get_mouse_btn (eventRef); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9769 inev.modifiers = mac_event_to_emacs_modifiers (eventRef); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9770 #else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9771 inev.code = mac_get_emulated_btn (er.modifiers); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9772 inev.modifiers = mac_to_emacs_modifiers (er.modifiers); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9773 #endif |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9774 XSETINT (inev.x, mouse_loc.h); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9775 XSETINT (inev.y, mouse_loc.v); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9776 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9777 if (dpyinfo->grabbed && tracked_scroll_bar |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9778 || ch != 0 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9779 #ifndef USE_TOOLKIT_SCROLL_BARS |
60623
5a3fa411c713
(activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60611
diff
changeset
|
9780 /* control_part_code becomes kControlNoPart if |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9781 a progress indicator is clicked. */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9782 && control_part_code != kControlNoPart |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9783 #else /* USE_TOOLKIT_SCROLL_BARS */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9784 #ifdef MAC_OSX |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9785 && control_kind.kind == kControlKindScrollBar |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9786 #endif /* MAC_OSX */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9787 #endif /* USE_TOOLKIT_SCROLL_BARS */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9788 ) |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9789 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9790 struct scroll_bar *bar; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9791 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9792 if (dpyinfo->grabbed && tracked_scroll_bar) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9793 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9794 bar = tracked_scroll_bar; |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9795 #ifndef USE_TOOLKIT_SCROLL_BARS |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9796 control_part_code = kControlIndicatorPart; |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9797 #endif |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9798 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9799 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9800 bar = (struct scroll_bar *) GetControlReference (ch); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9801 #ifdef USE_TOOLKIT_SCROLL_BARS |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9802 /* Make the "Ctrl-Mouse-2 splits window" work |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9803 for toolkit scroll bars. */ |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9804 if (er.modifiers & controlKey) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9805 x_scroll_bar_handle_click (bar, control_part_code, |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9806 &er, &inev); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9807 else if (er.what == mouseDown) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9808 x_scroll_bar_handle_press (bar, control_part_code, |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9809 &inev); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9810 else |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9811 x_scroll_bar_handle_release (bar, &inev); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9812 #else /* not USE_TOOLKIT_SCROLL_BARS */ |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9813 x_scroll_bar_handle_click (bar, control_part_code, |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9814 &er, &inev); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9815 if (er.what == mouseDown |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9816 && control_part_code == kControlIndicatorPart) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9817 tracked_scroll_bar = bar; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9818 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9819 tracked_scroll_bar = NULL; |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9820 #endif /* not USE_TOOLKIT_SCROLL_BARS */ |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9821 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9822 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9823 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9824 Lisp_Object window; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9825 int x = mouse_loc.h; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9826 int y = mouse_loc.v; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9827 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9828 window = window_from_coordinates (f, x, y, 0, 0, 0, 1); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9829 if (EQ (window, f->tool_bar_window)) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9830 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9831 if (er.what == mouseDown) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9832 handle_tool_bar_click (f, x, y, 1, 0); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9833 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9834 handle_tool_bar_click (f, x, y, 0, |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9835 inev.modifiers); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9836 tool_bar_p = 1; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9837 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9838 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9839 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9840 XSETFRAME (inev.frame_or_window, f); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9841 inev.kind = MOUSE_CLICK_EVENT; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9842 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9843 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9844 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9845 if (er.what == mouseDown) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9846 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9847 dpyinfo->grabbed |= (1 << inev.code); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9848 last_mouse_frame = f; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9849 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9850 if (!tool_bar_p) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9851 last_tool_bar_item = -1; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9852 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9853 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9854 { |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9855 if ((dpyinfo->grabbed & (1 << inev.code)) == 0) |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9856 /* If a button is released though it was not |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9857 previously pressed, that would be because |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9858 of multi-button emulation. */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9859 dpyinfo->grabbed = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9860 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9861 dpyinfo->grabbed &= ~(1 << inev.code); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9862 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9863 |
66181
dc3ff6945eb2
(note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66110
diff
changeset
|
9864 /* Ignore any mouse motion that happened before |
dc3ff6945eb2
(note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66110
diff
changeset
|
9865 this event; any subsequent mouse-movement Emacs |
dc3ff6945eb2
(note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66110
diff
changeset
|
9866 events should reflect only motion after the |
dc3ff6945eb2
(note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66110
diff
changeset
|
9867 ButtonPress. */ |
dc3ff6945eb2
(note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66110
diff
changeset
|
9868 if (f != 0) |
dc3ff6945eb2
(note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66110
diff
changeset
|
9869 f->mouse_moved = 0; |
dc3ff6945eb2
(note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66110
diff
changeset
|
9870 |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9871 #ifdef USE_TOOLKIT_SCROLL_BARS |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9872 if (inev.kind == MOUSE_CLICK_EVENT) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9873 #endif |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9874 switch (er.what) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9875 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9876 case mouseDown: |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9877 inev.modifiers |= down_modifier; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9878 break; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9879 case mouseUp: |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9880 inev.modifiers |= up_modifier; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9881 break; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9882 } |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9883 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9884 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9885 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9886 case inDrag: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9887 #if TARGET_API_MAC_CARBON |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9888 DragWindow (window_ptr, er.where, NULL); |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9889 #else /* not TARGET_API_MAC_CARBON */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9890 DragWindow (window_ptr, er.where, &qd.screenBits.bounds); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9891 #endif /* not TARGET_API_MAC_CARBON */ |
56271
98f2b9da67f0
macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents:
56146
diff
changeset
|
9892 /* Update the frame parameters. */ |
98f2b9da67f0
macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents:
56146
diff
changeset
|
9893 { |
98f2b9da67f0
macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents:
56146
diff
changeset
|
9894 struct frame *f = mac_window_to_frame (window_ptr); |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9895 |
56271
98f2b9da67f0
macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents:
56146
diff
changeset
|
9896 if (f && !f->async_iconified) |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9897 x_real_positions (f, &f->left_pos, &f->top_pos); |
56271
98f2b9da67f0
macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents:
56146
diff
changeset
|
9898 } |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9899 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9900 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9901 case inGoAway: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9902 if (TrackGoAway (window_ptr, er.where)) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9903 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9904 inev.kind = DELETE_WINDOW_EVENT; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9905 XSETFRAME (inev.frame_or_window, |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9906 mac_window_to_frame (window_ptr)); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9907 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9908 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9909 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9910 /* window resize handling added --ben */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9911 case inGrow: |
57357
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9912 do_grow_window (window_ptr, &er); |
05fe2d3ca439
macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents:
56890
diff
changeset
|
9913 break; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9914 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9915 /* window zoom handling added --ben */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9916 case inZoomIn: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9917 case inZoomOut: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9918 if (TrackBox (window_ptr, er.where, part_code)) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9919 do_zoom_window (window_ptr, part_code); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9920 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9921 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9922 default: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9923 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9924 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9925 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9926 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9927 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9928 case updateEvt: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9929 #if USE_CARBON_EVENTS |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9930 if (SendEventToEventTarget (eventRef, toolbox_dispatcher) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9931 != eventNotHandledErr) |
46860
8b7ade57211d
2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46856
diff
changeset
|
9932 break; |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9933 #else |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9934 do_window_update ((WindowPtr) er.message); |
59384
a1edc5959dcf
* macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents:
59325
diff
changeset
|
9935 #endif |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9936 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9937 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9938 case osEvt: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9939 #if USE_CARBON_EVENTS |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9940 if (SendEventToEventTarget (eventRef, toolbox_dispatcher) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9941 != eventNotHandledErr) |
46860
8b7ade57211d
2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46856
diff
changeset
|
9942 break; |
46798 | 9943 #endif |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9944 switch ((er.message >> 24) & 0x000000FF) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9945 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9946 case suspendResumeMessage: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9947 if ((er.message & resumeFlag) == 1) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9948 do_app_resume (); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9949 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9950 do_app_suspend (); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9951 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9952 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9953 case mouseMovedMessage: |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9954 #if !USE_CARBON_EVENTS |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9955 SetRectRgn (mouse_region, er.where.h, er.where.v, |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9956 er.where.h + 1, er.where.v + 1); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
9957 #endif |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9958 previous_help_echo_string = help_echo_string; |
66080
abad34f080c4
(note_mouse_movement, XTread_socket): Apply 2005-10-14 changes for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66049
diff
changeset
|
9959 help_echo_string = Qnil; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
9960 |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9961 if (dpyinfo->grabbed && last_mouse_frame |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9962 && FRAME_LIVE_P (last_mouse_frame)) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9963 f = last_mouse_frame; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9964 else |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9965 f = dpyinfo->x_focus_frame; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9966 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9967 if (dpyinfo->mouse_face_hidden) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9968 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9969 dpyinfo->mouse_face_hidden = 0; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9970 clear_mouse_face (dpyinfo); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9971 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9972 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9973 if (f) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9974 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9975 WindowPtr wp = FRAME_MAC_WINDOW (f); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9976 Point mouse_pos = er.where; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9977 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9978 SetPortWindowPort (wp); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9979 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9980 GlobalToLocal (&mouse_pos); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9981 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9982 if (dpyinfo->grabbed && tracked_scroll_bar) |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9983 #ifdef USE_TOOLKIT_SCROLL_BARS |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9984 x_scroll_bar_handle_drag (wp, tracked_scroll_bar, |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
9985 mouse_pos, &inev); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9986 #else /* not USE_TOOLKIT_SCROLL_BARS */ |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9987 x_scroll_bar_note_movement (tracked_scroll_bar, |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9988 mouse_pos.v |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9989 - XINT (tracked_scroll_bar->top), |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9990 er.when * (1000 / 60)); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
9991 #endif /* not USE_TOOLKIT_SCROLL_BARS */ |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9992 else |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9993 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9994 /* Generate SELECT_WINDOW_EVENTs when needed. */ |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9995 if (mouse_autoselect_window) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9996 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9997 Lisp_Object window; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9998 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
9999 window = window_from_coordinates (f, |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10000 mouse_pos.h, |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10001 mouse_pos.v, |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10002 0, 0, 0, 0); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10003 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10004 /* Window will be selected only when it is |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10005 not selected now and last mouse movement |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10006 event was not in it. Minibuffer window |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10007 will be selected iff it is active. */ |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10008 if (WINDOWP (window) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10009 && !EQ (window, last_window) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10010 && !EQ (window, selected_window)) |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10011 { |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10012 inev.kind = SELECT_WINDOW_EVENT; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10013 inev.frame_or_window = window; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10014 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10015 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10016 last_window=window; |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10017 } |
66080
abad34f080c4
(note_mouse_movement, XTread_socket): Apply 2005-10-14 changes for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66049
diff
changeset
|
10018 if (!note_mouse_movement (f, &mouse_pos)) |
abad34f080c4
(note_mouse_movement, XTread_socket): Apply 2005-10-14 changes for
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66049
diff
changeset
|
10019 help_echo_string = previous_help_echo_string; |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10020 } |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10021 } |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10022 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10023 /* If the contents of the global variable |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10024 help_echo_string has changed, generate a |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10025 HELP_EVENT. */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10026 if (!NILP (help_echo_string) || !NILP (previous_help_echo_string)) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10027 do_help = 1; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10028 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10029 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10030 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10031 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10032 case activateEvt: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10033 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10034 WindowPtr window_ptr = (WindowPtr) er.message; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10035 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10036 #if USE_CARBON_EVENTS |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10037 if (SendEventToEventTarget (eventRef, toolbox_dispatcher) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10038 != eventNotHandledErr) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10039 break; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10040 #endif |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10041 if (window_ptr == tip_window) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10042 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10043 HideWindow (tip_window); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10044 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10045 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10046 |
56278
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
10047 if (!is_emacs_window (window_ptr)) |
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
10048 break; |
57373
38e45bf0128a
(x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents:
57357
diff
changeset
|
10049 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10050 if ((er.modifiers & activeFlag) != 0) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10051 { |
56278
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
10052 /* A window has been activated */ |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10053 Point mouse_loc = er.where; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10054 |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10055 x_detect_focus_change (dpyinfo, &er, &inev); |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10056 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10057 SetPortWindowPort (window_ptr); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10058 GlobalToLocal (&mouse_loc); |
56278
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
10059 /* Window-activated event counts as mouse movement, |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10060 so update things that depend on mouse position. */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10061 note_mouse_movement (mac_window_to_frame (window_ptr), |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10062 &mouse_loc); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10063 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10064 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10065 { |
56278
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
10066 /* A window has been deactivated */ |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10067 #if USE_TOOLKIT_SCROLL_BARS |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10068 if (dpyinfo->grabbed && tracked_scroll_bar) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10069 { |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10070 struct input_event event; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10071 |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10072 EVENT_INIT (event); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10073 event.kind = NO_EVENT; |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10074 x_scroll_bar_handle_release (tracked_scroll_bar, &event); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10075 if (event.kind != NO_EVENT) |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10076 { |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10077 event.timestamp = timestamp; |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10078 kbd_buffer_store_event_hold (&event, hold_quit); |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10079 count++; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10080 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10081 } |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10082 #endif |
56278
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
10083 dpyinfo->grabbed = 0; |
3d525d0266de
macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents:
56277
diff
changeset
|
10084 |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10085 x_detect_focus_change (dpyinfo, &er, &inev); |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10086 |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10087 f = mac_window_to_frame (window_ptr); |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10088 if (f == dpyinfo->mouse_face_mouse_frame) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10089 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10090 /* If we move outside the frame, then we're |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10091 certainly no longer on any text in the |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10092 frame. */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10093 clear_mouse_face (dpyinfo); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10094 dpyinfo->mouse_face_mouse_frame = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10095 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10096 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10097 /* Generate a nil HELP_EVENT to cancel a help-echo. |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10098 Do it only if there's something to cancel. |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10099 Otherwise, the startup message is cleared when the |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10100 mouse leaves the frame. */ |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10101 if (any_help_event_p) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10102 do_help = -1; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10103 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10104 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10105 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10106 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10107 case keyDown: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10108 case autoKey: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10109 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10110 int keycode = (er.message & keyCodeMask) >> 8; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10111 int xkeysym; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
10112 |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
10113 #if USE_CARBON_EVENTS && defined (MAC_OSX) |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10114 /* When using Carbon Events, we need to pass raw keyboard |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10115 events to the TSM ourselves. If TSM handles it, it |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10116 will pass back noErr, otherwise it will pass back |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10117 "eventNotHandledErr" and we can process it |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10118 normally. */ |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10119 if ((mac_pass_command_to_system |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10120 || !(er.modifiers & cmdKey)) |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10121 && (mac_pass_control_to_system |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
10122 || !(er.modifiers & controlKey)) |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10123 && (NILP (Vmac_option_modifier) |
63461
8aa0953a6870
(mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
63098
diff
changeset
|
10124 || !(er.modifiers & optionKey))) |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10125 if (SendEventToEventTarget (eventRef, toolbox_dispatcher) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10126 != eventNotHandledErr) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10127 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10128 #endif |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10129 |
61615
351bda10c1b0
(XTread_socket): Don't beep on keyboard input even if no frame is
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61574
diff
changeset
|
10130 #if 0 |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10131 if (dpyinfo->x_focus_frame == NULL) |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10132 { |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10133 /* Beep if keyboard input occurs when all the frames |
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10134 are invisible. */ |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10135 SysBeep (1); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10136 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10137 } |
61615
351bda10c1b0
(XTread_socket): Don't beep on keyboard input even if no frame is
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61574
diff
changeset
|
10138 #endif |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10139 |
61500
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10140 { |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10141 static SInt16 last_key_script = -1; |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10142 SInt16 current_key_script = GetScriptManagerVariable (smKeyScript); |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10143 |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10144 if (last_key_script != current_key_script) |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10145 { |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10146 struct input_event event; |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10147 |
61500
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10148 EVENT_INIT (event); |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10149 event.kind = LANGUAGE_CHANGE_EVENT; |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10150 event.arg = Qnil; |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10151 event.code = current_key_script; |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10152 event.timestamp = timestamp; |
61500
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10153 kbd_buffer_store_event (&event); |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10154 count++; |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10155 } |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10156 last_key_script = current_key_script; |
441abfeebcb2
(mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60635
diff
changeset
|
10157 } |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10158 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10159 ObscureCursor (); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10160 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10161 if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10162 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10163 clear_mouse_face (dpyinfo); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10164 dpyinfo->mouse_face_hidden = 1; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10165 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10166 |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10167 /* translate the keycode back to determine the original key */ |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10168 /* Convert key code if function key is pressed. |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10169 Otherwise, if non-ASCII-event, take care of that |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10170 without re-translating the key code. */ |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10171 #if USE_CARBON_EVENTS |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10172 if (convert_fn_keycode (eventRef, keycode, &xkeysym)) |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10173 { |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10174 inev.code = xkeysym; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10175 /* this doesn't work - tried to add shift modifiers */ |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10176 inev.code = |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10177 backtranslate_modified_keycode(er.modifiers & (~0x2200), |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10178 xkeysym | 0x80, xkeysym); |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10179 inev.kind = ASCII_KEYSTROKE_EVENT; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10180 } |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10181 else |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10182 #endif |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10183 if (keycode_to_xkeysym (keycode, &xkeysym)) |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10184 { |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10185 inev.code = 0xff00 | xkeysym; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10186 inev.kind = NON_ASCII_KEYSTROKE_EVENT; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10187 } |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10188 else |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10189 { |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10190 inev.code = |
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10191 backtranslate_modified_keycode(er.modifiers, keycode, |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10192 er.message & charCodeMask); |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10193 inev.kind = ASCII_KEYSTROKE_EVENT; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10194 } |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10195 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10196 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10197 #if USE_CARBON_EVENTS |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10198 inev.modifiers = mac_event_to_emacs_modifiers (eventRef); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10199 #else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10200 inev.modifiers = mac_to_emacs_modifiers (er.modifiers); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10201 #endif |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10202 inev.modifiers |= (extra_keyboard_modifiers |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10203 & (meta_modifier | alt_modifier |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10204 | hyper_modifier | super_modifier)); |
61574
d3c53b9d1828
(x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61555
diff
changeset
|
10205 XSETFRAME (inev.frame_or_window, mac_focus_frame (dpyinfo)); |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10206 break; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10207 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10208 case kHighLevelEvent: |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10209 read_socket_inev = &inev; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10210 AEProcessAppleEvent (&er); |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10211 read_socket_inev = NULL; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10212 break; |
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10213 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10214 default: |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10215 break; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10216 } |
46798 | 10217 #if USE_CARBON_EVENTS |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10218 ReleaseEvent (eventRef); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
10219 #endif |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10220 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10221 if (inev.kind != NO_EVENT) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10222 { |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10223 inev.timestamp = timestamp; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10224 kbd_buffer_store_event_hold (&inev, hold_quit); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10225 count++; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10226 } |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10227 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10228 if (do_help |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10229 && !(hold_quit && hold_quit->kind != NO_EVENT)) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10230 { |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10231 Lisp_Object frame; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10232 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10233 if (f) |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10234 XSETFRAME (frame, f); |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10235 else |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10236 frame = Qnil; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10237 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10238 if (do_help > 0) |
46860
8b7ade57211d
2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46856
diff
changeset
|
10239 { |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10240 any_help_event_p = 1; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10241 gen_help_event (help_echo_string, frame, help_echo_window, |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10242 help_echo_object, help_echo_pos); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
10243 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10244 else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10245 { |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10246 help_echo_string = Qnil; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10247 gen_help_event (Qnil, frame, Qnil, Qnil, 0); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10248 } |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10249 count++; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10250 } |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
10251 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10252 } |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10253 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10254 /* If the focus was just given to an autoraising frame, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10255 raise it now. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10256 /* ??? This ought to be able to handle more than one such frame. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10257 if (pending_autoraise_frame) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10258 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10259 x_raise_frame (pending_autoraise_frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10260 pending_autoraise_frame = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10261 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10262 |
65110
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10263 #if !USE_CARBON_EVENTS |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10264 /* Check which frames are still visible. We do this here because |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10265 there doesn't seem to be any direct notification from the Window |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10266 Manager that the visibility of a window has changed (at least, |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10267 not in all cases). */ |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10268 { |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10269 Lisp_Object tail, frame; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10270 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10271 FOR_EACH_FRAME (tail, frame) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10272 { |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10273 struct frame *f = XFRAME (frame); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10274 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10275 /* The tooltip has been drawn already. Avoid the |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10276 SET_FRAME_GARBAGED in mac_handle_visibility_change. */ |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10277 if (EQ (frame, tip_frame)) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10278 continue; |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10279 |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10280 if (FRAME_MAC_P (f)) |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10281 mac_handle_visibility_change (f); |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10282 } |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10283 } |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10284 #endif |
ac7314b59792
(mac_copy_area, mac_copy_area_with_mask): Restore background color.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64770
diff
changeset
|
10285 |
68770
4eb8cd48f0ef
(mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
68651
diff
changeset
|
10286 --handling_signal; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10287 UNBLOCK_INPUT; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10288 return count; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10289 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10290 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10291 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10292 /* Need to override CodeWarrior's input function so no conversion is |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10293 done on newlines Otherwise compiled functions in .elc files will be |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10294 read incorrectly. Defined in ...:MSL C:MSL |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10295 Common:Source:buffer_io.c. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10296 #ifdef __MWERKS__ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10297 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10298 __convert_to_newlines (unsigned char * p, size_t * n) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10299 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10300 #pragma unused(p,n) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10301 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10302 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10303 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10304 __convert_from_newlines (unsigned char * p, size_t * n) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10305 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10306 #pragma unused(p,n) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10307 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10308 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10309 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10310 #ifdef MAC_OS8 |
47634 | 10311 void |
10312 make_mac_terminal_frame (struct frame *f) | |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10313 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10314 Lisp_Object frame; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10315 Rect r; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10316 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10317 XSETFRAME (frame, f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10318 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10319 f->output_method = output_mac; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10320 f->output_data.mac = (struct mac_output *) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10321 xmalloc (sizeof (struct mac_output)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10322 bzero (f->output_data.mac, sizeof (struct mac_output)); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
10323 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10324 XSETFRAME (FRAME_KBOARD (f)->Vdefault_minibuffer_frame, f); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10325 |
51198
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
10326 FRAME_COLS (f) = 96; |
f8e097cae353
Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents:
51048
diff
changeset
|
10327 FRAME_LINES (f) = 4; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10328 |
53722
4f64eb1ea148
Move setting of scroll bars from make_mac_frame to
Steven Tamm <steventamm@mac.com>
parents:
53651
diff
changeset
|
10329 FRAME_CAN_HAVE_SCROLL_BARS (f) = 1; |
4f64eb1ea148
Move setting of scroll bars from make_mac_frame to
Steven Tamm <steventamm@mac.com>
parents:
53651
diff
changeset
|
10330 FRAME_VERTICAL_SCROLL_BAR_TYPE (f) = vertical_scroll_bar_right; |
4f64eb1ea148
Move setting of scroll bars from make_mac_frame to
Steven Tamm <steventamm@mac.com>
parents:
53651
diff
changeset
|
10331 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10332 FRAME_DESIRED_CURSOR (f) = FILLED_BOX_CURSOR; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10333 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10334 f->output_data.mac->cursor_pixel = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10335 f->output_data.mac->border_pixel = 0x00ff00; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10336 f->output_data.mac->mouse_pixel = 0xff00ff; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10337 f->output_data.mac->cursor_foreground_pixel = 0x0000ff; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10338 |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
10339 f->output_data.mac->text_cursor = kThemeIBeamCursor; |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
10340 f->output_data.mac->nontext_cursor = kThemeArrowCursor; |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
10341 f->output_data.mac->modeline_cursor = kThemeArrowCursor; |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
10342 f->output_data.mac->hand_cursor = kThemePointingHandCursor; |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
10343 f->output_data.mac->hourglass_cursor = kThemeWatchCursor; |
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
10344 f->output_data.mac->horizontal_drag_cursor = kThemeResizeLeftRightCursor; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10345 |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10346 FRAME_FONTSET (f) = -1; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10347 f->output_data.mac->explicit_parent = 0; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10348 f->left_pos = 8; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10349 f->top_pos = 32; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10350 f->border_width = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10351 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10352 f->internal_border_width = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10353 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10354 f->auto_raise = 1; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10355 f->auto_lower = 1; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10356 |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10357 f->new_text_cols = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10358 f->new_text_lines = 0; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10359 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10360 SetRect (&r, f->left_pos, f->top_pos, |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10361 f->left_pos + FRAME_PIXEL_WIDTH (f), |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10362 f->top_pos + FRAME_PIXEL_HEIGHT (f)); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10363 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10364 BLOCK_INPUT; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10365 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10366 if (!(FRAME_MAC_WINDOW (f) = |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10367 NewCWindow (NULL, &r, "\p", true, dBoxProc, |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10368 (WindowPtr) -1, 1, (long) f->output_data.mac))) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10369 abort (); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10370 /* so that update events can find this mac_output struct */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10371 f->output_data.mac->mFP = f; /* point back to emacs frame */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10372 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10373 UNBLOCK_INPUT; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10374 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10375 x_make_gc (f); |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
10376 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10377 /* Need to be initialized for unshow_buffer in window.c. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10378 selected_window = f->selected_window; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10379 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10380 Fmodify_frame_parameters (frame, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10381 Fcons (Fcons (Qfont, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10382 build_string ("-*-monaco-medium-r-*--*-90-*-*-*-*-mac-roman")), Qnil)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10383 Fmodify_frame_parameters (frame, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10384 Fcons (Fcons (Qforeground_color, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10385 build_string ("black")), Qnil)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10386 Fmodify_frame_parameters (frame, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10387 Fcons (Fcons (Qbackground_color, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10388 build_string ("white")), Qnil)); |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10389 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10390 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10391 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10392 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10393 /*********************************************************************** |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10394 Initialization |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10395 ***********************************************************************/ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10396 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10397 int mac_initialized = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10398 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10399 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10400 mac_initialize_display_info () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10401 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10402 struct mac_display_info *dpyinfo = &one_mac_display_info; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10403 GDHandle main_device_handle; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10404 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10405 bzero (dpyinfo, sizeof (*dpyinfo)); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10406 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10407 #ifdef MAC_OSX |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10408 dpyinfo->mac_id_name |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46169
diff
changeset
|
10409 = (char *) xmalloc (SCHARS (Vinvocation_name) |
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46169
diff
changeset
|
10410 + SCHARS (Vsystem_name) |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10411 + 2); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10412 sprintf (dpyinfo->mac_id_name, "%s@%s", |
46370
40db0673e6f0
Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents:
46169
diff
changeset
|
10413 SDATA (Vinvocation_name), SDATA (Vsystem_name)); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10414 #else |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10415 dpyinfo->mac_id_name = (char *) xmalloc (strlen ("Mac Display") + 1); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10416 strcpy (dpyinfo->mac_id_name, "Mac Display"); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10417 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10418 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10419 main_device_handle = LMGetMainDevice(); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10420 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10421 dpyinfo->reference_count = 0; |
66431
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
10422 dpyinfo->resx = 72.0; |
8ee33d677ac7
(last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66181
diff
changeset
|
10423 dpyinfo->resy = 72.0; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
10424 dpyinfo->color_p = TestDeviceAttribute (main_device_handle, gdDevType); |
56146
5e784b2ea638
* macfns.c (Fx_display_color_cells): Do not limit return value to 256.
Jan Djärv <jan.h.d@swipnet.se>
parents:
55851
diff
changeset
|
10425 #ifdef MAC_OSX |
5e784b2ea638
* macfns.c (Fx_display_color_cells): Do not limit return value to 256.
Jan Djärv <jan.h.d@swipnet.se>
parents:
55851
diff
changeset
|
10426 /* HasDepth returns true if it is possible to have a 32 bit display, |
56348
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10427 but this may not be what is actually used. Mac OSX can do better. |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10428 CGMainDisplayID is only available on OSX 10.2 and higher, but the |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10429 header for CGGetActiveDisplayList says that the first display returned |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10430 is the active one, so we use that. */ |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10431 { |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10432 CGDirectDisplayID disp_id[1]; |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10433 CGDisplayCount disp_count; |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10434 CGDisplayErr error_code; |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10435 |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10436 error_code = CGGetActiveDisplayList (1, disp_id, &disp_count); |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10437 if (error_code != 0) |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10438 error ("No display found, CGGetActiveDisplayList error %d", error_code); |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10439 |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10440 dpyinfo->n_planes = CGDisplayBitsPerPixel (disp_id[0]); |
550df8e67006
* macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents:
56278
diff
changeset
|
10441 } |
56146
5e784b2ea638
* macfns.c (Fx_display_color_cells): Do not limit return value to 256.
Jan Djärv <jan.h.d@swipnet.se>
parents:
55851
diff
changeset
|
10442 #else |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
10443 for (dpyinfo->n_planes = 32; dpyinfo->n_planes > 0; dpyinfo->n_planes >>= 1) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
10444 if (HasDepth (main_device_handle, dpyinfo->n_planes, |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
10445 gdDevType, dpyinfo->color_p)) |
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
10446 break; |
56146
5e784b2ea638
* macfns.c (Fx_display_color_cells): Do not limit return value to 256.
Jan Djärv <jan.h.d@swipnet.se>
parents:
55851
diff
changeset
|
10447 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10448 dpyinfo->height = (**main_device_handle).gdRect.bottom; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10449 dpyinfo->width = (**main_device_handle).gdRect.right; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10450 dpyinfo->grabbed = 0; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10451 dpyinfo->root_window = NULL; |
54150
6c8849d06ab3
Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents:
53956
diff
changeset
|
10452 dpyinfo->image_cache = make_image_cache (); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10453 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10454 dpyinfo->mouse_face_beg_row = dpyinfo->mouse_face_beg_col = -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10455 dpyinfo->mouse_face_end_row = dpyinfo->mouse_face_end_col = -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10456 dpyinfo->mouse_face_face_id = DEFAULT_FACE_ID; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10457 dpyinfo->mouse_face_window = Qnil; |
55851
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10458 dpyinfo->mouse_face_overlay = Qnil; |
f1d6a507dcfd
Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents:
55583
diff
changeset
|
10459 dpyinfo->mouse_face_hidden = 0; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10460 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10461 |
60635
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10462 |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10463 static XrmDatabase |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10464 mac_make_rdb (xrm_option) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10465 char *xrm_option; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10466 { |
60635
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10467 XrmDatabase database; |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10468 |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10469 database = xrm_get_preference_database (NULL); |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10470 if (xrm_option) |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10471 xrm_merge_string_database (database, xrm_option); |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10472 |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10473 return database; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10474 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10475 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10476 struct mac_display_info * |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10477 mac_term_init (display_name, xrm_option, resource_name) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10478 Lisp_Object display_name; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10479 char *xrm_option; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10480 char *resource_name; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10481 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10482 struct mac_display_info *dpyinfo; |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10483 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10484 BLOCK_INPUT; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10485 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10486 if (!mac_initialized) |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10487 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10488 mac_initialize (); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10489 mac_initialized = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10490 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10491 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10492 if (x_display_list) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10493 error ("Sorry, this version can only handle one display"); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10494 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10495 mac_initialize_display_info (); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10496 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10497 dpyinfo = &one_mac_display_info; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10498 |
60635
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10499 dpyinfo->xrdb = mac_make_rdb (xrm_option); |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10500 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10501 /* Put this display on the chain. */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10502 dpyinfo->next = x_display_list; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10503 x_display_list = dpyinfo; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10504 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10505 /* Put it on x_display_name_list. */ |
60635
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10506 x_display_name_list = Fcons (Fcons (display_name, |
e45b939c1d93
(x_list_fonts): FONT-LIST-CACHE is now cadr part of name_list_element.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
60623
diff
changeset
|
10507 Fcons (Qnil, dpyinfo->xrdb)), |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10508 x_display_name_list); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10509 dpyinfo->name_list_element = XCAR (x_display_name_list); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10510 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10511 UNBLOCK_INPUT; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10512 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10513 return dpyinfo; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10514 } |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10515 /* Get rid of display DPYINFO, assuming all frames are already gone. */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10516 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10517 void |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10518 x_delete_display (dpyinfo) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10519 struct mac_display_info *dpyinfo; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10520 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10521 int i; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10522 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10523 /* Discard this display from x_display_name_list and x_display_list. |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10524 We can't use Fdelq because that can quit. */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10525 if (! NILP (x_display_name_list) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10526 && EQ (XCAR (x_display_name_list), dpyinfo->name_list_element)) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10527 x_display_name_list = XCDR (x_display_name_list); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10528 else |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10529 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10530 Lisp_Object tail; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10531 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10532 tail = x_display_name_list; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10533 while (CONSP (tail) && CONSP (XCDR (tail))) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10534 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10535 if (EQ (XCAR (XCDR (tail)), dpyinfo->name_list_element)) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10536 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10537 XSETCDR (tail, XCDR (XCDR (tail))); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10538 break; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10539 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10540 tail = XCDR (tail); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10541 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10542 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10543 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10544 if (x_display_list == dpyinfo) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10545 x_display_list = dpyinfo->next; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10546 else |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10547 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10548 struct x_display_info *tail; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10549 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10550 for (tail = x_display_list; tail; tail = tail->next) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10551 if (tail->next == dpyinfo) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10552 tail->next = tail->next->next; |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10553 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10554 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10555 /* Free the font names in the font table. */ |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10556 for (i = 0; i < dpyinfo->n_fonts; i++) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10557 if (dpyinfo->font_table[i].name) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10558 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10559 if (dpyinfo->font_table[i].name != dpyinfo->font_table[i].full_name) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10560 xfree (dpyinfo->font_table[i].full_name); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10561 xfree (dpyinfo->font_table[i].name); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10562 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10563 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10564 if (dpyinfo->font_table->font_encoder) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10565 xfree (dpyinfo->font_table->font_encoder); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10566 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10567 xfree (dpyinfo->font_table); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10568 xfree (dpyinfo->mac_id_name); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10569 |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10570 if (x_display_list == 0) |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10571 { |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10572 mac_clear_font_name_table (); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10573 bzero (dpyinfo, sizeof (*dpyinfo)); |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10574 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10575 } |
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10576 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10577 |
46856
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10578 #ifdef MAC_OSX |
47634 | 10579 void |
48739
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10580 mac_check_bundle() |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10581 { |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10582 extern int inhibit_window_system; |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10583 extern int noninteractive; |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10584 CFBundleRef appsBundle; |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10585 pid_t child; |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10586 |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10587 /* No need to test if already -nw*/ |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10588 if (inhibit_window_system || noninteractive) |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10589 return; |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10590 |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10591 appsBundle = CFBundleGetMainBundle(); |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10592 if (appsBundle != NULL) |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10593 { |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10594 CFStringRef cfBI = CFSTR("CFBundleIdentifier"); |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10595 CFTypeRef res = CFBundleGetValueForInfoDictionaryKey(appsBundle, cfBI); |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10596 /* We found the bundle identifier, now we know we are valid. */ |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10597 if (res != NULL) |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10598 { |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10599 CFRelease(res); |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10600 return; |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10601 } |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10602 } |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10603 /* MAC_TODO: Have this start the bundled executable */ |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10604 |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10605 /* For now, prevent the fatal error by bringing it up in the terminal */ |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10606 inhibit_window_system = 1; |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10607 } |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10608 |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10609 void |
47634 | 10610 MakeMeTheFrontProcess () |
46856
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10611 { |
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10612 ProcessSerialNumber psn; |
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10613 OSErr err; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
10614 |
46856
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10615 err = GetCurrentProcess (&psn); |
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10616 if (err == noErr) |
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10617 (void) SetFrontProcess (&psn); |
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10618 } |
48739
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10619 |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10620 /***** Code to handle C-g testing *****/ |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10621 |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10622 /* Contains the Mac modifier formed from quit_char */ |
63098
08adf0b46c71
* macterm.c: Make mac_quit_char_modifiers and mac_quit_char_keycode
Jan Djärv <jan.h.d@swipnet.se>
parents:
62944
diff
changeset
|
10623 int mac_quit_char_modifiers = 0; |
08adf0b46c71
* macterm.c: Make mac_quit_char_modifiers and mac_quit_char_keycode
Jan Djärv <jan.h.d@swipnet.se>
parents:
62944
diff
changeset
|
10624 int mac_quit_char_keycode; |
48739
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10625 extern int quit_char; |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10626 |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10627 static void |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10628 mac_determine_quit_char_modifiers() |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10629 { |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10630 /* Todo: Determine modifiers from quit_char. */ |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10631 UInt32 qc_modifiers = ctrl_modifier; |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10632 |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10633 /* Map modifiers */ |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10634 mac_quit_char_modifiers = 0; |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10635 if (qc_modifiers & ctrl_modifier) mac_quit_char_modifiers |= controlKey; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10636 if (qc_modifiers & shift_modifier) mac_quit_char_modifiers |= shiftKey; |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10637 if (qc_modifiers & alt_modifier) mac_quit_char_modifiers |= optionKey; |
48739
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10638 } |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10639 |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10640 static void |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10641 init_quit_char_handler () |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10642 { |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10643 /* TODO: Let this support keys other the 'g' */ |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10644 mac_quit_char_keycode = 5; |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10645 /* Look at <architecture/adb_kb_map.h> for details */ |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10646 /* http://gemma.apple.com/techpubs/mac/Toolbox/Toolbox-40.html#MARKER-9-184*/ |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
10647 |
48739
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10648 mac_determine_quit_char_modifiers(); |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10649 } |
64276
0a062d2d75f3
Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
64102
diff
changeset
|
10650 #endif /* MAC_OSX */ |
46856
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10651 |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10652 static void |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10653 init_menu_bar () |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10654 { |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10655 #ifdef MAC_OSX |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10656 OSErr err; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10657 MenuRef menu; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10658 MenuItemIndex menu_index; |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10659 |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10660 err = GetIndMenuItemWithCommandID (NULL, kHICommandQuit, 1, |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10661 &menu, &menu_index); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10662 if (err == noErr) |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10663 SetMenuItemCommandKey (menu, menu_index, false, 0); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10664 #if USE_CARBON_EVENTS |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10665 EnableMenuCommand (NULL, kHICommandPreferences); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10666 err = GetIndMenuItemWithCommandID (NULL, kHICommandPreferences, 1, |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10667 &menu, &menu_index); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10668 if (err == noErr) |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10669 { |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10670 SetMenuItemCommandKey (menu, menu_index, false, 0); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10671 InsertMenuItemTextWithCFString (menu, NULL, |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10672 0, kMenuItemAttrSeparator, 0); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10673 InsertMenuItemTextWithCFString (menu, CFSTR ("About Emacs"), |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10674 0, 0, kHICommandAbout); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10675 } |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10676 #endif /* USE_CARBON_EVENTS */ |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10677 #else /* !MAC_OSX */ |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10678 #if USE_CARBON_EVENTS |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10679 SetMenuItemCommandID (GetMenuHandle (M_APPLE), I_ABOUT, kHICommandAbout); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10680 #endif |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10681 #endif |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10682 } |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10683 |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10684 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10685 /* Set up use of X before we make the first connection. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10686 |
50360
0cebe62850bc
Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents:
50344
diff
changeset
|
10687 extern frame_parm_handler mac_frame_parm_handlers[]; |
0cebe62850bc
Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents:
50344
diff
changeset
|
10688 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10689 static struct redisplay_interface x_redisplay_interface = |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10690 { |
50360
0cebe62850bc
Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents:
50344
diff
changeset
|
10691 mac_frame_parm_handlers, |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10692 x_produce_glyphs, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10693 x_write_glyphs, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10694 x_insert_glyphs, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10695 x_clear_end_of_line, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10696 x_scroll_run, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10697 x_after_update_window_line, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10698 x_update_window_begin, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10699 x_update_window_end, |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
10700 x_cursor_to, |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10701 x_flush, |
58634
95d38c47c806
* keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents:
58403
diff
changeset
|
10702 0, /* flush_display_optional */ |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
10703 x_clear_window_mouse_face, |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10704 x_get_glyph_overhangs, |
50097 | 10705 x_fix_overlapping_area, |
50157
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
10706 x_draw_fringe_bitmap, |
53885
693745d24f76
(x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents:
53722
diff
changeset
|
10707 0, /* define_fringe_bitmap */ |
693745d24f76
(x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents:
53722
diff
changeset
|
10708 0, /* destroy_fringe_bitmap */ |
50157
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
10709 mac_per_char_metric, |
203d5a0f77a8
The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents:
50097
diff
changeset
|
10710 mac_encode_char, |
59718
d4cb255b034d
* dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents:
59655
diff
changeset
|
10711 mac_compute_glyph_string_overhangs, |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
10712 x_draw_glyph_string, |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
10713 mac_define_frame_cursor, |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
10714 mac_clear_frame_area, |
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
10715 mac_draw_window_cursor, |
50344
31cf5b909af7
(x_redisplay_interface): Add missing entry for
Andreas Schwab <schwab@suse.de>
parents:
50247
diff
changeset
|
10716 mac_draw_vertical_window_border, |
50222
90e10bfd8bfa
* macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents:
50157
diff
changeset
|
10717 mac_shift_glyphs_for_insert |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10718 }; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10719 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10720 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10721 mac_initialize () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10722 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10723 rif = &x_redisplay_interface; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10724 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10725 clear_frame_hook = x_clear_frame; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10726 ins_del_lines_hook = x_ins_del_lines; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10727 delete_glyphs_hook = x_delete_glyphs; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10728 ring_bell_hook = XTring_bell; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10729 reset_terminal_modes_hook = XTreset_terminal_modes; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10730 set_terminal_modes_hook = XTset_terminal_modes; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10731 update_begin_hook = x_update_begin; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10732 update_end_hook = x_update_end; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10733 set_terminal_window_hook = XTset_terminal_window; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10734 read_socket_hook = XTread_socket; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10735 frame_up_to_date_hook = XTframe_up_to_date; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10736 mouse_position_hook = XTmouse_position; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10737 frame_rehighlight_hook = XTframe_rehighlight; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10738 frame_raise_lower_hook = XTframe_raise_lower; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10739 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10740 set_vertical_scroll_bar_hook = XTset_vertical_scroll_bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10741 condemn_scroll_bars_hook = XTcondemn_scroll_bars; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10742 redeem_scroll_bar_hook = XTredeem_scroll_bar; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10743 judge_scroll_bars_hook = XTjudge_scroll_bars; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10744 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10745 scroll_region_ok = 1; /* we'll scroll partial frames */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10746 char_ins_del_ok = 1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10747 line_ins_del_ok = 1; /* we'll just blt 'em */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10748 fast_clear_end_of_line = 1; /* X does this well */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10749 memory_below_frame = 0; /* we don't remember what scrolls |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10750 off the bottom */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10751 baud_rate = 19200; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10752 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10753 last_tool_bar_item = -1; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10754 any_help_event_p = 0; |
49600
23a1cea22d13
Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents:
49504
diff
changeset
|
10755 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10756 /* Try to use interrupt input; if we can't, then start polling. */ |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10757 Fset_input_mode (Qt, Qnil, Qt, Qnil); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10758 |
57425
0867872551d9
macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents:
57373
diff
changeset
|
10759 BLOCK_INPUT; |
46121 | 10760 |
10761 #if TARGET_API_MAC_CARBON | |
10762 | |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10763 #if USE_CARBON_EVENTS |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10764 #ifdef MAC_OSX |
46798 | 10765 init_service_handler (); |
48739
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10766 |
9f54273b7ff1
Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents:
48625
diff
changeset
|
10767 init_quit_char_handler (); |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10768 #endif /* MAC_OSX */ |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10769 |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10770 init_command_handler (); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10771 |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10772 init_menu_bar (); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10773 #endif /* USE_CARBON_EVENTS */ |
46856
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10774 |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
10775 #ifdef MAC_OSX |
67788
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
10776 init_coercion_handler (); |
114d965dfb60
Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67733
diff
changeset
|
10777 |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
10778 init_apple_event_handler (); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
10779 |
46856
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10780 if (!inhibit_window_system) |
eba75fedd593
2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents:
46805
diff
changeset
|
10781 MakeMeTheFrontProcess (); |
46121 | 10782 #endif |
60364
de784812b4d4
[TARGET_API_MAC_CARBON && !MAC_OSX]: Define USE_CARBON_EVENTS to 1.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
59899
diff
changeset
|
10783 #endif |
57425
0867872551d9
macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents:
57373
diff
changeset
|
10784 UNBLOCK_INPUT; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10785 } |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10786 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10787 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10788 void |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10789 syms_of_macterm () |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10790 { |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10791 #if 0 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10792 staticpro (&x_error_message_string); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10793 x_error_message_string = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10794 #endif |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10795 |
67101
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10796 Qcontrol = intern ("control"); staticpro (&Qcontrol); |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10797 Qmeta = intern ("meta"); staticpro (&Qmeta); |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10798 Qalt = intern ("alt"); staticpro (&Qalt); |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10799 Qhyper = intern ("hyper"); staticpro (&Qhyper); |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10800 Qsuper = intern ("super"); staticpro (&Qsuper); |
57783
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
10801 Qmodifier_value = intern ("modifier-value"); |
67101
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10802 staticpro (&Qmodifier_value); |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10803 |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10804 Fput (Qcontrol, Qmodifier_value, make_number (ctrl_modifier)); |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10805 Fput (Qmeta, Qmodifier_value, make_number (meta_modifier)); |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10806 Fput (Qalt, Qmodifier_value, make_number (alt_modifier)); |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10807 Fput (Qhyper, Qmodifier_value, make_number (hyper_modifier)); |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10808 Fput (Qsuper, Qmodifier_value, make_number (super_modifier)); |
57783
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
10809 |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
10810 #if USE_CARBON_EVENTS |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
10811 Qhicommand = intern ("hicommand"); staticpro (&Qhicommand); |
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
10812 #ifdef MAC_OSX |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10813 Qservices = intern ("services"); staticpro (&Qservices); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10814 Qpaste = intern ("paste"); staticpro (&Qpaste); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10815 Qperform = intern ("perform"); staticpro (&Qperform); |
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10816 #endif |
67458
e6e566aad553
(Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67101
diff
changeset
|
10817 #endif |
61786
223bdb2c3b9a
(handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61658
diff
changeset
|
10818 |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10819 #ifdef MAC_OSX |
49015
c49640262de0
* macterm.c (syms_of_macterm): Provide the feature "mac-carbon" to
Steven Tamm <steventamm@mac.com>
parents:
49003
diff
changeset
|
10820 Fprovide (intern ("mac-carbon"), Qnil); |
59146
9bde7721ad0f
* dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents:
59041
diff
changeset
|
10821 #endif |
49015
c49640262de0
* macterm.c (syms_of_macterm): Provide the feature "mac-carbon" to
Steven Tamm <steventamm@mac.com>
parents:
49003
diff
changeset
|
10822 |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
10823 staticpro (&Qreverse); |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
10824 Qreverse = intern ("reverse"); |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
10825 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10826 staticpro (&x_display_name_list); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10827 x_display_name_list = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10828 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10829 staticpro (&last_mouse_scroll_bar); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10830 last_mouse_scroll_bar = Qnil; |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10831 |
66005
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
10832 staticpro (&fm_font_family_alist); |
f455f022b799
(PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65910
diff
changeset
|
10833 fm_font_family_alist = Qnil; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10834 |
65772
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
10835 #if USE_ATSUI |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
10836 staticpro (&atsu_font_id_hash); |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
10837 atsu_font_id_hash = Qnil; |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
10838 #endif |
797dc38b416e
(mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
65643
diff
changeset
|
10839 |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10840 /* We don't yet support this, but defining this here avoids whining |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10841 from cus-start.el and other places, like "M-x set-variable". */ |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10842 DEFVAR_BOOL ("x-use-underline-position-properties", |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10843 &x_use_underline_position_properties, |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10844 doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties. |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10845 nil means ignore them. If you encounter fonts with bogus |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10846 UNDERLINE_POSITION font properties, for example 7x13 on XFree prior |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10847 to 4.1, set this to nil. |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10848 |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10849 NOTE: Not supported on Mac yet. */); |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10850 x_use_underline_position_properties = 0; |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10851 |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10852 DEFVAR_LISP ("x-toolkit-scroll-bars", &Vx_toolkit_scroll_bars, |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10853 doc: /* If not nil, Emacs uses toolkit scroll bars. */); |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10854 #ifdef USE_TOOLKIT_SCROLL_BARS |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10855 Vx_toolkit_scroll_bars = Qt; |
62103
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10856 #else |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10857 Vx_toolkit_scroll_bars = Qnil; |
2d42fd79f829
(toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61786
diff
changeset
|
10858 #endif |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10859 |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10860 staticpro (&last_mouse_motion_frame); |
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10861 last_mouse_motion_frame = Qnil; |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10862 |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10863 /* Variables to configure modifier key assignment. */ |
66841
b633b787c04d
[USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
66818
diff
changeset
|
10864 |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10865 DEFVAR_LISP ("mac-control-modifier", &Vmac_control_modifier, |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10866 doc: /* *Modifier key assumed when the Mac control key is pressed. |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10867 The value can be `control', `meta', `alt', `hyper', or `super' for the |
67101
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10868 respective modifier. The default is `control'. */); |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10869 Vmac_control_modifier = Qcontrol; |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10870 |
57783
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
10871 DEFVAR_LISP ("mac-option-modifier", &Vmac_option_modifier, |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10872 doc: /* *Modifier key assumed when the Mac alt/option key is pressed. |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10873 The value can be `control', `meta', `alt', `hyper', or `super' for the |
67101
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10874 respective modifier. If the value is nil then the key will act as the |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10875 normal Mac control modifier, and the option key can be used to compose |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10876 characters depending on the chosen Mac keyboard setting. */); |
57783
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
10877 Vmac_option_modifier = Qnil; |
4cb8cebc3255
2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents:
57425
diff
changeset
|
10878 |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10879 DEFVAR_LISP ("mac-command-modifier", &Vmac_command_modifier, |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10880 doc: /* *Modifier key assumed when the Mac command key is pressed. |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10881 The value can be `control', `meta', `alt', `hyper', or `super' for the |
67101
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10882 respective modifier. The default is `meta'. */); |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10883 Vmac_command_modifier = Qmeta; |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10884 |
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10885 DEFVAR_LISP ("mac-function-modifier", &Vmac_function_modifier, |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10886 doc: /* *Modifier key assumed when the Mac function key is pressed. |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10887 The value can be `control', `meta', `alt', `hyper', or `super' for the |
67101
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10888 respective modifier. Note that remapping the function key may lead to |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10889 unexpected results for some keys on non-US/GB keyboards. */); |
66818
d85a089fce11
macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents:
66431
diff
changeset
|
10890 Vmac_function_modifier = Qnil; |
46798 | 10891 |
55025
5cbecea4d4ad
(x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents:
54366
diff
changeset
|
10892 DEFVAR_LISP ("mac-emulate-three-button-mouse", |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
10893 &Vmac_emulate_three_button_mouse, |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10894 doc: /* *Specify a way of three button mouse emulation. |
67101
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10895 The value can be nil, t, or the symbol `reverse'. |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10896 nil means that no emulation should be done and the modifiers should be |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10897 placed on the mouse-1 event. |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10898 t means that when the option-key is held down while pressing the mouse |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10899 button, the click will register as mouse-2 and while the command-key |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10900 is held down, the click will register as mouse-3. |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10901 The symbol `reverse' means that the option-key will register for |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10902 mouse-3 and the command-key will register for mouse-2. */); |
53956
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
10903 Vmac_emulate_three_button_mouse = Qnil; |
922b1cbf208b
(Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents:
53935
diff
changeset
|
10904 |
46798 | 10905 #if USE_CARBON_EVENTS |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10906 DEFVAR_BOOL ("mac-wheel-button-is-mouse-2", &mac_wheel_button_is_mouse_2, |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10907 doc: /* *Non-nil if the wheel button is mouse-2 and the right click mouse-3. |
67101
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10908 Otherwise, the right click will be treated as mouse-2 and the wheel |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10909 button will be mouse-3. */); |
67666
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10910 mac_wheel_button_is_mouse_2 = 1; |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10911 |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10912 DEFVAR_BOOL ("mac-pass-command-to-system", &mac_pass_command_to_system, |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10913 doc: /* *Non-nil if command key presses are passed on to the Mac Toolbox. */); |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10914 mac_pass_command_to_system = 1; |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10915 |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10916 DEFVAR_BOOL ("mac-pass-control-to-system", &mac_pass_control_to_system, |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10917 doc: /* *Non-nil if control key presses are passed on to the Mac Toolbox. */); |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10918 mac_pass_control_to_system = 1; |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10919 |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10920 #endif |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10921 |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10922 DEFVAR_BOOL ("mac-allow-anti-aliasing", &mac_use_core_graphics, |
037431c17fba
(mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67458
diff
changeset
|
10923 doc: /* *If non-nil, allow anti-aliasing. |
59586
2f6084ef9fec
(syms_of_macterm) <mac-allow-anti-aliasing>: Doc fix.
Kim F. Storm <storm@cua.dk>
parents:
59585
diff
changeset
|
10924 The text will be rendered using Core Graphics text rendering which |
2f6084ef9fec
(syms_of_macterm) <mac-allow-anti-aliasing>: Doc fix.
Kim F. Storm <storm@cua.dk>
parents:
59585
diff
changeset
|
10925 may anti-alias the text. */); |
67672
ea51bc4acb2e
(syms_of_macterm) <mac-allow-anti-aliasing>: Fix unintended default
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67666
diff
changeset
|
10926 mac_use_core_graphics = 0; |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10927 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10928 /* Register an entry for `mac-roman' so that it can be used when |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10929 creating the terminal frame on Mac OS 9 before loading |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10930 term/mac-win.elc. */ |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10931 DEFVAR_LISP ("mac-charset-info-alist", &Vmac_charset_info_alist, |
67101
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10932 doc: /* Alist of Emacs character sets vs text encodings and coding systems. |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10933 Each entry should be of the form: |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10934 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10935 (CHARSET-NAME TEXT-ENCODING CODING-SYSTEM) |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10936 |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10937 where CHARSET-NAME is a string used in font names to identify the |
67101
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10938 charset, TEXT-ENCODING is a TextEncodingBase value in Mac, and |
f7f6ee6060c8
(Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
67000
diff
changeset
|
10939 CODING_SYSTEM is a coding system corresponding to TEXT-ENCODING. */); |
61658
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10940 Vmac_charset_info_alist = |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10941 Fcons (list3 (build_string ("mac-roman"), |
38a086380ddc
(Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents:
61615
diff
changeset
|
10942 make_number (smRoman), Qnil), Qnil); |
44890
01b93e5e53a7
Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff
changeset
|
10943 } |
52401 | 10944 |
10945 /* arch-tag: f2259165-4454-4c04-a029-a133c8af7b5b | |
10946 (do not change this comment) */ |