annotate src/macterm.c @ 83502:c1e013e3dc0e

Merged from emacs@sv.gnu.org Patches applied: * emacs@sv.gnu.org/emacs--devo--0--patch-173 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-174 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-175 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-176 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-177 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-178 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-179 Update from erc--emacs--0 * emacs@sv.gnu.org/emacs--devo--0--patch-180 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-181 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-182 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-183 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-184 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/emacs--devo--0--patch-185 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-186 Update from CVS * emacs@sv.gnu.org/emacs--devo--0--patch-187 Merge from gnus--rel--5.10 * emacs@sv.gnu.org/gnus--rel--5.10--patch-65 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-66 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-67 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-68 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-69 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-70 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-71 Update from CVS * emacs@sv.gnu.org/gnus--rel--5.10--patch-72 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-542
author Karoly Lorentey <lorentey@elte.hu>
date Sat, 01 Apr 2006 13:24:42 +0000
parents b901f4f12f33 bc015cae7e3e
children 81f2d90dee68
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
a8fa7c632ee4 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 63794
diff changeset
19 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
a8fa7c632ee4 Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 63794
diff changeset
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
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
39 /* USE_CARBON_EVENTS determines if the Carbon Event Manager is used to
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
40 obtain events from the event queue. If set to 0, WaitNextEvent is
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
41 used instead. */
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
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"
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
88
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
89
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
90
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
91 /* 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
92
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
93 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
94
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
95 /* 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
96 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
97 int mac_use_core_graphics;
59577
a4a748516aa7 * macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents: 59575
diff changeset
98
a4a748516aa7 * macterm.c (Vmac_use_core_graphics): defined
Steven Tamm <steventamm@mac.com>
parents: 59575
diff changeset
99
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
100 /* 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
101 start. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
102
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
103 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
104
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
105 /* 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
106 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
107
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
108 /* 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
109 (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
110 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
111
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
112 /* 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
113 use. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
114
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
115 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
116
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
117 /* 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
118 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
119 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
120 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
121 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
122 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
123 display. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
124
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
125 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
126
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
127 /* 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
128 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
129
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
130 /* 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
131 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
132 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
133 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
134
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
135 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
136
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
137 /* 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
138
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
139 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
140
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
141 /* Mouse movement.
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 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
144 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
145 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
146 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
147
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
148 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
149
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
150 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
151 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
152 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
153 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
154 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
155 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
156 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
157 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
158 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
159 is off. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
160
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
161 /* 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
162
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
163 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
164 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
165
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
166 /* 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
167
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
168 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
169 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
170 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
171
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
172 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
173 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
174 event. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
175
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
176 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
177
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
178 /* 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
179 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
180 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
181 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
182 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
183 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
184
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
185 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
186
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
187 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
188
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
189 /* 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
190 events. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
191
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
192 #ifdef __STDC__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
193 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
194 #else
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 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 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
197
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
198 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
199
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
200 /* 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
201
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
202 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
203
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
204 /* 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
205
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
206 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
207
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
208 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
209
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
210 #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
211 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
212 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
213
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
214 #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
215
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
216 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
217 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
218 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
219 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
220 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
221 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
222 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
223 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
224 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
225 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
226 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
227 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
228 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
229 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
230 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
231 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
232 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
233 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
234 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
235 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
236 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
237 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
238 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
239 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
240 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
241 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
242 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
243 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
244 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
245 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
246 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
247 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
248 enum text_cursor_kinds));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
249
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
250 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
251 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
252 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
253 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
254 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
255 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
256 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
257 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
258 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
259
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
260 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
261 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
262 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
263
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
264 /* 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
265 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
266
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
267 #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
268 #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
269 #define GC_FONT(gc) ((gc)->xgcv.font)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
270 #define FRAME_NORMAL_GC(f) ((f)->output_data.mac->normal_gc)
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
271 #define CG_SET_FILL_COLOR(context, color) \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
272 CGContextSetRGBFillColor (context, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
273 RED_FROM_ULONG (color) / 255.0f, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
274 GREEN_FROM_ULONG (color) / 255.0f, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
275 BLUE_FROM_ULONG (color) / 255.0f, 1.0f)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
276 #define CG_SET_STROKE_COLOR(context, color) \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
277 CGContextSetRGBStrokeColor (context, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
278 RED_FROM_ULONG (color) / 255.0f, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
279 GREEN_FROM_ULONG (color) / 255.0f, \
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
280 BLUE_FROM_ULONG (color) / 255.0f, 1.0f)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
281 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
282 #define FRAME_CG_CONTEXT(f) ((f)->output_data.mac->cg_context)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
283
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
284 /* Fringe bitmaps. */
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
285
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
286 static int max_fringe_bmp = 0;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
287 static CGImageRef *fringe_bmp = 0;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
288
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
289 static CGContextRef
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
290 mac_begin_cg_clip (f, gc)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
291 struct frame *f;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
292 GC gc;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
293 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
294 CGContextRef context = FRAME_CG_CONTEXT (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
295
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
296 if (!context)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
297 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
298 QDBeginCGContext (GetWindowPort (FRAME_MAC_WINDOW (f)), &context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
299 FRAME_CG_CONTEXT (f) = context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
300 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
301
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
302 CGContextSaveGState (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
303 CGContextTranslateCTM (context, 0, FRAME_PIXEL_HEIGHT (f));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
304 CGContextScaleCTM (context, 1, -1);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
305 if (gc && gc->n_clip_rects)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
306 CGContextClipToRects (context, gc->clip_rects, gc->n_clip_rects);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
307
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
308 return context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
309 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
310
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
311 static void
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
312 mac_end_cg_clip (f)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
313 struct frame *f;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
314 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
315 CGContextRestoreGState (FRAME_CG_CONTEXT (f));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
316 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
317
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
318 void
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
319 mac_prepare_for_quickdraw (f)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
320 struct frame *f;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
321 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
322 if (f == NULL)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
323 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
324 Lisp_Object rest, frame;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
325 FOR_EACH_FRAME (rest, frame)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
326 if (FRAME_MAC_P (XFRAME (frame)))
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
327 mac_prepare_for_quickdraw (XFRAME (frame));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
328 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
329 else
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
330 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
331 CGContextRef context = FRAME_CG_CONTEXT (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
332
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
333 if (context)
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
334 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
335 CGContextSynchronize (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
336 QDEndCGContext (GetWindowPort (FRAME_MAC_WINDOW (f)),
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
337 &FRAME_CG_CONTEXT (f));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
338 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
339 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
340 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
341 #endif
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
342
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
343 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
344
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
345 static void
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
346 mac_begin_clip (gc)
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
347 GC gc;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
348 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
349 static RgnHandle new_region = NULL;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
350
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
351 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
352 saved_port_clip_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
353 if (new_region == NULL)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
354 new_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
355
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
356 if (gc->n_clip_rects)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
357 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
358 GetClip (saved_port_clip_region);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
359 SectRgn (saved_port_clip_region, gc->clip_region, new_region);
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
360 SetClip (new_region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
361 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
362 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
363
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
364 static void
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
365 mac_end_clip (gc)
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
366 GC gc;
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
367 {
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
368 if (gc->n_clip_rects)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
369 SetClip (saved_port_clip_region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
370 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
371
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
372
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
373 /* 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
374
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
375 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
376 XFreePixmap (display, pixmap)
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
377 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
378 Pixmap pixmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
379 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
380 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
381 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
382
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
383
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
384 /* 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
385
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
386 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
387 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
388 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
389 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
390 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
391 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
392 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
393 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
394
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
395 context = mac_begin_cg_clip (f, gc);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
396 CG_SET_STROKE_COLOR (context, gc->xgcv.foreground);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
397 CGContextBeginPath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
398 CGContextMoveToPoint (context, x1 + 0.5f, y1 + 0.5f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
399 CGContextAddLineToPoint (context, x2 + 0.5f, y2 + 0.5f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
400 CGContextClosePath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
401 CGContextStrokePath (context);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
402 mac_end_cg_clip (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
403 #else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
404 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
405
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
406 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
407
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
408 mac_begin_clip (gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
409 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
410 LineTo (x2, y2);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
411 mac_end_clip (gc);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
412 #endif
44890
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
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
415 void
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
416 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
417 Display *display;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
418 Pixmap p;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
419 GC gc;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
420 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
421 {
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
422 CGrafPtr old_port;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
423 GDHandle old_gdh;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
424
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
425 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
426 SetGWorld (p, NULL);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
427
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
428 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
429
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
430 LockPixels (GetGWorldPixMap (p));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
431 MoveTo (x1, y1);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
432 LineTo (x2, y2);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
433 UnlockPixels (GetGWorldPixMap (p));
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
434
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
435 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
436 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
437
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
438
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
439 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
440 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
441 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
442 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
443 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
444 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
445 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
446 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
447 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
448
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
449 context = mac_begin_cg_clip (f, gc);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
450 CG_SET_FILL_COLOR (context, gc->xgcv.background);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
451 CGContextFillRect (context, CGRectMake (x, y, width, height));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
452 mac_end_cg_clip (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
453 #else
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
454 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
455
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
456 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
457
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
458 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
459 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
460
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
461 mac_begin_clip (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
462 EraseRect (&r);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
463 mac_end_clip (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
464
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
465 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
466 #endif
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
467 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
468
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
469
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
470 /* 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
471
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
472 void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
473 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
474 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
475 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
476 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
477 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
478 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
479 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
480
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
481 /* 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
482
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
483 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
484 mac_clear_window (f)
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
485 struct frame *f;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
486 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
487 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
488 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
489 GC gc = FRAME_NORMAL_GC (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
490
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
491 context = mac_begin_cg_clip (f, NULL);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
492 CG_SET_FILL_COLOR (context, gc->xgcv.background);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
493 CGContextFillRect (context, CGRectMake (0, 0, FRAME_PIXEL_WIDTH (f),
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
494 FRAME_PIXEL_HEIGHT (f)));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
495 mac_end_cg_clip (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
496 #else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
497 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
498
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
499 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
500
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
501 #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
502 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
503 Rect r;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
504
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
505 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
506 EraseRect (&r);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
507 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
508 #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
509 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
510 #endif /* not TARGET_API_MAC_CARBON */
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
511 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
512 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
513
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
514
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
515 /* 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
516
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
517 #if USE_CG_DRAWING
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
518 static void
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
519 mac_draw_cg_image (image, f, gc, src_x, src_y, width, height,
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
520 dest_x, dest_y, overlay_p)
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
521 CGImageRef image;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
522 struct frame *f;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
523 GC gc;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
524 int src_x, src_y;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
525 unsigned int width, height;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
526 int dest_x, dest_y, overlay_p;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
527 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
528 CGContextRef context;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
529 float port_height = FRAME_PIXEL_HEIGHT (f);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
530 CGRect dest_rect = CGRectMake (dest_x, dest_y, width, height);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
531
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
532 context = mac_begin_cg_clip (f, gc);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
533 if (!overlay_p)
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
534 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
535 CG_SET_FILL_COLOR (context, gc->xgcv.background);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
536 CGContextFillRect (context, dest_rect);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
537 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
538 CGContextClipToRect (context, dest_rect);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
539 CGContextScaleCTM (context, 1, -1);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
540 CGContextTranslateCTM (context, 0, -port_height);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
541 if (CGImageIsMask (image))
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
542 CG_SET_FILL_COLOR (context, gc->xgcv.foreground);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
543 CGContextDrawImage (context,
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
544 CGRectMake (dest_x - src_x,
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
545 port_height - (dest_y - src_y
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
546 + CGImageGetHeight (image)),
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
547 CGImageGetWidth (image),
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
548 CGImageGetHeight (image)),
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
549 image);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
550 mac_end_cg_clip (f);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
551 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
552
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
553 #else /* !USE_CG_DRAWING */
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
554
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
555 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
556 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
557 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
558 GC gc;
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
559 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
560 unsigned short *bits;
53899
e45e1fbbe83e (mac_draw_bitmap): Add overlay_p arg.
Kim F. Storm <storm@cua.dk>
parents: 53885
diff changeset
561 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
562 {
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
563 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
564 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
565
53935
60bbfcb6328e (mac_draw_bitmap): Handle 16 bits wide bitmaps directly.
Kim F. Storm <storm@cua.dk>
parents: 53899
diff changeset
566 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
567 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
568 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
569
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
570 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
571
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
572 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
573 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
574 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
575
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
576 mac_begin_clip (gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
577 #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
578 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
579 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
580
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
581 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
582 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
583 CopyBits (&bitmap, GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
584 &(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
585 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
586 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
587 #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
588 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
589 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
590 #endif /* not TARGET_API_MAC_CARBON */
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
591 mac_end_clip (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
592
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
593 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
594 }
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
595 #endif /* !USE_CG_DRAWING */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
596
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
597
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
598 /* 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
599
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
600 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
601 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
602 BitMap *bitmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
603 char *bits;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
604 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
605 {
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
606 static unsigned char swap_nibble[16]
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
607 = { 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
608 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
609 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
610 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
611 int i, j, w1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
612 char *p;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
613
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
614 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
615 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
616 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
617 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
618 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
619 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
620 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
621 for (j = 0; j < w1; j++)
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
622 {
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
623 /* 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
624 unsigned char c = *bits++;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
625 *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
626 | (swap_nibble[(c>>4) & 0xf]));;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
627 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
628 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
629
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
630 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
631 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
632
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
633
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
634 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
635 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
636 BitMap *bitmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
637 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
638 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
639 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
640
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
641
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
642 Pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
643 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
644 Display *display; /* not used */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
645 WindowPtr w;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
646 unsigned int width, height;
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
647 unsigned int depth;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
648 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
649 Pixmap pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
650 Rect r;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
651 QDErr err;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
652
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
653 SetPortWindowPort (w);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
654
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
655 SetRect (&r, 0, 0, width, height);
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
656 #if !defined (WORDS_BIG_ENDIAN) && USE_CG_DRAWING
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
657 if (depth == 1)
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
658 #endif
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
659 err = NewGWorld (&pixmap, depth, &r, NULL, NULL, 0);
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
660 #if !defined (WORDS_BIG_ENDIAN) && USE_CG_DRAWING
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
661 else
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
662 /* CreateCGImageFromPixMaps requires ARGB format. */
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
663 err = QTNewGWorld (&pixmap, k32ARGBPixelFormat, &r, NULL, NULL, 0);
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
664 #endif
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
665 if (err != noErr)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
666 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
667 return pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
668 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
669
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
670
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
671 Pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
672 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
673 Display *display; /* not used */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
674 WindowPtr w;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
675 char *data;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
676 unsigned int width, height;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
677 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
678 unsigned int depth;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
679 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
680 Pixmap pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
681 BitMap bitmap;
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
682 CGrafPtr old_port;
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
683 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
684 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
685
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
686 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
687 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
688
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
689 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
690 if (pixmap == NULL)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
691 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
692
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
693 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
694 SetGWorld (pixmap, NULL);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
695 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
696 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
697 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
698 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
699 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
700 LockPixels (GetGWorldPixMap (pixmap));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
701 #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
702 CopyBits (&bitmap, GetPortBitMapForCopyBits (pixmap),
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
703 &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
704 #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
705 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
706 &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
707 #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
708 UnlockPixels (GetGWorldPixMap (pixmap));
55412
53a1a79a33f9 macterm.c (mac_check_for_quit_char): Adding BLOCK_INPUT
Steven Tamm <steventamm@mac.com>
parents: 55128
diff changeset
709 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
710 mac_free_bitmap (&bitmap);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
711
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
712 return pixmap;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
713 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
714
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
715
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
716 /* 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
717
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
718 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
719 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
720 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
721 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
722 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
723 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
724 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
725 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
726 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
727
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
728 context = mac_begin_cg_clip (f, gc);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
729 CG_SET_FILL_COLOR (context, gc->xgcv.foreground);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
730 CGContextFillRect (context, CGRectMake (x, y, width, height));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
731 mac_end_cg_clip (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
732 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
733 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
734
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
735 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
736
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
737 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
738 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
739
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
740 mac_begin_clip (gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
741 PaintRect (&r); /* using foreground color of gc */
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
742 mac_end_clip (gc);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
743 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
744 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
745
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
746
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
747 /* 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
748
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
749 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
750 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
751 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
752 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
753 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
754 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
755 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
756 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
757 CGContextRef context;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
758
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
759 context = mac_begin_cg_clip (f, gc);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
760 CG_SET_STROKE_COLOR (context, gc->xgcv.foreground);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
761 CGContextStrokeRect (context,
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
762 CGRectMake (x + 0.5f, y + 0.5f, width, height));
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
763 mac_end_cg_clip (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
764 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
765 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
766
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
767 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
768
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
769 RGBForeColor (GC_FORE_COLOR (gc));
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
770 SetRect (&r, x, y, x + width + 1, y + 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
771
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
772 mac_begin_clip (gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
773 FrameRect (&r); /* using foreground color of gc */
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
774 mac_end_clip (gc);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
775 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
776 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
777
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
778
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
779 #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
780 static OSStatus
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
781 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
782 ConstUniCharArrayPtr text;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
783 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
784 ATSUStyle style;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
785 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
786 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
787 OSStatus err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
788 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
789
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
790 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
791 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
792 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
793 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
794 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
795 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
796 #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
797 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
798 | kATSLineUseQDRendering
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
799 #else
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
800 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
801 #endif
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 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
804
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
805 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
806 kATSUFromTextBeginning,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
807 kATSUToTextEnd,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
808 text_length,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
809 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
810 &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
811 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
812 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
813 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
814 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
815 /* 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
816 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
817 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
818 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
819 else
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
820 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
821 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
822 kATSUFromTextBeginning, kATSUToTextEnd);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
823 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
824 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
825 kATSUFromTextBeginning,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
826 kATSUToTextEnd,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
827 text_length);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
828 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
829
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
830 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
831 *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
832 return err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
833 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
834 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
835
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
836
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
837 static void
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
838 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
839 struct frame *f;
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
840 int x, y;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
841 unsigned int width, height;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
842 {
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
843 Rect r;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
844
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
845 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
846 mac_prepare_for_quickdraw (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
847 #endif
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
848 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
849
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
850 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
851
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
852 InvertRect (&r);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
853 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
854
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
855
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
856 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
857 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
858 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
859 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
860 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
861 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
862 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
863 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
864 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
865
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
866 #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
867 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
868 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
869 OSErr err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
870 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
871
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
872 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
873
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
874 #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
875 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
876 int i;
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
877 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
878
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
879 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
880 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
881 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
882 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
883 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
884 nchars,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
885 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
886 &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
887 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
888 return;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
889 #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
890 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
891 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
892 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
893 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
894 mac_prepare_for_quickdraw (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
895 #endif
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
896 mac_begin_clip (gc);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
897 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
898 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
899 {
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
900 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
901
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
902 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
903 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
904 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
905 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
906 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
907 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
908 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
909 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
910 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
911 kATSUUseGrafPortPenLoc, kATSUUseGrafPortPenLoc);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
912 mac_end_clip (gc);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
913 #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
914 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
915 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
916 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
917 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
918 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
919 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
920 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
921 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
922 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
923
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
924 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
925 context = mac_begin_cg_clip (f, gc);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
926 #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
927 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
928 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
929 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
930 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
931 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
932 CGContextScaleCTM (context, 1, -1);
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
933 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
934 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
935 gc->n_clip_rects);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
936 #endif
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
937 if (bg_width)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
938 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
939 CG_SET_FILL_COLOR (context, gc->xgcv.background);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
940 CGContextFillRect
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
941 (context,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
942 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
943 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
944 }
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
945 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
946 CGContextTranslateCTM (context, 0, -port_height);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
947 #if !USE_CG_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
948 }
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
949 #endif
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
950 CG_SET_FILL_COLOR (context, gc->xgcv.foreground);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
951 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
952 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
953 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
954 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
955 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
956 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
957 Long2Fix (x), Long2Fix (port_height - y));
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
958 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
959 mac_end_cg_clip (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
960 context = NULL;
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
961 #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
962 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
963 QDEndCGContext (port, &context);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
964 #endif
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
965 #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
966 /* 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
967 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
968 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
969 #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
970 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
971 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
972 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
973 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
974 }
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
975 #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
976 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
977 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
978 #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
979 {
59899
96a18b943293 (mac_draw_string_common, x_make_frame_visible): Use
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 59804
diff changeset
980 #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
981 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
982
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
983 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
984 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
985 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
986 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
987 mac_prepare_for_quickdraw (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
988 #endif
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
989 mac_begin_clip (gc);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
990 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
991 #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
992 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
993 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
994 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
995 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
996 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
997 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
998 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
999 #else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1000 /* 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
1001 because:
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1002 - 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
1003 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
1004 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
1005 - 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
1006 - 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
1007 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
1008 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1009 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
1010
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1011 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
1012 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
1013 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
1014 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
1015 }
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1016 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
1017 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1018 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
1019 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
1020 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
1021 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
1022 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
1023 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
1024 RGBBackColor (GC_BACK_COLOR (FRAME_NORMAL_GC (f)));
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1025 mac_end_clip (gc);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1026
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1027 #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
1028 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
1029 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
1030 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1031 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1032 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1033
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1034
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1035 /* 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
1036
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1037 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1038 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
1039 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
1040 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1041 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
1042 char *buf;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1043 int nchars;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1044 {
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1045 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
1046 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1047
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1048
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1049 /* 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
1050
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1051 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1052 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
1053 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
1054 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1055 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
1056 XChar2b *buf;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1057 int nchars;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1058 {
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1059 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
1060 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1061
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1062
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1063 /* 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
1064
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1065 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
1066 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
1067 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
1068 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1069 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
1070 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
1071 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
1072 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1073 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
1074 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1075
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1076
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1077 /* 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
1078
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1079 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
1080 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
1081 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
1082 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1083 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
1084 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
1085 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
1086 {
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1087 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
1088 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1089
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1090
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1091 /* 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
1092 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
1093 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
1094 *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
1095
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1096 static OSErr
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1097 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
1098 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
1099 overall_return, cg_glyph)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1100 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1101 ATSUStyle style;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1102 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1103 void *style;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1104 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1105 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1106 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
1107 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
1108 #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
1109 CGGlyph *cg_glyph;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1110 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1111 void *cg_glyph;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1112 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1113 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1114 OSErr err = noErr;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1115 int width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1116 Rect char_bounds;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1117
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1118 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1119 if (style)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1120 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1121 ATSUTextLayout text_layout;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1122 UniChar ch = c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1123
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1124 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
1125 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1126 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1127 ATSTrapezoid glyph_bounds;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1128
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1129 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
1130 kATSUFromTextBeginning, kATSUToTextEnd,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1131 #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
1132 kATSUseFractionalOrigins,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1133 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1134 kATSUseDeviceOrigins,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1135 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1136 1, &glyph_bounds, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1137 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1138 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1139 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
1140 == 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
1141
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1142 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
1143 - glyph_bounds.upperLeft.x);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1144 if (font_ascent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1145 *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
1146 if (font_descent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1147 *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
1148 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1149 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1150 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
1151 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1152 err = ATSUMeasureTextImage (text_layout,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1153 kATSUFromTextBeginning, kATSUToTextEnd,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1154 0, 0, &char_bounds);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1155 if (err == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1156 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
1157 #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
1158 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
1159 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1160 OSErr err1;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1161 ATSUGlyphInfoArray glyph_info_array;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1162 ByteCount count = sizeof (ATSUGlyphInfoArray);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1163
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1164 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
1165 kATSUToTextEnd, NULL, NULL, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1166 if (err1 == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1167 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
1168 kATSUToTextEnd, &count,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1169 &glyph_info_array);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1170 if (err1 == noErr)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1171 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1172 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
1173 *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
1174 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1175 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1176 *cg_glyph = 0;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1177 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1178 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1179 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1180 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1181 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1182 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1183 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1184 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
1185 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1186 FontInfo font_info;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1187
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1188 GetFontInfo (&font_info);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1189 if (font_ascent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1190 *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
1191 if (font_descent_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1192 *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
1193 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1194 if (overall_return)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1195 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1196 char ch = c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1197
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1198 width = CharWidth (ch);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1199 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
1200 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
1201 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1202 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1203
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1204 return err;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1205 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1206
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1207
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1208 /* 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
1209
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1210 static int
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1211 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
1212 XFontStruct *font_struct;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1213 XChar2b *string;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1214 int nchars;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1215 XCharStruct *overall_return;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1216 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1217 int i;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1218 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
1219 XCharStruct *pcm;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1220
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1221 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
1222 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1223 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
1224 if (pcm == NULL)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1225 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
1226 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1227 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1228 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
1229 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
1230 width += pcm->width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1231 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1232 string++;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1233 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1234
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1235 overall_return->lbearing = lbearing;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1236 overall_return->rbearing = rbearing;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1237 overall_return->width = width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1238
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1239 /* 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
1240 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1241
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1242
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1243 #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
1244 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
1245
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
1246 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
1247 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
1248 {
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1249 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
1250 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
1251
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1252 threshold =
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1253 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
1254 kCFPreferencesCurrentApplication,
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
1255 &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
1256 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
1257 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
1258 }
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
1259
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
1260 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
1261 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
1262 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
1263 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
1264 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
1265 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
1266 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
1267 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1268 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
1269 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
1270 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
1271 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
1272 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
1273 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
1274
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
1275 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
1276 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
1277
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1278 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
1279 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
1280 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
1281 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
1282 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
1283 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
1284 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
1285 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
1286 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
1287 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1288 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
1289
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
1290 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
1291 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
1292 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
1293 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
1294 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1295
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1296 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1297 context = mac_begin_cg_clip (f, gc);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1298 #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
1299 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
1300 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
1301 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1302 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
1303 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
1304 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
1305 CGContextClipToRects (context, gc->clip_rects, gc->n_clip_rects);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1306 #endif
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1307 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
1308 {
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1309 CG_SET_FILL_COLOR (context, gc->xgcv.background);
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1310 CGContextFillRect
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1311 (context,
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
1312 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
1313 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
1314 }
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
1315 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
1316 CGContextTranslateCTM (context, 0, -port_height);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1317 #if !USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1318 }
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1319 #endif
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1320 CG_SET_FILL_COLOR (context, gc->xgcv.foreground);
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
1321 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
1322 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
1323 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
1324 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
1325 #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
1326 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
1327 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
1328 #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
1329 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
1330 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1331 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
1332 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
1333 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1334 #endif
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1335 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1336 mac_end_cg_clip (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1337 #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
1338 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
1339 QDEndCGContext (port, &context);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1340 #endif
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
1341
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1342 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
1343 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1344 #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
1345
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
1346
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
1347 #if !USE_CG_DRAWING
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1348 /* 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
1349
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1350 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1351 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
1352 Pixmap src;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1353 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
1354 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1355 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
1356 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
1357 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
1358 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1359 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
1360
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1361 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
1362
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1363 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
1364 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
1365
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1366 ForeColor (blackColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1367 BackColor (whiteColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1368
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1369 mac_begin_clip (gc);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1370 LockPixels (GetGWorldPixMap (src));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1371 #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
1372 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1373 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1374
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1375 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1376 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1377 CopyBits (GetPortBitMapForCopyBits (src),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1378 GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1379 &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
1380 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1381 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1382 #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
1383 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
1384 &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
1385 #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
1386 UnlockPixels (GetGWorldPixMap (src));
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1387 mac_end_clip (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
1388
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1389 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
1390 }
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1391
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1392
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1393 static void
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1394 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
1395 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
1396 Pixmap src, mask;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1397 struct frame *f;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1398 GC gc;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1399 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
1400 unsigned int width, height;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1401 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
1402 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1403 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
1404
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1405 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
1406
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1407 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
1408 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
1409
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1410 ForeColor (blackColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1411 BackColor (whiteColor);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1412
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1413 mac_begin_clip (gc);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1414 LockPixels (GetGWorldPixMap (src));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1415 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
1416 #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
1417 {
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1418 CGrafPtr port;
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1419
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1420 GetPort (&port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1421 LockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1422 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
1423 GetPortBitMapForCopyBits (port),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1424 &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
1425 UnlockPortBits (port);
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1426 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1427 #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
1428 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
1429 &(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
1430 #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
1431 UnlockPixels (GetGWorldPixMap (mask));
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1432 UnlockPixels (GetGWorldPixMap (src));
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1433 mac_end_clip (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
1434
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1435 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
1436 }
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
1437 #endif /* !USE_CG_DRAWING */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1438
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1439
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1440 /* 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
1441
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1442 static void
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1443 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
1444 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
1445 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1446 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
1447 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
1448 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
1449 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1450 #if TARGET_API_MAC_CARBON
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1451 Rect src_r;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1452 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
1453
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1454 SetRect (&src_r, src_x, src_y, src_x + width, src_y + height);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1455 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1456 mac_prepare_for_quickdraw (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1457 #endif
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1458 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
1459 &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
1460 kScrollWindowNoOptions, dummy);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1461 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
1462 #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
1463 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
1464 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
1465
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1466 SetPort (w);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1467
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1468 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
1469 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
1470
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1471 /* 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
1472 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
1473 ForeColor (blackColor);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1474 BackColor (whiteColor);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1475 mac_begin_clip (gc);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1476 CopyBits (&(w->portBits), &(w->portBits), &src_r, &dest_r, srcCopy, 0);
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1477 mac_end_clip (gc);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1478
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1479 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
1480 #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
1481 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1482
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1483
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1484 /* 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
1485
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1486 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
1487 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
1488 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
1489 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
1490 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
1491 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
1492 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1493 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
1494 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
1495 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
1496 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
1497 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
1498 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
1499 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1500
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1501
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1502 /* 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
1503
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1504 GC
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1505 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
1506 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
1507 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
1508 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
1509 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
1510 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1511 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
1512
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1513 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
1514 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1515 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
1516 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
1517 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1518
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1519 return gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1520 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1521
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1522
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1523 /* 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
1524
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1525 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1526 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
1527 Display *display;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1528 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1529 {
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1530 if (gc->clip_region)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1531 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
1532 xfree (gc);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1533 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1534
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1535
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1536 /* 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
1537
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1538 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
1539 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
1540 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
1541 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
1542 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
1543 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
1544 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1545 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
1546 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
1547 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
1548 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
1549 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
1550 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
1551 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1552
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1553
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1554 /* 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
1555
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
1556 void
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1557 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
1558 Display *display;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1559 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1560 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
1561 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1562 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
1563 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1564 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
1565 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
1566 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
1567 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
1568 }
44890
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
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1572 /* 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
1573
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1574 void
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1575 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
1576 Display *display;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1577 GC gc;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1578 unsigned long color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1579 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1580 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
1581 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1582 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
1583 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
1584 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
1585 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
1586 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1587 }
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1588
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1589
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1590 /* 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
1591
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1592 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
1593 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
1594 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
1595 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
1596 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
1597 {
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
1598 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
1599 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1600
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1601
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1602 /* Mac replacement for XSetClipRectangles. */
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1603
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1604 static void
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1605 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
1606 Display *display;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1607 GC gc;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1608 Rect *rectangles;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1609 int n;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1610 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1611 int i;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1612
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1613 xassert (n >= 0 && n <= MAX_CLIP_RECTS);
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1614
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1615 gc->n_clip_rects = n;
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1616 if (n > 0)
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1617 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1618 if (gc->clip_region == NULL)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1619 gc->clip_region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1620 RectRgn (gc->clip_region, rectangles);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1621 if (n > 1)
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1622 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1623 RgnHandle region = NewRgn ();
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1624
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1625 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
1626 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1627 RectRgn (region, rectangles + i);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1628 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
1629 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1630 DisposeRgn (region);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1631 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1632 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1633 #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
1634 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
1635 {
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1636 Rect *rect = rectangles + i;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1637
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1638 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
1639 rect->right - rect->left,
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1640 rect->bottom - rect->top);
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1641 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1642 #endif
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1643 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1644
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1645
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1646 /* Mac replacement for XSetClipMask. */
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1647
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1648 static INLINE void
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1649 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
1650 Display *display;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1651 GC gc;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1652 {
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
1653 gc->n_clip_rects = 0;
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1654 }
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1655
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
1656
59575
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1657 /* 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
1658
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1659 void
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1660 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
1661 Display *display;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1662 WindowPtr w;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1663 unsigned long color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1664 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1665 #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
1666 AuxWinHandle aw_handle;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1667 CTabHandle ctab_handle;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1668 ColorSpecPtr ct_table;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1669 short ct_size;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1670 #endif
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1671 RGBColor bg_color;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1672
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1673 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
1674 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
1675 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
1676
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1677 #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
1678 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
1679 #else
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1680 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
1681 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1682 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
1683 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
1684 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
1685 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
1686 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
1687 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1688 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
1689 {
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1690 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
1691 CTabChanged (ctab_handle);
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1692 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
1693 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1694 ct_size--;
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1695 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1696 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1697 #endif
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1698 }
011a0c55c1f2 * macfns.c (x_set_foreground_color, x_set_background_color): Sync
Steven Tamm <steventamm@mac.com>
parents: 59407
diff changeset
1699
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1700 /* 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
1701 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1702 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
1703 void *f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1704 {
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
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1708 /* 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
1709
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1710 static void
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1711 x_flush (f)
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1712 struct frame *f;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1713 {
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1714 #if TARGET_API_MAC_CARBON
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1715 BLOCK_INPUT;
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1716 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1717 mac_prepare_for_quickdraw (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
1718 #endif
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1719 if (f)
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1720 QDFlushPortBuffer (GetWindowPort (FRAME_MAC_WINDOW (f)), NULL);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1721 else
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1722 QDFlushPortBuffer (GetQDGlobalsThePort (), NULL);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1723 UNBLOCK_INPUT;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1724 #endif
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1725 }
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1726
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
1727
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1728 /* 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
1729 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
1730 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
1731 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
1732 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
1733 performance. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1734
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1735 #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
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 /* 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
1739 only one. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1740
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1741 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
1742 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
1743 Display *dpy;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1744 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1745 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
1746 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1747
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
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 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
1752 ***********************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1753
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1754 /* 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
1755 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
1756 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
1757 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
1758
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1759 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1760 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
1761 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
1762 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1763 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1764 /* 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
1765 periodically checked with ReceiveNextEvent if
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1766 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
1767 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
1768 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
1769 update of a frame. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1770 BLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1771 DisableScreenUpdates ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1772 UNBLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1773 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1774 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1775
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 /* 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
1778 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
1779 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
1780
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1781 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1782 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
1783 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
1784 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1785 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
1786 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
1787
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1788 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
1789 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
1790
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1791 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1792
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1793 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
1794 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1795 /* 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
1796 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
1797
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1798 /* 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
1799 highlighting. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1800 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
1801 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
1802
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1803 #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
1804 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
1805 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
1806 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
1807 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
1808 here to prevent it from being scrolled. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1809
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1810 /* 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
1811 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
1812 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
1813 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
1814 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
1815 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
1816 && 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
1817 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1818 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1819
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
1820 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
1821 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
1822 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1823
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1824 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
1825 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
1826 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1827 #endif /* 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1828 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1829
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1830 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1831 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1832
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1833
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
1834 /* 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
1835
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1836 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
1837 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
1838 struct window *w;
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
1839 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
1840 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1841 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
1842 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
1843
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
1844 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
1845 if (face)
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
1846 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
1847 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
1848
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1849 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
1850 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1851
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1852 /* 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
1853
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1854 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
1855 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
1856
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1857 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
1858 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
1859 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
1860
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1861 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
1862 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
1863 here. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1864
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1865 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1866 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
1867 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
1868 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
1869 {
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
1870 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
1871
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1872 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
1873 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1874 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1875
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1876 if (cursor_on_p)
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
1877 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
1878 output_cursor.vpos,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
1879 output_cursor.x, output_cursor.y);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1880
57373
38e45bf0128a (x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents: 57357
diff changeset
1881 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
1882 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
1883
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1884 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1885 }
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 /* 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
1888 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
1889 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
1890 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1891 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
1892 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
1893 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
1894 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1895
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1896 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
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 /* 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
1901 update_end. */
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 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
1905 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
1906 {
56890
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
1907 /* Mouse highlight may be displayed again. */
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
1908 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
1909
e8bafb4b47db (x_update_end): Move SetPortWindowPort to inside
Steven Tamm <steventamm@mac.com>
parents: 56477
diff changeset
1910 BLOCK_INPUT;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1911 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1912 EnableScreenUpdates ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
1913 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1914 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
1915 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1916 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1917
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1918
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1919 /* 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
1920 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
1921 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
1922
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1923 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1924 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
1925 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
1926 {
55539
db942c4b4345 macterm.c (x_flush, XTframe_up_to_date): use FRAME_MAC_P
Steven Tamm <steventamm@mac.com>
parents: 55412
diff changeset
1927 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
1928 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1929 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
1930
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1931 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
1932 || 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
1933 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1934 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1935 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
1936 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
1937 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
1938 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
1939 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
1940 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1941 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1942 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1943 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1944
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1945
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1946 /* 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
1947 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
1948 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
1949 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
1950 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
1951 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
1952
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1953 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1954 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
1955 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
1956 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1957 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
1958 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
1959 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
1960
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1961 xassert (w);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
1962
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1963 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
1964 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
1965
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1966 /* 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
1967 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
1968 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
1969 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
1970 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
1971 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
1972 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
1973 && 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
1974 && (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
1975 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
1976 width != 0)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1977 && (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
1978 height > 0))
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 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
1981
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1982 /* 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
1983 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
1984 && 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
1985 y -= width;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1986
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1987 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
1988 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
1989 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
1990 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1991 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1992 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1993
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1994
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1995 /* 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
1996 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
1997 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
1998 drawn. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
1999
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2000 static void
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2001 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
2002 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
2003 struct glyph_row *row;
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2004 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
2005 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2006 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
2007 Display *display = FRAME_MAC_DISPLAY (f);
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2008 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
2009 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
2010
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2011 /* 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
2012 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
2013 if (p->y < rowY)
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2014 {
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2015 /* 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
2016 visible last row. */
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2017 int oldY = row->y;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2018 int oldVH = row->visible_height;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2019 row->visible_height = p->h;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2020 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
2021 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
2022 row->y = oldY;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2023 row->visible_height = oldVH;
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2024 }
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
2025 else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2026 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
2027
53885
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
2028 if (p->bx >= 0 && !p->overlay_p)
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2029 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2030 #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
2031 /* 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
2032 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
2033 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
2034 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
2035 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
2036 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
2037 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2038 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
2039 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2040
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2041 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
2042
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2043 #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
2044 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
2045 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
2046 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2047 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2048
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2049 if (p->which
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2050 #if USE_CG_DRAWING
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2051 && p->which < max_fringe_bmp
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2052 #endif
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2053 )
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2054 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2055 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
2056
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2057 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
2058 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
2059 (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
2060 ? (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
2061 : 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
2062 : face->foreground));
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2063 #if USE_CG_DRAWING
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2064 mac_draw_cg_image (fringe_bmp[p->which], f, face->gc, 0, p->dh,
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2065 p->wd, p->h, p->x, p->y, p->overlay_p);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2066 #else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2067 mac_draw_bitmap (f, face->gc, p->x, p->y,
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2068 p->wd, p->h, p->bits + p->dh, p->overlay_p);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2069 #endif
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
2070 XSetForeground (display, face->gc, gcv.foreground);
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2071 }
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
2072
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2073 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
2074 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2075
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2076 #if USE_CG_DRAWING
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2077 static void
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2078 mac_define_fringe_bitmap (which, bits, h, wd)
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2079 int which;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2080 unsigned short *bits;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2081 int h, wd;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2082 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2083 unsigned short *mask_bits;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2084 int i;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2085 CGDataProviderRef provider;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2086
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2087 if (which >= max_fringe_bmp)
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2088 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2089 i = max_fringe_bmp;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2090 max_fringe_bmp = which + 20;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2091 fringe_bmp = (CGImageRef *) xrealloc (fringe_bmp, max_fringe_bmp * sizeof (CGImageRef));
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2092 while (i < max_fringe_bmp)
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2093 fringe_bmp[i++] = 0;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2094 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2095
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2096 for (i = 0; i < h; i++)
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2097 bits[i] = ~bits[i];
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2098 provider = CGDataProviderCreateWithData (NULL, bits,
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2099 sizeof (unsigned short) * h, NULL);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2100 if (provider)
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2101 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2102 fringe_bmp[which] = CGImageMaskCreate (wd, h, 1, 1,
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2103 sizeof (unsigned short),
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2104 provider, NULL, 0);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2105 CGDataProviderRelease (provider);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2106 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2107 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2108
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2109 static void
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2110 mac_destroy_fringe_bitmap (which)
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2111 int which;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2112 {
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2113 if (which >= max_fringe_bmp)
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2114 return;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2115
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2116 if (fringe_bmp[which])
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2117 CGImageRelease (fringe_bmp[which]);
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2118 fringe_bmp[which] = 0;
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2119 }
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
2120 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2121
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2122
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2123 /* 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
2124 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
2125 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
2126 rarely happens). */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2127
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2128 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2129 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
2130 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2131 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2132
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2133 /* 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
2134 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
2135
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2137 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
2138 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2139 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2140
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2141
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2142
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2143 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2144 Display Iterator
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2145 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2146
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2147 /* 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
2148
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2149 static XCharStruct *x_per_char_metric P_ ((XFontStruct *, XChar2b *));
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2150 static int mac_encode_char P_ ((int, XChar2b *, struct font_info *, int *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2151
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 /* 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
2154 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
2155
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2156 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
2157 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
2158 XFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2159 XChar2b *char2b;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2160 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2161 /* 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
2162 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
2163
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2164 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
2165
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2166 #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
2167 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
2168 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2169 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
2170
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2171 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
2172 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2173 *row = xmalloc (sizeof (XCharStructRow));
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2174 if (*row)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2175 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
2176 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2177 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
2178 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2179 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
2180 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
2181 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2182 BLOCK_INPUT;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2183 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
2184 (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
2185 NULL, NULL, pcm, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2186 UNBLOCK_INPUT;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2187 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
2188 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2189 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2190 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2191 else
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2192 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2193 #endif
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2194 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
2195 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2196 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
2197 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2198 /* 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
2199 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
2200 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
2201 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
2202 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
2203 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
2204 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
2205 && 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
2206 && 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
2207 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
2208 + (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
2209 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2210 else
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 /* 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
2213 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
2214 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
2215 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
2216
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2217 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
2218 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
2219
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2220 where:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2221
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2222 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
2223 / = integer division
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2224 \ = integer modulus */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2225 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
2226 && 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
2227 && 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
2228 && 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
2229 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2230 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
2231 + ((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
2232 * (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
2233 + (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
2234 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2235 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2236 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2237 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2238 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2239 /* 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
2240 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
2241 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
2242 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
2243 && 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
2244 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
2245 }
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2246 #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
2247 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2248 #endif
44890
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 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
2251 || (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
2252 ? NULL : pcm);
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
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2255 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2256 */
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2257
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2258 static XCharStruct *
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2259 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
2260 XFontStruct *font;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2261 XChar2b *char2b;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2262 int font_type;
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2263 {
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2264 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
2265 }
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2266
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2267 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2268 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
2269 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
2270
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2271 static int
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2272 mac_encode_char (c, char2b, font_info, 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
2273 int c;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2274 XChar2b *char2b;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2275 struct font_info *font_info;
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2276 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
2277 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2278 int charset = CHAR_CHARSET (c);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2279 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
2280
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2281 /* 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
2282 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
2283 fixed encoding. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2284 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
2285 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2286 /* 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
2287 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
2288
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2289 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
2290 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
2291 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2292 ccl->reg[0] = charset;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2293 ccl->reg[1] = char2b->byte2;
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
2294 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
2295 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2296 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2297 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2298 ccl->reg[0] = charset;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2299 ccl->reg[1] = char2b->byte1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2300 ccl->reg[2] = char2b->byte2;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2301 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2302
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2303 ccl_driver (ccl, NULL, NULL, 0, 0, NULL);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2304
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2305 /* 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
2306 program. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2307 if (font->max_byte1 == 0) /* 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
2308 char2b->byte1 = 0, char2b->byte2 = ccl->reg[1];
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2309 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2310 char2b->byte1 = ccl->reg[1], char2b->byte2 = ccl->reg[2];
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 else if (font_info->encoding[charset])
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 /* 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
2315 encoding numbers. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2316 int enc = font_info->encoding[charset];
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2317
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2318 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
2319 && 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
2320 char2b->byte1 |= 0x80;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2321
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2322 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
2323 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
2324
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2325 if (enc == 4)
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 int sjis1, sjis2;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2328
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2329 ENCODE_SJIS (char2b->byte1, char2b->byte2, sjis1, sjis2);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2330 char2b->byte1 = sjis1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2331 char2b->byte2 = sjis2;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2332 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2333 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2334
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2335 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
2336 *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
2337
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2338 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
2339 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2340
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2341
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2342
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2343 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2344 Glyph display
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2345 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2346
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2347
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
2348
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2349 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
2350 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
2351 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
2352 int));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2353 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
2354 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
2355 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
2356 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
2357 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
2358 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
2359 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
2360 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
2361 /*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
2362 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
2363 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
2364 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
2365 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
2366 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
2367 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
2368 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
2369 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
2370 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
2371 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
2372 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
2373 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
2374 Rect *));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2375 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
2376 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
2377
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2378 #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
2379 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
2380 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2381
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2382
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2383 /* 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
2384 face. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2385
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2386 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2387 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
2388 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
2389 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2390 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
2391 && 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
2392 && 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
2393 && !s->cmp)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2394 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
2395 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2396 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2397 /* 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
2398 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2399 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
2400
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2401 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
2402 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
2403
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2404 /* 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
2405 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
2406 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
2407 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
2408 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
2409 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
2410 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
2411
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2412 /* 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
2413 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
2414 && 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
2415 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2416 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
2417 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
2418 }
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 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
2421 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
2422 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
2423
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2424 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
2425 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
2426 mask, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2427 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2428 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
2429 = 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
2430
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2431 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
2432 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2433 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2434
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2435
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2436 /* 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
2437
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2438 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2439 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
2440 struct glyph_string *s;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2441 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2442 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
2443 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
2444
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2445 /* 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
2446 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
2447 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
2448 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
2449 face = FACE_FROM_ID (s->f, MOUSE_FACE_ID);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2450
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2451 if (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
2452 face_id = FACE_FOR_CHAR (s->f, face, s->first_glyph->u.ch);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2453 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2454 face_id = FACE_FOR_CHAR (s->f, face, 0);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2455 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
2456 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
2457
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2458 /* 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
2459 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
2460 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
2461 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2462 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2463 /* 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
2464 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
2465 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2466 unsigned long mask;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2467
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2468 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
2469 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
2470 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
2471 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
2472 mask = GCForeground | GCBackground | GCFont;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2473
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2474 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
2475 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
2476 mask, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2477 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2478 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
2479 = XCreateGC (s->display, s->window, mask, &xgcv);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2480
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2481 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
2482 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2483
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2484 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
2485 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2486
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2487
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2488 /* 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
2489 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
2490 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
2491
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2492 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
2493 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
2494 struct glyph_string *s;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2495 {
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2496 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
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 /* 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
2501 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
2502 pattern. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2503
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2504 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
2505 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
2506 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
2507 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2508 PREPARE_FACE_FOR_DISPLAY (s->f, s->face);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2509
44890
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->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
2511 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2512 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
2513 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
2514 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2515 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
2516 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2517 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
2518 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
2519 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2520 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
2521 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2522 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
2523 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
2524 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2525 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
2526 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2527 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
2528 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
2529 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2530 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
2531 || 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
2532 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2533 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
2534 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
2535 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2536 else
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 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
2539 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
2540 }
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 /* 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
2543 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
2544 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2545
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2546
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2547 /* 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
2548 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
2549
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2550 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
2551 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
2552 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
2553 {
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2554 Rect rects[MAX_CLIP_RECTS];
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2555 int n;
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2556
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
2557 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
2558 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
2559 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2560
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2561
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2562 /* RIF:
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2563 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
2564 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
2565
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2566 static void
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
2567 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
2568 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
2569 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
2570 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
2571 && 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
2572 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
2573 #if USE_ATSUI
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2574 || s->font->mac_style
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2575 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2576 )
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2577 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2578 XCharStruct cs;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2579
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2580 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
2581 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
2582 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
2583 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2584 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2585 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2586 Rect r;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2587 MacFontStruct *font = s->font;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2588
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2589 TextFont (font->mac_fontnum);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2590 TextSize (font->mac_fontsize);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2591 TextFace (font->mac_fontface);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2592
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
2593 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
2594
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
2595 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
2596 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
2597 }
44890
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2600
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2601 /* 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
2602
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2603 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
2604 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
2605 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
2606 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
2607 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
2608 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
2609 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2610
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2611
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2612 /* 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
2613 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
2614 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
2615 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
2616 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
2617
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2618 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2619 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
2620 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
2621 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
2622 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2623 /* 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
2624 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
2625 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
2626 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2627 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
2628
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2629 #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
2630 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
2631 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2632 /* 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
2633 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
2634 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
2635 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
2636 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
2637 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
2638 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
2639 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
2640 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2641 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2642 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2643 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
2644 || 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
2645 || 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
2646 || force_p)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2647 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2648 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
2649 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
2650 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
2651 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
2652 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2653 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2654 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2655
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2656
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2657 /* 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
2658
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2659 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2660 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
2661 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
2662 {
69061
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2663 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
2664
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2665 /* 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
2666 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
2667 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
2668 && 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
2669 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
2670 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2671 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
2672
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2673 /* 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
2674 loaded. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2675 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
2676 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2677 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
2678 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2679 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
2680 mac_draw_rectangle (s->f, s->gc, x, s->y,
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
2681 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
2682 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
2683 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2684 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2685 else
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 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
2688 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
2689
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2690 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
2691 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
2692
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2693 /* 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
2694 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
2695 #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
2696 && 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
2697 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
2698 )
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2699 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
2700 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
2701
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2702 /* 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
2703 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
2704 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
2705 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
2706 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
2707 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
2708 || (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
2709 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
2710 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2711 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
2712
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2713 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
2714 #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
2715 || 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
2716 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2717 )
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
2718 #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
2719 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
2720 && 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
2721 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
2722 ;
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2723 else
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2724 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
2725 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
2726 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
2727 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
2728 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
2729 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
2730 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2731 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2732
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2733 /* 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
2734
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2735 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2736 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
2737 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
2738 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2739 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
2740
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2741 /* 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
2742 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
2743 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
2744 && 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
2745 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
2746 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2747 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
2748
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2749 /* 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
2750 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
2751 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
2752 this composition. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2753
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2754 /* 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
2755 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
2756 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
2757 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2758 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
2759 mac_draw_rectangle (s->f, s->gc, x, s->y,
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
2760 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
2761 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2762 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2763 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2764 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
2765 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
2766 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
2767 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
2768 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
2769 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2770 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2771
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2772
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2773 #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
2774
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2775 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
2776
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2777
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2778 /* 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
2779 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
2780
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2781 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
2782 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
2783 Widget widget;
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 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
2786 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
2787 struct frame *f;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2788
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2789 dpyinfo = x_display_info_for_display (XtDisplay (widget));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2790
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2791 /* 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
2792 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
2793 (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
2794 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
2795 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
2796 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
2797
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2798 /* 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
2799 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
2800 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
2801 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
2802 && (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
2803 (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
2804 && 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
2805 && 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
2806 return f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2807
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2808 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2809 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2810
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2811
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2812 /* 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
2813 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
2814 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
2815 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
2816
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2817 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2818 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
2819 Widget widget;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2820 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2821 XColor *color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2822 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2823 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
2824 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
2825 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2828 #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
2829
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2830 #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
2831
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2832 /* 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
2833 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
2834 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
2835 color allocated. */
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 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2838 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
2839 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
2840 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2841 XColor *color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2842 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2843 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
2844 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
2845 int rc;
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 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
2848 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
2849 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
2850 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2851 /* 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
2852 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
2853 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
2854 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
2855 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
2856 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
2857 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
2858 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
2859
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2860 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
2861 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
2862 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
2863
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2864 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
2865 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2866 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
2867 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
2868 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
2869 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
2870
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2871 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
2872 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2873 nearest = i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2874 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
2875 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2876 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2877
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2878 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
2879 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
2880 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
2881 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
2882 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2883
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2884 #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
2885 if (rc)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2886 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
2887 #endif /* DEBUG_X_COLORS */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
2888
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2889 return rc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2890 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2891
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2892
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2893 /* 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
2894 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
2895 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
2896
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2897 unsigned long
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2898 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
2899 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
2900 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
2901 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2902 XColor color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2903
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2904 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
2905 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2906 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
2907 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
2908 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2909 #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
2910 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
2911 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2912 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
2913 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2914
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2915
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2916 /* 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
2917 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
2918 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
2919
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2920 unsigned long
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2921 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
2922 Display *dpy;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2923 Colormap cmap;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2924 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
2925 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2926 XColor color;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2927
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2928 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
2929 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2930 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
2931 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
2932 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2933 #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
2934 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
2935 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2936 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
2937 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2938
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2939 #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
2940
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2941
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2942 /* 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
2943 boosted.
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2944
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2945 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
2946 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
2947 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
2948 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
2949 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
2950
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2951 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
2952 (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
2953 #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
2954
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2955
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2956 /* 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
2957 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
2958 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
2959 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
2960 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
2961 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
2962
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2963 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2964 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
2965 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
2966 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
2967 double factor;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2968 int delta;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2969 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2970 unsigned long new;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2971 long bright;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2972
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2973 /* 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
2974 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
2975
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
2976 /* 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
2977 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
2978 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
2979 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
2980 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
2981
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2982 /* Calculate brightness of COLOR. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2983 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
2984 + 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
2985
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2986 /* 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
2987 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
2988 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
2989 /* 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
2990 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
2991 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2992 /* 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
2993 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
2994 /* The additive adjustment. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2995 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
2996
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2997 if (factor < 1)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
2998 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
2999 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
3000 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
3001 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3002 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
3003 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
3004 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
3005 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3006
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3007 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
3008 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
3009 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
3010 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
3011
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3012 /* 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
3013 /* 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
3014
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3015 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
3016 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3017
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3018 *color = new;
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 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3021 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3022
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3023
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3024 /* 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
3025 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
3026 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
3027 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
3028 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
3029 be allocated, use DEFAULT_PIXEL, instead. */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3030
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3031 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3032 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
3033 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
3034 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
3035 double factor;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3036 int delta;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3037 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
3038 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3039 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3040 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
3041 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
3042 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
3043 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
3044 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
3045
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3046 /* 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
3047
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3048 /* 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
3049 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
3050 pixel = background;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3051 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
3052 && 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
3053 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3054 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
3055 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
3056 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3057
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3058 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
3059 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3060 #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
3061 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
3062 mask |= GCStipple;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3063 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3064 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
3065 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3066 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3067 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
3068 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3069
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3070
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3071 /* 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
3072
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3073 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3074 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
3075 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
3076 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3077 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
3078 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
3079
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3080 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
3081 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
3082 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
3083 && s->img->pixmap
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3084 && !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
3085 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
3086 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3087 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3088 XGCValues xgcv;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3089
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3090 /* 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
3091 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
3092 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
3093 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3094
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3095 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
3096 || 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
3097 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3098 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
3099 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
3100 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
3101 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
3102 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
3103 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3104 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3105
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3106
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3107 /* 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
3108 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
3109 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
3110 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
3111 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
3112 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
3113 when drawing. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3114
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3115 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3116 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
3117 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
3118 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
3119 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
3120 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
3121 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
3122 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3123 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
3124 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3125 GC gc;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3126
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3127 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
3128 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
3129 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3130 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
3131 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
3132
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3133 /* Top. */
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3134 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
3135 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
3136 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
3137 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
3138 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
3139
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3140 /* Left. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3141 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
3142 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
3143 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
3144 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
3145
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3146 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
3147 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
3148 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
3149 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3150 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
3151 mac_set_clip_rectangles (dpy, gc, clip_rect, 1);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3152
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3153 /* Bottom. */
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3154 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
3155 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
3156 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
3157 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
3158 right_x - i * right_p, bottom_y - i);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3159
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3160 /* Right. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3161 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
3162 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
3163 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
3164 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
3165
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3166 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
3167 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3170 /* 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
3171 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
3172 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
3173 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
3174 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
3175 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
3176
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3177 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3178 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
3179 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
3180 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
3181 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
3182 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
3183 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3184 XGCValues xgcv;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3185
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
3186 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
3187 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
3188 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
3189
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3190 /* Top. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3191 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
3192 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
3193
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3194 /* Left. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3195 if (left_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3196 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
3197 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
3198
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3199 /* Bottom. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3200 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
3201 right_x - left_x + 1, width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3202
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3203 /* Right. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3204 if (right_p)
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3205 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
3206 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
3207
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
3208 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
3209 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
3210 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3211
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3212
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3213 /* 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
3214
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3215 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3216 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
3217 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
3218 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3219 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
3220 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
3221 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
3222 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
3223
59655
369714ad80ed (x_draw_glyph_string_box): Fix last_x for full width rows.
Kim F. Storm <storm@cua.dk>
parents: 59586
diff changeset
3224 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
3225 ? 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
3226 : window_box_right (s->w, s->area));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3227
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3228 /* 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
3229 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
3230 ? 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
3231 : 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
3232
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3233 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
3234 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
3235 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
3236 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
3237 ? last_x - 1
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3238 : 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
3239 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
3240 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
3241
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3242 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
3243 || (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
3244 && (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
3245 || 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
3246 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
3247 || (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
3248 && (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
3249 || s->next->hl != s->hl)));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3250
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3251 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
3252
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3253 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
3254 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
3255 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
3256 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3257 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3258 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
3259 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
3260 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
3261 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3264
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3265 /* 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
3266
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3267 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3268 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
3269 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
3270 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3271 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
3272 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
3273
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3274 /* 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
3275 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
3276 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
3277 && 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
3278 && 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
3279 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
3280
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3281 /* 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
3282 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
3283 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
3284 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
3285 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
3286 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
3287
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3288 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
3289 {
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
3290 x_set_glyph_string_clipping (s);
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
3291
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3292 #if USE_CG_DRAWING
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3293 mac_draw_cg_image (s->img->data.ptr_val,
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3294 s->f, s->gc, s->slice.x, s->slice.y,
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3295 s->slice.width, s->slice.height, x, y, 1);
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3296 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3297 if (s->img->mask)
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3298 #if !USE_CG_DRAWING
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3299 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
3300 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
3301 s->slice.width, s->slice.height, x, y);
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3302 #else
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3303 ;
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3304 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3305 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3306 {
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3307 #if !USE_CG_DRAWING
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3308 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
3309 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
3310 s->slice.width, s->slice.height, x, y);
69512
eafd737138ea (XCreatePixmap) [!WORDS_BIG_ENDIAN && USE_CG_DRAWING]:
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69488
diff changeset
3311 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3312
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3313 /* 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
3314 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
3315 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
3316 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
3317 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
3318 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
3319 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
3320 {
0b6da8b7d7ac (x_draw_image_foreground, x_draw_image_foreground_1):
Kim F. Storm <storm@cua.dk>
parents: 45111
diff changeset
3321 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
3322 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
3323 mac_draw_rectangle (s->f, s->gc, x - r, y - r,
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
3324 s->slice.width + r*2 - 1,
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
3325 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
3326 }
44890
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 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3329 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3330 /* 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
3331 mac_draw_rectangle (s->f, s->gc, x, y,
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
3332 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
3333 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3334
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3335
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3336 /* 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
3337
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3338 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3339 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
3340 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
3341 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3342 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
3343 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
3344 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
3345 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
3346
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3347 /* 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
3348 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
3349 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
3350 && 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
3351 && 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
3352 x += abs (s->face->box_line_width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3353
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3354 /* 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
3355 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
3356 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
3357 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
3358 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
3359 y += s->img->vmargin;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3360
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3361 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
3362 || 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
3363 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3364 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
3365 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
3366 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3367 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3368 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3369 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
3370 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
3371 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3372
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3373 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
3374 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
3375 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
3376 y1 = y + s->slice.height + thick - 1;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3377
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3378 x_setup_relief_colors (s);
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3379 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
3380 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
3381 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
3382 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
3383 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
3384 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
3385 &r);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3386 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3389 /* 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
3390 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
3391
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3392 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3393 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
3394 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
3395 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
3396 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3397 #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
3398 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
3399 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3400 /* 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
3401 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
3402 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
3403 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
3404 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3405 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3406 #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
3407 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
3408 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3409
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3410
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3411 /* 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
3412
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3413 s->y
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3414 s->x +-------------------------
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3415 | 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
3416 |
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3417 | +-------------------------
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3418 | | 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
3419 | |
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3420 | | +-------------------
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3421 | | | the image
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3422
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3423 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3424
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3425 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3426 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
3427 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
3428 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3429 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
3430 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
3431 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
3432 int height;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3433 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
3434
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3435 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
3436
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3437
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3438 /* 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
3439 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
3440 flickering. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3441 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
3442 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
3443 || 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
3444 || 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
3445 || 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
3446 || 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
3447 || 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
3448 {
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3449 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
3450 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
3451 && 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
3452 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
3453
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
3454 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
3455 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
3456 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
3457
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3458 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
3459
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3460 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
3461 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3462
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3463 /* Draw the foreground. */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3464 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
3465
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3466 /* 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
3467 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
3468 || 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
3469 || 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
3470 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
3471 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3474 /* 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
3475
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3476 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3477 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
3478 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
3479 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3480 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
3481 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
3482
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3483 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
3484 && !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
3485 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3486 /* 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
3487 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
3488 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
3489
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3490 /* Draw cursor. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3491 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
3492
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3493 /* 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
3494 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
3495 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3496 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
3497 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
3498 Rect r;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3499 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
3500
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3501 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
3502 && 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
3503 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3504 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
3505 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
3506 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3507 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3508 gc = s->face->gc;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3509
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3510 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
3511 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
3512
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3513 #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
3514 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
3515 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3516 /* 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
3517 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
3518 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
3519 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
3520 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3521 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3522 #endif /* MAC_TODO */
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3523 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
3524 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3525 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3526 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
3527 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
3528 s->height);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3529
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3530 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
3531 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3532
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3533
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3534 /* 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
3535
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3536 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3537 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
3538 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
3539 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3540 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
3541
59718
d4cb255b034d * dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents: 59655
diff changeset
3542 /* 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
3543 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
3544 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
3545 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
3546 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
3547 && 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
3548 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3549 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
3550 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
3551 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
3552 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
3553 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3554
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3555 /* 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
3556 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
3557
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3558 /* 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
3559 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
3560 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
3561 && 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
3562 && (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
3563 || 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
3564
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3565 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3566 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
3567 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
3568 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
3569 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
3570 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
3571 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3572 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3573 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
3574
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3575 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
3576 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3577 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
3578 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
3579 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3580
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3581 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
3582 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
3583 break;
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 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
3586 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
3587 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
3588 else
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3589 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
3590 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
3591 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3592
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3593 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
3594 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
3595 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
3596 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3597 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
3598 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
3599 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3600
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3601 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3602 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3603 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3604
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
3605 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
3606 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3607 /* Draw underline. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3608 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
3609 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3610 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
3611 unsigned long dy = s->height - h;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3612
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3613 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
3614 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
3615 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
3616 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3617 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3618 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3619 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
3620 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
3621 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
3622 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
3623 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
3624 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3625 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3626
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3627 /* Draw overline. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3628 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
3629 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3630 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
3631
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3632 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
3633 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
3634 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
3635 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3636 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3637 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3638 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
3639 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
3640 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
3641 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
3642 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
3643 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3644 }
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 /* 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
3647 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
3648 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3649 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
3650 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
3651
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3652 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
3653 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
3654 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
3655 else
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 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3658 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
3659 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
3660 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
3661 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
3662 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
3663 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3664 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3665
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3666 /* 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
3667 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
3668 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
3669 }
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 /* Reset clipping. */
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
3672 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
3673 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3674
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3675 /* 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
3676
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3677 void
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3678 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
3679 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3680 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
3681 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3682 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
3683 x, y, width, height,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
3684 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
3685 }
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 /* 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
3688 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
3689
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3690 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3691 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
3692 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
3693 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3694 abort ();
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3697
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3698 /* 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
3699 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
3700
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3701 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3702 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
3703 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3704 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
3705
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3706 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
3707 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
3708 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3709 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
3710
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3711 /* 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
3712 longer visible. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3713 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
3714 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
3715 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
3716
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3717 /* 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
3718 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
3719 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3720 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
3721
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3722 /* 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
3723 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
3724 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
3725
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3726 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
3727 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3728 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3729
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3730
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3731
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3732 /* 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
3733
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3734 /* 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
3735 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
3736
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3737 #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
3738
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3739
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3740 /* 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
3741 *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
3742
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3743 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3744 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
3745 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
3746 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3747 /* 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
3748 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
3749 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
3750 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3751 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
3752 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
3753 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
3754 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3755
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3756 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
3757 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3758 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
3759 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
3760 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
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 /* 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
3764 positive. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3765 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
3766 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
3767
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3768 /* 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
3769 negative. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3770 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
3771 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3772
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3773 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3774 XTflash (f)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3775 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
3776 {
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3777 /* 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
3778 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
3779 /* 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
3780 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
3781 /* 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
3782 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
3783 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
3784
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3785 int width;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3786
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3787 /* 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
3788 edge it is next to. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3789 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
3790 {
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3791 case vertical_scroll_bar_left:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3792 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
3793 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3794
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3795 case vertical_scroll_bar_right:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3796 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
3797 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3798
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3799 default:
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3800 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3801 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3802
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3803 width = flash_right - flash_left;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3804
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3805 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3806
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3807 /* 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
3808 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
3809 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3810 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
3811 (FRAME_INTERNAL_BORDER_WIDTH (f)
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3812 + 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
3813 width, flash_height);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3814 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
3815 (height - flash_height
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3816 - FRAME_INTERNAL_BORDER_WIDTH (f)),
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3817 width, flash_height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3818 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3819 else
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3820 /* 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
3821 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
3822 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
3823
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3824 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
3825
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3826 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3827 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
3828
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3829 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
3830
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3831 /* 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
3832 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
3833 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
3834 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
3835
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3836 /* 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
3837 available. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3838 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
3839 {
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3840 struct timeval current;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3841 struct timeval timeout;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3842
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3843 EMACS_GET_TIME (current);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3844
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3845 /* 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
3846 if (timeval_subtract (&current, wakeup, current))
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3847 break;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3848
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3849 /* How long `select' should wait. */
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3850 timeout.tv_sec = 0;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3851 timeout.tv_usec = 10000;
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3852
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3853 /* 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
3854 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
3855 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3856 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3857
65822
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3858 /* 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
3859 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
3860 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3861 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
3862 (FRAME_INTERNAL_BORDER_WIDTH (f)
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3863 + 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
3864 width, flash_height);
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3865 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
3866 (height - flash_height
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3867 - FRAME_INTERNAL_BORDER_WIDTH (f)),
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3868 width, flash_height);
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3869 }
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3870 else
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3871 /* 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
3872 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
3873 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
3874
00a8cdae2968 (mac_invert_rectangle): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65772
diff changeset
3875 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
3876
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3877 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3878 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3879
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3880 #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
3881
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3882
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3883 /* 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
3884
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3885 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3886 XTring_bell ()
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 struct frame *f = SELECTED_FRAME ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3889
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3890 #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
3891 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
3892 XTflash (f);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3893 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3894 #endif
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 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3897 SysBeep (1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3898 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
3899 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3900 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3904 /* 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
3905 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
3906 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
3907 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
3908
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
3909 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
3910 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
3911 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
3912 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3913 /* 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
3914 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3915
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3918 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3919 Line Dance
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3922 /* 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
3923 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
3924
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3925 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3926 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
3927 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
3928 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3929 abort ();
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 /* 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
3934
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3935 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3936 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
3937 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
3938 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
3939 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3940 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
3941 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
3942
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3943 /* 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
3944 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
3945 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
3946 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
3947
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3948 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
3949 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
3950 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
3951
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3952 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
3953 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3954 /* 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
3955 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
3956 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
3957 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
3958 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3959 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
3960 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3961 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3962 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3963 /* 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
3964 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
3965 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
3966 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
3967 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3968 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
3969 }
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 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3972
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3973 /* 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
3974 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
3975 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
3976
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3977 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
3978 x, from_y,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3979 width, height,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
3980 x, to_y);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3981
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3982 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3983 }
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
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 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3988 Exposure Events
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3989 ***********************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
3990
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3991
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3992 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
3993 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
3994 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
3995 {
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
3996 OSErr err;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
3997 ControlRef root_control;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
3998
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
3999 BLOCK_INPUT;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4000 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
4001 if (err == noErr)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4002 ActivateControl (root_control);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4003 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
4004 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
4005 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4006
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4007 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4008 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
4009 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
4010 {
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4011 OSErr err;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4012 ControlRef root_control;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4013
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4014 BLOCK_INPUT;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4015 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
4016 if (err == noErr)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4017 DeactivateControl (root_control);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4018 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
4019 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
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 /* 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
4023 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
4024 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
4025 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
4026 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
4027
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4028 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4029 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
4030 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
4031 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
4032 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4033 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
4034
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4035 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
4036 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4037 /* 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
4038 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
4039 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
4040
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4041 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
4042 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
4043
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4044 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4045 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
4046 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
4047 selected_frame);
51048
7ac9c3bea5ea (Fselect_window): Add optional arg `norecord'.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 50701
diff changeset
4048 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
4049 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
4050 #endif /* ! 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4051
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4052 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
4053 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
4054 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4055 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
4056 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4057
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4058 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
4059 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4060
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4061 /* 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
4062 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
4063 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
4064
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4065 static void
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4066 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
4067 int type;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4068 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
4069 struct frame *frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4070 struct input_event *bufp;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4071 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4072 if (type == activeFlag)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4073 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4074 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
4075 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4076 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
4077 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
4078
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4079 /* 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
4080 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
4081 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
4082 && GC_CONSP (Vframe_list)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4083 && !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
4084 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4085 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
4086 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
4087 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4088 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4089 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4090 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4091 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4092 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
4093 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4094 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
4095 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
4096 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4097 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4098 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4099
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4100 /* 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
4101 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
4102
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4103 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
4104
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4105 static void
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4106 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
4107 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
4108 EventRecord *event;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4109 struct input_event *bufp;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4110 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4111 struct frame *frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4112
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4113 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
4114 if (! frame)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4115 return;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4116
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4117 /* 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
4118 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
4119 dpyinfo, frame, bufp);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4120 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4121
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4122
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4123 /* 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
4124
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4125 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4126 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
4127 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
4128 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4129 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
4130 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4131
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4132 /* 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
4133 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
4134 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
4135
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4136 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
4137 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
4138 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
4139
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4140 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4141 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
4142 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
4143 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4144 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
4145 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4146
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4147 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4148 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
4149 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
4150 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4151 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
4152
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4153 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
4154 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4155 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
4156 = ((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
4157 ? 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
4158 : 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
4159 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
4160 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4161 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
4162 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
4163 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4164 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4165 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4166 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
4167
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4168 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
4169 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4170 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
4171 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
4172 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
4173 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
4174 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4175 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4176
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4177
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4178
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4179 /* 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
4180
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4181 #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
4182 /* 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
4183 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4184 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
4185 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
4186 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4187 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
4188 KeySym *syms;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4189 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
4190 XModifierKeymap *mods;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4191
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4192 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
4193 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
4194 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
4195 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
4196 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
4197
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4198 #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
4199 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
4200 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4201 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
4202 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
4203 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4204
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4205 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
4206 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
4207 &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
4208 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
4209
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4210 /* 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
4211 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
4212 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4213 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
4214
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4215 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
4216 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
4217 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4218 KeyCode code
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4219 = 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
4220
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4221 /* 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
4222 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
4223 continue;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4224
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4225 /* 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
4226 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4227 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
4228
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4229 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
4230 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4231 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
4232
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4233 switch (sym)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4234 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4235 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
4236 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
4237 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
4238 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4239
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4240 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
4241 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
4242 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
4243 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4244
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4245 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
4246 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
4247 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
4248 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4249
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4250 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
4251 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
4252 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
4253 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4254
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4255 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
4256 /* 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
4257 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
4258 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
4259 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4260 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4261 }
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 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4265
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4266 /* 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
4267 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
4268 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4269 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
4270 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
4271 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4272
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4273 /* 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
4274 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
4275 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
4276 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4277 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
4278 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4279
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4280 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
4281 XFreeModifiermap (mods);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4282 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4283
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4284 #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
4285
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4286 /* 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
4287 Emacs uses. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4288
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4289 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
4290 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
4291 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
4292 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
4293 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4294 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
4295 | ((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
4296 | ((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
4297 | ((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
4298 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4299
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4300 #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
4301 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
4302 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
4303 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
4304 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
4305 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4306 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
4307 | ((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
4308 | ((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
4309 | ((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
4310 | ((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
4311 | ((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
4312 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4313 #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
4314
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4315 /* 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
4316
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4317 char *
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4318 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
4319 int keysym;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4320 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4321 char *value;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4322
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4323 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4324 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4325 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
4326 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4327 value = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4328 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4329 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4330
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4331 return value;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4332 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4333
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4334
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4335
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4336 /* 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
4337 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
4338
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4339 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
4340 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
4341 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
4342 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
4343
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4344 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
4345 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
4346
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
4347 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
4348 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
4349 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
4350 Point *pos;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4351 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4352 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
4353 #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
4354 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4355 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4356
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4357 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
4358 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
4359 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
4360
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4361 #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
4362 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
4363 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4364 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
4365 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4366 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4367 if (frame == dpyinfo->mouse_face_mouse_frame)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4368 /* This case corresponds to LeaveNotify in X11. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4369 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4370 /* 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
4371 longer on any text in the frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4372 clear_mouse_face (dpyinfo);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4373 dpyinfo->mouse_face_mouse_frame = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4374 if (!dpyinfo->grabbed)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4375 rif->define_frame_cursor (frame,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4376 frame->output_data.mac->nontext_cursor);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4377 }
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
4378 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
4379 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4380 /* 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
4381 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
4382 || !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
4383 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4384 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
4385 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
4386 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
4387 /* 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
4388 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
4389 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
4390 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
4391 }
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
4392
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
4393 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
4394 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4395
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4396
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4397 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4398 Mouse Face
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4399 ************************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4400
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4401 /* 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
4402
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4403 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4404 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
4405 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4406 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
4407 && 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
4408 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
4409 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
4410 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
4411 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4412
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4413
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4414 static struct frame *
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4415 mac_focus_frame (dpyinfo)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4416 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
4417 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4418 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
4419 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
4420 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4421 /* 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
4422 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
4423 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
4424 return SELECTED_FRAME ();
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4425 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
4426
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
4427
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4428 /* 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
4429 *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
4430
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4431 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
4432 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
4433 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
4434 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
4435
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4436 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
4437 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
4438 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
4439
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4440 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
4441 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
4442
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4443 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
4444
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4445 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
4446 movement. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4447
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4448 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4449 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
4450 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
4451 int insist;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4452 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
4453 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
4454 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
4455 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
4456 {
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4457 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
4458
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4459 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4460
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4461 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
4462 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
4463 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4464 {
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4465 Lisp_Object frame, tail;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4466
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4467 /* 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
4468 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
4469 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
4470
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4471 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
4472
66033
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4473 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
4474 && 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
4475 f1 = last_mouse_frame;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4476 else
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4477 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
4478
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4479 if (f1)
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4480 {
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4481 /* 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
4482 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
4483 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
4484 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
4485 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
4486 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
4487 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
4488 Point mouse_pos;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4489
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4490 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
4491 GetMouse (&mouse_pos);
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4492 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
4493 &last_mouse_glyph);
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
4494 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
4495
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4496 *bar_window = Qnil;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4497 *part = 0;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4498 *fp = f1;
ce2c44ba9ef1 (note_mouse_movement): Add call to remember_mouse_glyph.
Kim F. Storm <storm@cua.dk>
parents: 66005
diff changeset
4499 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
4500 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
4501 *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
4502 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4503 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4504
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4505 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4506 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4507
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4508
62103
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 Toolkit scroll bars
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4511 ************************************************************************/
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4512
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4513 #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
4514
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4515 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
4516 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
4517 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
4518 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
4519 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
4520 struct input_event *));
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4521 static OSStatus get_control_part_bounds P_ ((ControlHandle, ControlPartCode,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4522 Rect *));
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4523 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
4524 ControlPartCode,
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4525 struct input_event *));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4526 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
4527 struct input_event *));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4528 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
4529 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
4530 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
4531 int, int, int));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4532
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4533 /* 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
4534
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4535 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
4536
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4537 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
4538
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4539 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
4540
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4541 #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
4542 #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
4543
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4544 static pascal void
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4545 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
4546 EventLoopTimerRef timer;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4547 void *data;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4548 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4549 EventRef event = NULL;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4550 OSErr err;
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 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
4553 kEventAttributeNone, &event);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4554 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4555 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4556 Point mouse_pos;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4557
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4558 GetMouse (&mouse_pos);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4559 LocalToGlobal (&mouse_pos);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4560 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
4561 sizeof (Point), &mouse_pos);
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 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4564 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4565 UInt32 modifiers = GetCurrentKeyModifiers ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4566
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4567 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
4568 sizeof (UInt32), &modifiers);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4569 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4570 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4571 err = PostEventToQueue (GetCurrentEventQueue (), event,
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4572 kEventPriorityStandard);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4573 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4574 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
4575
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4576 if (event)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4577 ReleaseEvent (event);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4578 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4579
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4580 static OSStatus
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4581 install_scroll_bar_timer ()
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4582 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4583 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
4584
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4585 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
4586 scroll_bar_timer_callbackUPP =
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4587 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
4588
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4589 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
4590 /* 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
4591 kEventDurationForever as delays. */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4592 return
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4593 InstallEventLoopTimer (GetCurrentEventLoop (),
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4594 kEventDurationForever, kEventDurationForever,
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4595 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
4596 &scroll_bar_timer);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4597 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4598
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4599 static OSStatus
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4600 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
4601 EventTimerInterval delay;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4602 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4603 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
4604 install_scroll_bar_timer ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4605
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4606 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
4607
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4608 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
4609 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4610
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4611 static int
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4612 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
4613 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4614 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4615 switch (part_code)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4616 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4617 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
4618 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
4619 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
4620 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
4621 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
4622 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4623
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4624 return -1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4625 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4626
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4627 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
4628 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
4629 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4630 int part;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4631 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4632 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4633 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
4634 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
4635 bufp->arg = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4636 bufp->part = part;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4637 bufp->code = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4638 XSETINT (bufp->x, 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4639 XSETINT (bufp->y, 0);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4640 bufp->modifiers = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4641 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4642
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4643 static OSStatus
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
4644 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
4645 ControlHandle ch;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4646 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4647 Rect *rect;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4648 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4649 RgnHandle region = NewRgn ();
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4650 OSStatus err;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4651
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4652 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
4653 if (err == noErr)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4654 GetRegionBounds (region, rect);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4655 DisposeRgn (region);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4656
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4657 return err;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4658 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4659
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4660 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
4661 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
4662 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4663 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4664 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4665 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4666 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
4667
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4668 if (part < 0)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4669 return;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4670
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4671 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
4672 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4673 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
4674 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
4675 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
4676 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4677
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4678 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
4679 bar->dragging = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4680 tracked_scroll_bar = bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4681 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4682
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4683 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
4684 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
4685 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4686 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4687 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4688 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
4689 || !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
4690 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
4691
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4692 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
4693 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
4694
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4695 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
4696 bar->dragging = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4697 tracked_scroll_bar = NULL;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4698 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4699
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4700 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
4701 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
4702 WindowPtr win;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4703 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4704 Point mouse_pos;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4705 struct input_event *bufp;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4706 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4707 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
4708
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4709 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
4710 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4711 int top, top_range;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4712 Rect r;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4713
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
4714 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
4715 kControlIndicatorPart, &r);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4716
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4717 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
4718 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
4719
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4720 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
4721 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
4722 (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
4723 + .5;
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4724
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4725 if (top < 0)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4726 top = 0;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4727 if (top > top_range)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4728 top = top_range;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4729
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4730 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
4731 XSETINT (bufp->x, top);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4732 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
4733 }
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4734 else
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4735 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4736 ControlPartCode part_code;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4737 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
4738
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4739 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
4740 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4741 else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4742 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4743 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
4744
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4745 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
4746 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4747 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
4748 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
4749 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
4750 && 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
4751 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4752 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4753
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4754 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
4755 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
4756 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
4757 && 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
4758 unhilite_p = 1;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4759 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4760 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4761 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4762
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4763 if (unhilite_p)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4764 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
4765 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
4766 || 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
4767 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4768 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
4769 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
4770 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
4771 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
4772 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4773 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4774 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4775
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4776 /* 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
4777 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
4778
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4779 static void
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4780 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
4781 struct scroll_bar *bar;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4782 int portion, position, whole;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4783 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4784 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
69113
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4785 int value, viewsize, maximum;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4786
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4787 if (XINT (bar->track_height) == 0)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4788 return;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4789
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4790 if (whole == 0)
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4791 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
4792 else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4793 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4794 value = position;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4795 viewsize = portion;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4796 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
4797 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4798
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4799 BLOCK_INPUT;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4800
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4801 if (GetControlViewSize (ch) != viewsize
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4802 || GetControl32BitValue (ch) != value
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4803 || GetControl32BitMaximum (ch) != maximum)
69113
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4804 {
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4805 /* Temporarily hide the scroll bar to avoid multiple redraws. */
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4806 SetControlVisibility (ch, false, false);
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4807
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4808 SetControl32BitMaximum (ch, maximum);
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4809 SetControl32BitValue (ch, value);
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4810 SetControlViewSize (ch, viewsize);
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4811
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4812 SetControlVisibility (ch, true, true);
eb6e7cc98bbf (x_set_toolkit_scroll_bar_thumb): Don't set control
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69099
diff changeset
4813 }
69099
9547db029a2a (GC_CLIP_REGION): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69061
diff changeset
4814
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4815 UNBLOCK_INPUT;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4816 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4817
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4818 #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
4819
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4820
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
4821
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4822 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4823 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
4824 ************************************************************************/
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4825
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4826 /* 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
4827 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
4828 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
4829 scroll bar. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4830
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4831 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
4832 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
4833 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
4834 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
4835 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4836 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
4837 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
4838 = 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
4839 Rect r;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4840 ControlHandle ch;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4841
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4842 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4843
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4844 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
4845 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
4846 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
4847 r.bottom = disp_top + disp_height;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4848
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
4849 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
4850 mac_prepare_for_quickdraw (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
4851 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
4852 #if TARGET_API_MAC_CARBON
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4853 ch = NewControl (FRAME_MAC_WINDOW (f), &r, "\p",
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4854 #if USE_TOOLKIT_SCROLL_BARS
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4855 false,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4856 #else
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4857 width < disp_height,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
4858 #endif
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4859 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
4860 #else
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4861 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
4862 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
4863 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4864 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
4865
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4866 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
4867 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
4868 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
4869 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
4870 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
4871 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
4872 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
4873 bar->dragging = Qnil;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4874 #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
4875 bar->track_top = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4876 bar->track_height = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4877 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4878
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4879 /* 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
4880 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
4881 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
4882 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
4883 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
4884 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
4885
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4886 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4887 return bar;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4888 }
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4891 /* Draw BAR's handle in the proper position.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4892
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4893 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
4894 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
4895 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
4896 events.)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4897
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4898 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
4899 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
4900 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
4901 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
4902 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
4903
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4904 #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
4905
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4906 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4907 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
4908 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
4909 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
4910 int rebuild;
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 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
4913 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
4914 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
4915 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
4916 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
4917
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4918 /* 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
4919 if (! rebuild
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4920 && 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
4921 && 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
4922 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4923
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4924 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4925
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4926 /* 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
4927 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
4928 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
4929 start = 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4930 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
4931 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
4932 end = start + length;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
4933
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4934 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
4935 end = start;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4936 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
4937 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
4938
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4939 /* 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
4940 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
4941 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
4942
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4943 /* 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
4944 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
4945 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
4946
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4947 /* 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
4948 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
4949 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
4950 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
4951
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4952 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
4953 /* 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
4954 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
4955 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
4956 - (end - start));
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4957 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
4958 #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
4959 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
4960 #endif
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 UNBLOCK_INPUT;
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
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
4965 #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
4966
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4967 /* 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
4968 nil. */
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4971 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
4972 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
4973 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4974 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
4975
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4976 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4977
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
4978 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
4979 mac_prepare_for_quickdraw (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
4980 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4981 /* 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
4982 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
4983
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4984 /* 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
4985 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
4986
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4987 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4988 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4989
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
4990
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4991 /* 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
4992 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
4993 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
4994 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
4995
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4996 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
4997 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
4998 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
4999 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
5000 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5001 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
5002 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
5003 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
5004 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
5005
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5006 /* Get window dimensions. */
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5007 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
5008 top = window_y;
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5009 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
5010 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
5011
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5012 /* 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
5013 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
5014
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5015 /* 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
5016 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
5017 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
5018 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
5019 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5020 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
5021
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5022 /* 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
5023 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
5024 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
5025 else
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5026 sb_left = left + width - sb_width;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5027
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5028 /* 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
5029 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
5030 disp_height = height;
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5031 #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
5032 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
5033 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5034 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
5035 disp_height++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5036 }
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5037 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
5038 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5039 disp_top++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5040 disp_height--;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5041 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5042
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5043 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
5044 sb_left++;
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5045 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5046
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5047 /* 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
5048 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
5049 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5050 BLOCK_INPUT;
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5051 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
5052 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5053 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
5054 disp_height);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5055 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
5056 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5057 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5058 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5059 /* 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
5060 ControlHandle ch;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5061
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5062 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
5063 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
5064
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5065 BLOCK_INPUT;
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 /* 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
5068 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
5069 && 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
5070 && 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
5071 && 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
5072 {
64424
feba2f2d875e (x_bitmap_icon, x_make_frame_visible): Remove declarations.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64313
diff changeset
5073 /* 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
5074 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
5075 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
5076
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5077 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5078 mac_prepare_for_quickdraw (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5079 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5080 HideControl (ch);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5081 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
5082 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
5083 disp_height);
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5084 #ifndef USE_TOOLKIT_SCROLL_BARS
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5085 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
5086 ShowControl (ch);
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5087 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5088
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5089 /* 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
5090 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
5091 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
5092 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
5093 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
5094 #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
5095 bar->track_top = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5096 bar->track_height = Qnil;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5097 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5098 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5099
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5100 UNBLOCK_INPUT;
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
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5103 #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
5104 if (NILP (bar->track_top))
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5105 if (sb_width >= disp_height)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5106 {
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5107 XSETINT (bar->track_top, 0);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5108 XSETINT (bar->track_height, 0);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5109 }
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5110 else
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5111 {
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5112 ControlHandle ch = SCROLL_BAR_CONTROL_HANDLE (bar);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5113 Rect r0, r1;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5114
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5115 BLOCK_INPUT;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5116
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5117 SetControl32BitMinimum (ch, 0);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5118 SetControl32BitMaximum (ch, 1);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5119 SetControlViewSize (ch, 1);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5120
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5121 /* Move the scroll bar thumb to the top. */
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5122 SetControl32BitValue (ch, 0);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5123 get_control_part_bounds (ch, kControlIndicatorPart, &r0);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5124
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5125 /* Move the scroll bar thumb to the bottom. */
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5126 SetControl32BitValue (ch, 1);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5127 get_control_part_bounds (ch, kControlIndicatorPart, &r1);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5128
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5129 UnionRect (&r0, &r1, &r0);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5130 XSETINT (bar->track_top, r0.top);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5131 XSETINT (bar->track_height, r0.bottom - r0.top);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5132
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5133 /* Don't show the scroll bar if its height is not enough to
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5134 display the scroll bar thumb. */
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5135 if (r0.bottom - r0.top > 0)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5136 ShowControl (ch);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5137
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5138 UNBLOCK_INPUT;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
5139 }
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5140
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5141 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
5142 #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
5143 /* 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
5144 dragged. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5145 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
5146 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5147 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
5148
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5149 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
5150 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
5151 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5152 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5153 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
5154 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
5155 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
5156 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5157 }
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5158 #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
5159 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5160
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5161
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5162 /* 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
5163 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
5164 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
5165 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
5166 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
5167 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
5168 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
5169
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5170 /* 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
5171 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
5172 `*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
5173
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5174 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5175 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
5176 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
5177 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5178 /* 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
5179 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
5180 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5181 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
5182 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
5183 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
5184 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
5185 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
5186 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
5187 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
5188 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
5189 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5190 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5191
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5192
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5193 /* 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
5194 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
5195
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5196 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5197 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
5198 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
5199 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5200 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
5201 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
5202
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5203 /* 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
5204 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
5205 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5206
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5207 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
5208
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5209 /* 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
5210 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
5211 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
5212 {
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5213 /* 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
5214 the lists. */
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5215 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
5216 /* 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
5217 return;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5218 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
5219 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
5220 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
5221 else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5222 /* 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
5223 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
5224 abort ();
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5225 }
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5226 else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5227 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
5228
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5229 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
5230 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
5231
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5232 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
5233 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
5234 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
5235 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
5236 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
5237 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5238
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5239 /* 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
5240 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
5241
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5242 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5243 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
5244 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
5245 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5246 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
5247
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5248 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
5249
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5250 /* 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
5251 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
5252 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
5253
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5254 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
5255 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5256 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
5257
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5258 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
5259
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5260 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
5261 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
5262 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5263
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5264 /* 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
5265 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
5266 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5267
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5268
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5269 /* 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
5270 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
5271
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5272 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
5273 mark bits. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5274
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5275 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5276 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
5277 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
5278 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
5279 EventRecord *er;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5280 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
5281 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5282 int win_y, top_range;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5283
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5284 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
5285 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5286
45803
9484de301252 Rename enum event_kind items.
Pavel Janík <Pavel@Janik.cz>
parents: 45197
diff changeset
5287 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
5288 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
5289 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
5290
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5291 bar->dragging = Qnil;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5292
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5293 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
5294 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5295 case kControlUpButtonPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5296 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
5297 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5298 case kControlDownButtonPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5299 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
5300 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5301 case kControlPageUpPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5302 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
5303 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5304 case kControlPageDownPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5305 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
5306 break;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5307 #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
5308 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5309 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5310 case kControlIndicatorPart:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5311 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5312 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
5313 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
5314 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
5315 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
5316 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5317 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5318
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5319 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
5320 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
5321
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5322 win_y -= VERTICAL_SCROLL_BAR_TOP_BORDER;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5323
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5324 win_y -= 24;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5325
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5326 if (! NILP (bar->dragging))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5327 win_y -= XINT (bar->dragging);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5328
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5329 if (win_y < 0)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5330 win_y = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5331 if (win_y > top_range)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5332 win_y = top_range;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5333
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5334 XSETINT (bufp->x, win_y);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5335 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
5336 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5337
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5338 #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
5339
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5340 /* 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
5341
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5342 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
5343 mark bits. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5344
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5345 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5346 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
5347 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
5348 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
5349 Time t;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5350 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5351 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
5352
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5353 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
5354
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5355 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
5356 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
5357
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5358 /* 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
5359 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
5360 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5361 /* 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
5362 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
5363
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5364 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
5365 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5366 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
5367
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5368 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
5369 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5370 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5371 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5372
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
5373 #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
5374
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5375 /* 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
5376 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
5377
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5378 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5379 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
5380 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
5381 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
5382 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
5383 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
5384 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
5385 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5386 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
5387 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
5388 #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
5389 WindowPtr wp = GetControlOwner (ch);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5390 #else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5391 WindowPtr wp = (*ch)->contrlOwner;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
5392 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5393 Point mouse_pos;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5394 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
5395 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
5396
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
5397 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
5398
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5399 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
5400
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5401 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
5402 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
5403
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5404 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
5405
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5406 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
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 (! 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
5409 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
5410
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5411 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
5412 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
5413 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
5414 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
5415
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5416 *fp = f;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5417 *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
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 (bar->dragging))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5420 *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
5421 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
5422 *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
5423 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
5424 *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
5425 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5426 *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
5427
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5428 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
5429 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
5430
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5431 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
5432 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
5433
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5434 *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
5435 }
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5436
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5437
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5438 /* 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
5439 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
5440 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
5441 redraw them. */
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5442
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5443 void
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5444 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
5445 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
5446 {
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5447 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
5448 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
5449 }
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
5450
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5451
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5452 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5453 Text Cursor
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5454 ***********************************************************************/
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 /* 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
5457 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
5458
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5459 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
5460 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
5461 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
5462
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5463 static void
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5464 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
5465 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
5466 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
5467 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
5468 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5469 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5470 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
5471 Rect clip_rect;
58403
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5472 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
5473
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5474 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
5475
c936fa56eb60 (x_clip_to_row): Add area arg. Callers changed.
Kim F. Storm <storm@cua.dk>
parents: 57783
diff changeset
5476 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
5477 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
5478 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
5479 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
5480 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
5481
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
5482 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
5483 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5484
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5485
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5486 /* 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
5487
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5488 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5489 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
5490 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
5491 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
5492 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5493 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
5494 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
5495 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
5496 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
5497 XGCValues xgcv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5498 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
5499 GC gc;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5500
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5501 /* 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
5502 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
5503 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
5504 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
5505 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5506
59748
1df465faf1df (x_draw_hollow_cursor): Use get_phys_cursor_geometry.
Kim F. Storm <storm@cua.dk>
parents: 59718
diff changeset
5507 /* 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
5508 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
5509 y = get_phys_cursor_geometry (w, row, cursor_glyph, &h);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5510 wd = w->phys_cursor_width;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5511
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5512 /* 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
5513 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
5514 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
5515 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
5516 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
5517 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5518 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
5519 GCForeground, &xgcv);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5520 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
5521
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5522 /* 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
5523 x_clip_to_row (w, row, TEXT_AREA, gc);
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
5524 mac_draw_rectangle (f, gc, x, y, wd, h - 1);
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
5525 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
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5529 /* 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
5530
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5531 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
5532 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
5533 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
5534 --gerd. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5535
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5536 static void
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5537 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
5538 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
5539 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
5540 int width;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5541 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
5542 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5543 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
5544 struct glyph *cursor_glyph;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5545
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5546 /* 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
5547 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
5548 and mini-buffer. */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5549 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
5550 if (cursor_glyph == NULL)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5551 return;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5552
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5553 /* 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
5554 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
5555 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
5556 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
5557 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5558 struct glyph_row *row;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5559 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
5560 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
5561 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5562 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5563 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5564 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
5565 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
5566 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
5567 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
5568 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
5569 XGCValues xgcv;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5570
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5571 /* 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
5572 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
5573 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
5574 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
5575 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
5576 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
5577 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
5578 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5579 xgcv.background = xgcv.foreground = f->output_data.mac->cursor_pixel;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
5580
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5581 if (gc)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5582 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
5583 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5584 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5585 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
5586 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
5587 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5588
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5589 if (width < 0)
47138
4a0541418bc5 (x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents: 47030
diff changeset
5590 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
5591 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
5592
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5593 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
5594 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
5595
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5596 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
5597 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
5598 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
5599 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
5600 width, row->height);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5601 else
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5602 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
5603 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
5604 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
5605 row->height - width),
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5606 cursor_glyph->pixel_width,
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5607 width);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5608
65910
a53616277ba6 (GC_CLIP_REGION): New macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65892
diff changeset
5609 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
5610 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5611 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5612
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5613
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5614 /* 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
5615
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5616 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5617 mac_define_frame_cursor (f, cursor)
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5618 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5619 Cursor cursor;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5620 {
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
5621 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
5622
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
5623 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
5624 SetThemeCursor (cursor);
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5625 }
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5626
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5627
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5628 /* 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
5629
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5630 static void
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5631 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
5632 struct frame *f;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5633 int x, y, width, height;
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5634 {
66110
479c8c41d179 (MAC_WINDOW_NORMAL_GC): Remove macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66080
diff changeset
5635 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
5636 }
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5637
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5638
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5639 /* RIF: Draw cursor on window W. */
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5640
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5641 static void
50243
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5642 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
5643 struct window *w;
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5644 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
5645 int x, y;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5646 int cursor_type, cursor_width;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5647 int on_p, active_p;
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5648 {
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5649 if (on_p)
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5650 {
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5651 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
5652 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
5653
53606
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
5654 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
5655 && 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
5656 {
96c29ac603e8 (x_update_window_end): Call draw_window_fringes.
Kim F. Storm <storm@cua.dk>
parents: 53579
diff changeset
5657 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
5658 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
5659 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5660 else
50243
3fb54e5a7201 (struct redisplay_interface): Add active_p argument to
Kim F. Storm <storm@cua.dk>
parents: 50222
diff changeset
5661 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
5662 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5663 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
5664 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
5665 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5666
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5667 case FILLED_BOX_CURSOR:
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
5668 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
5669 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5670
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5671 case BAR_CURSOR:
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5672 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
5673 break;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5674
47138
4a0541418bc5 (x_specified_cursor_type): Remove prototype.
Kim F. Storm <storm@cua.dk>
parents: 47030
diff changeset
5675 case HBAR_CURSOR:
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5676 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
5677 break;
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 case NO_CURSOR:
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
5680 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
5681 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5682
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5683 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5684 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5685 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5686 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5687 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5688
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5689
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5690 /* Icons. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5691
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5692 #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
5693 int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5694 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
5695 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
5696 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
5697 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5698 HANDLE hicon;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5699
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5700 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
5701 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5702
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5703 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
5704 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
5705 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
5706 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
5707 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
5708 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
5709 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5710 LPCTSTR name;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5711
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5712 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
5713 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
5714 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
5715 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
5716 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
5717 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
5718 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
5719 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
5720 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
5721 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
5722 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
5723 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
5724 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5725 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5726
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5727 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
5728 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5729 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5730 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5731
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5732 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
5733 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5734
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5735 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
5736 (LPARAM) hicon);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5737
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5738 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5739 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5740 #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
5741
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5742 /************************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5743 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
5744 ************************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5745
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5746 /* 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
5747 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
5748
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5749 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
5750 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
5751 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
5752 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
5753 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
5754 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
5755 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
5756 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
5757 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
5758 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
5759 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
5760 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
5761 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
5762
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5763 */
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5766 /* 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
5767
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5768 /* 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
5769 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
5770 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
5771 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
5772
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5773 Lisp_Object
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5774 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
5775 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
5776 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
5777 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5778 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
5779 = FS_LOAD_FONT (f, 0, fontname, -1);
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 if (!fontp)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5782 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5783
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5784 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
5785 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
5786 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
5787
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
5788 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
5789 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
5790 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
5791
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5792 compute_fringe_widths (f, 1);
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5793
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5794 /* 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
5795 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
5796 {
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5797 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
5798 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
5799 = (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
5800 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5801 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5802 {
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5803 int wid = FRAME_COLUMN_WIDTH (f);
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5804 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
5805 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5806
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5807 /* 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
5808 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
5809 {
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
5810 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
5811 FRAME_FONT (f));
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
5812 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
5813 FRAME_FONT (f));
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
5814 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
5815 FRAME_FONT (f));
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5816
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5817 /* 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
5818 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
5819 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
5820 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
5821 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
5822 }
44890
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 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
5825 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
5826
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5827 /* Give frame F the fontset named FONTSETNAME 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
5828 return the full name of that fontset. FONTSETNAME 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
5829 pattern; in that case, we choose some fontset 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
5830 The return value shows which fontset we chose. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5831
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5832 Lisp_Object
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5833 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
5834 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
5835 char *fontsetname;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5836 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5837 int fontset = fs_query_fontset (build_string (fontsetname), 0);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5838 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
5839
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5840 if (fontset < 0)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5841 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5842
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5843 if (FRAME_FONTSET (f) == fontset)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5844 /* 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
5845 to do. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5846 return fontset_name (fontset);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5847
46370
40db0673e6f0 Most uses of XSTRING combined with STRING_BYTES or indirection changed to
Ken Raeburn <raeburn@raeburn.org>
parents: 46169
diff changeset
5848 result = x_new_font (f, (SDATA (fontset_ascii (fontset))));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5849
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5850 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
5851 /* 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
5852 return Qnil;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5853
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5854 /* 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
5855 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
5856
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5857 return build_string (fontsetname);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5858 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5859
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 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
5863 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5864 /* 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
5865
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5866 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
5867 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
5868 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
5869 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
5870 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
5871 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
5872
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5873 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5874
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5875
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5876 void
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5877 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
5878 struct frame *f;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5879 Rect *inner, *outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5880 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5881 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5882 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
5883 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
5884 #else /* not TARGET_API_MAC_CARBON */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5885 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
5886
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5887 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
5888 *inner = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5889 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
5890 *outer = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5891 DisposeRgn (region);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5892 #endif /* not TARGET_API_MAC_CARBON */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5893 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5894
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5895
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
5896
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5897 /* 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
5898 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
5899
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5900 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5901 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
5902 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
5903 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5904 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
5905 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
5906 Rect inner, outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5907
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5908 /* 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
5909 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
5910 if (! ((flags & XNegative) || (flags & YNegative)))
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5911 return;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5912
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5913 /* 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
5914 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
5915 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
5916
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5917 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
5918 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
5919
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5920 /* 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
5921 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
5922 if (flags & XNegative)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5923 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
5924 - width_diff
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5925 - FRAME_PIXEL_WIDTH (f)
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5926 + f->left_pos);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5927
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5928 if (flags & YNegative)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5929 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
5930 - height_diff
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5931 - FRAME_PIXEL_HEIGHT (f)
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5932 + f->top_pos);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5933
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5934 /* 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
5935 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
5936 so the flags should correspond. */
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5937 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
5938 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5939
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5940 /* 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
5941 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
5942 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
5943 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
5944 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
5945
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5946 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5947 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
5948 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
5949 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
5950 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
5951 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5952 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
5953 {
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5954 f->top_pos = yoff;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5955 f->left_pos = xoff;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5956 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
5957 if (xoff < 0)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5958 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
5959 if (yoff < 0)
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5960 f->size_hint_flags |= YNegative;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
5961 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
5962 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5963 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
5964
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5965 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
5966 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
5967
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5968 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5969 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
5970 /* 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
5971 position. */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5972 ConstrainWindowToScreen (FRAME_MAC_WINDOW (f), kWindowTitleBarRgn,
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5973 kWindowConstrainMoveRegardlessOfFit
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5974 | kWindowConstrainAllowPartial, NULL, NULL);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5975 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
5976 #else
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5977 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5978 Rect inner, outer, screen_rect, dummy;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5979 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
5980
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5981 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
5982 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
5983 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
5984 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
5985 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
5986
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5987 /* 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
5988 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
5989 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
5990 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
5991 strict. */
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5992 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
5993 outer = (*region)->rgnBBox;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5994 DisposeRgn (region);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5995 inner = outer;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5996 InsetRect (&inner, 8, 8);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5997 screen_rect = qd.screenBits.bounds;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5998 screen_rect.top += GetMBarHeight ();
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
5999
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6000 if (!SectRect (&inner, &screen_rect, &dummy))
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6001 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6002 if (inner.right <= screen_rect.left)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6003 f->left_pos = screen_rect.left;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6004 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
6005 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
6006
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6007 if (inner.bottom <= screen_rect.top)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6008 f->top_pos = screen_rect.top;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6009 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
6010 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
6011
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6012 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
6013 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
6014 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6015 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
6016 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6017
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6018 UNBLOCK_INPUT;
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6021 /* 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
6022 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
6023 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
6024 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
6025
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6026 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6027 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
6028 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
6029 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
6030 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
6031 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6032 int pixelwidth, pixelheight;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6033
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6034 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6035
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6036 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
6037 f->scroll_bar_actual_width
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6038 = 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
6039
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
6040 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
6041
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6042 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
6043 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
6044
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6045 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
6046 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
6047
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6048 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
6049 #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
6050 if (f->output_data.mac->hourglass_control)
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
6051 {
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
6052 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
6053 mac_prepare_for_quickdraw (f);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
6054 #endif
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
6055 MoveControl (f->output_data.mac->hourglass_control,
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
6056 pixelwidth - HOURGLASS_WIDTH, 0);
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
6057 }
60623
5a3fa411c713 (activate_scroll_bars, deactivate_scroll_bars): Remove functions and
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60611
diff changeset
6058 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6059
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6060 /* 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
6061 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
6062 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
6063 ConfigureNotify event gets here.
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6064
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6065 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
6066 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
6067 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
6068 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
6069 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
6070
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6071 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
6072 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
6073 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
6074 FRAME_PIXEL_WIDTH (f) = pixelwidth;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6075 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
6076
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6077 /* 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
6078 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
6079 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
6080 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
6081 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
6082
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6083 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
6084
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6085 /* 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
6086 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
6087
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6088 /* Clear out any recollection of where the mouse highlighting was,
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6089 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
6090 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
6091 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
6092 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
6093
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6094 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6095 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6096
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6097 /* Mouse warping. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6098
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6099 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
6100
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6101 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6102 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
6103 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
6104 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
6105 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6106 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
6107
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
6108 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
6109 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
6110
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6111 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
6112 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
6113
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6114 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
6115 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
6116
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6117 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
6118 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6119
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6120 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6121 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
6122 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
6123 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
6124 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6125 #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
6126 BLOCK_INPUT;
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 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
6129 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
6130 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6131 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6132 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6133
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6134 /* 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
6135
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6136 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6137 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
6138 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
6139 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6140 #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
6141 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
6142 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6143 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6144 /* 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
6145 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
6146 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
6147 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
6148 RevertToPointerRoot, CurrentTime);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6149 #endif /* ! 0 */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6150 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6151
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6152 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6153 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
6154 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
6155 {
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
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6158 /* 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
6159
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6160 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6161 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
6162 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
6163 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6164 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
6165 {
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6166 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
6167 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
6168 UNBLOCK_INPUT;
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6169 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6170 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6171
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6172 /* 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
6173
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6174 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6175 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
6176 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
6177 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6178 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
6179 {
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6180 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
6181 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
6182 UNBLOCK_INPUT;
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
6183 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6184 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6185
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6186 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6187 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
6188 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
6189 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
6190 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6191 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
6192 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
6193 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6194 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
6195 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6196
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6197 /* 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
6198
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
6199 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
6200 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
6201 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
6202 {
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
6203 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
6204 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
6205 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
6206
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
6207 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
6208 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
6209 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
6210 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
6211 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
6212
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
6213 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
6214 {
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
6215 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
6216 {
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
6217 /* 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
6218 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
6219 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
6220 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
6221 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
6222
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
6223 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
6224 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
6225 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
6226 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
6227 }
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
6228 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
6229 /* 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
6230 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
6231 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
6232 }
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
6233 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
6234 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
6235 {
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
6236 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
6237 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
6238 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
6239 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
6240 }
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
6241
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
6242 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
6243 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
6244 }
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
6245
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6246 /* 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
6247 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
6248 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
6249 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
6250 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
6251 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
6252
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6253 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6254 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
6255 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
6256 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6257 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
6258 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
6259
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6260 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6261
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6262 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
6263 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6264 /* 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
6265 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
6266 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
6267 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
6268 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
6269 && ! 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
6270 #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
6271 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
6272 {
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
6273 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
6274 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
6275 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
6276 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
6277 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
6278 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
6279 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
6280 #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
6281 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
6282 #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
6283 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
6284 #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
6285 );
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
6286 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
6287 }
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
6288 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
6289 #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
6290 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
6291
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6292 f->output_data.mac->asked_for_visible = 1;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6293
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
6294 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
6295 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
6296 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6297
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6298 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
6299
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6300 /* 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
6301 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
6302 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
6303 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6304 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
6305 int count;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6306
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6307 /* 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
6308 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6309
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6310 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
6311
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6312 /* 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
6313 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
6314 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
6315 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
6316 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
6317 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6318 /* 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
6319 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
6320
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6321 /* 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
6322 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
6323 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
6324 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
6325 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
6326 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
6327 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
6328 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6329 /* 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
6330 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
6331 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
6332 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
6333 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
6334 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
6335 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
6336 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
6337 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6338
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6339 /* 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
6340 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
6341 }
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 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6344
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6345 /* 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
6346
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6347 /* 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
6348
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6349 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6350 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
6351 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
6352 {
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
6353 /* 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
6354 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
6355 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
6356 #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
6357 /* 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
6358 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
6359 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
6360 #endif
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6361
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6362 BLOCK_INPUT;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6363
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
6364 /* 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
6365 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
6366 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
6367 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
6368 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
6369 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
6370
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6371 HideWindow (FRAME_MAC_WINDOW (f));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6372
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6373 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
6374
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
6375 #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
6376 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
6377 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6378 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6379
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6380 /* 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
6381
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6382 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6383 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
6384 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
6385 {
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
6386 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
6387
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
6388 /* 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
6389 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
6390 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
6391 #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
6392 /* Don't keep the highlight on an invisible frame. */
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
6393 if (FRAME_MAC_DISPLAY_INFO (f)->x_highlight_frame == f)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
6394 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
6395 #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
6396
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6397 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
6398 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6399
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6400 BLOCK_INPUT;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
6401
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
6402 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
6403
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
6404 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
6405 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
6406
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
6407 err = CollapseWindow (FRAME_MAC_WINDOW (f), true);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6408
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6409 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
6410
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
6411 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
6412 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
6413
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
6414 #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
6415 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
6416 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6417 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6418
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6419
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6420 /* 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
6421
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6422 void
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6423 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
6424 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
6425 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6426 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
6427 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
6428
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6429 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6430
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
6431 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
6432 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
6433
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6434 DisposeWindow (wp);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6435 if (wp == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6436 /* Neither WaitNextEvent nor ReceiveNextEvent receives `window
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
6437 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
6438 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
6439
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6440 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
6441
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6442 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
6443 free_frame_faces (f);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6444
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6445 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
6446
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6447 if (FRAME_SIZE_HINTS (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6448 xfree (FRAME_SIZE_HINTS (f));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6449
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6450 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
6451 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
6452
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6453 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
6454 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
6455 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
6456 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
6457 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
6458 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
6459
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6460 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
6461 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6462 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
6463 = 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
6464 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
6465 = 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
6466 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
6467 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
6468 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
6469 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6470
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6471 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6472 }
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6473
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6474
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6475 /* 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
6476
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6477 void
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6478 x_destroy_window (f)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6479 struct frame *f;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6480 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6481 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
6482
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6483 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
6484
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6485 dpyinfo->reference_count--;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6486 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
6487
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6488
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6489 /* 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
6490
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6491 /* 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
6492 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
6493 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
6494 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
6495 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
6496 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6497 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
6498 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
6499 long flags;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6500 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
6501 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6502 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
6503 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
6504 XSizeHints *size_hints;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6505
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6506 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
6507 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
6508 width_inc = FRAME_COLUMN_WIDTH (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6509 height_inc = FRAME_LINE_HEIGHT (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6510
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6511 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
6512
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6513 size_hints = FRAME_SIZE_HINTS (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6514 if (size_hints == NULL)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6515 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6516 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
6517 bzero (size_hints, sizeof (XSizeHints));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6518 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6519
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6520 size_hints->flags |= PResizeInc | PMinSize | PBaseSize ;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6521 size_hints->width_inc = width_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6522 size_hints->height_inc = height_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6523 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
6524 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
6525 size_hints->base_width = base_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6526 size_hints->base_height = base_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6527
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6528 if (flags)
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6529 size_hints->flags = flags;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6530 else if (user_position)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6531 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6532 size_hints->flags &= ~ PPosition;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6533 size_hints->flags |= USPosition;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
6534 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6535 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6536
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6537 #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
6538 /* 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
6539
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6540 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6541 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
6542 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
6543 int state;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6544 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6545 #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
6546 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
6547
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6548 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
6549 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
6550 #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
6551 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
6552
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6553 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
6554 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
6555
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6556 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
6557 #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
6558 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6559
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6560 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6561 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
6562 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
6563 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
6564 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6565 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
6566
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6567 #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
6568 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
6569 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6570
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6571 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
6572 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6573 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
6574 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
6575 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6576 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6577 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6578 /* 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
6579 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
6580 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
6581 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
6582 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
6583 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
6584 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
6585 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6586 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
6587 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6588 return;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6589 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6590 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6591
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6592 #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
6593
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6594 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6595 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
6596 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
6597 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
6598 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6599
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6600 #else /* not USE_X_TOOLKIT */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
6601
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6602 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
6603 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
6604
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6605 #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
6606 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6607
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6608 #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
6609
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6610 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6611 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
6612 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
6613 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
6614 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6615 #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
6616 #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
6617 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
6618 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6619 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
6620 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6621
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6622 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
6623 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
6624 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
6625
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6626 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
6627 #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
6628 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6629
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6630
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6631 /***********************************************************************
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6632 XLFD Pattern Match
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6633 ***********************************************************************/
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6634
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6635 /* 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
6636 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
6637 struct xlfdpat_block
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6638 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6639 /* 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
6640 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
6641 int len;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6642
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6643 /* 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
6644 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
6645 sentinel. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6646 unsigned char *pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6647
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6648 /* 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
6649 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
6650
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6651 /* 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
6652 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
6653 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
6654 int skip[256];
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6655
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6656 /* 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
6657 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
6658 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
6659 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
6660 };
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 struct xlfdpat
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6663 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6664 /* 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
6665 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
6666 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
6667 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
6668 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
6669 unsigned char *buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6670
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6671 /* 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
6672 normalized pattern string. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6673 int nchars;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6674
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6675 /* 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
6676 int trailing_anychars;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6677
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6678 /* 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
6679 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
6680 int nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6681 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
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 static void
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6685 xlfdpat_destroy (pat)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6686 struct xlfdpat *pat;
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 if (pat)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6689 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6690 if (pat->buf)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6691 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6692 if (pat->blocks)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6693 xfree (pat->blocks);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6694 xfree (pat->buf);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6695 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6696 xfree (pat);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6697 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6698 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6699
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6700 static struct xlfdpat *
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6701 xlfdpat_create (pattern)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6702 char *pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6703 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6704 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6705 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
6706 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
6707 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
6708
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6709 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
6710 if (pat == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6711 goto error;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6712
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6713 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
6714 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
6715 goto error;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6716
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6717 /* 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
6718 nblocks = 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6719 anychar_head = NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6720 q = pat->buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6721 last_char = '\0';
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6722 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
6723 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6724 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
6725
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6726 if (c == '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6727 if (last_char == '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6728 /* ...a** -> ...a* */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6729 continue;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6730 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6731 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6732 if (last_char == '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6733 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
6734 /* ...*??* -> ...*?? */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6735 continue;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6736 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6737 /* ...a??* -> ...a*?? */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6738 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6739 *anychar_head++ = '*';
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6740 c = '?';
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6741 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6742 nblocks++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6743 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6744 else if (c == '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6745 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6746 if (last_char != '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6747 anychar_head = q;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6748 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6749 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6750 /* 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
6751 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
6752 if (isascii (c))
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6753 c = tolower (c);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6754
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6755 *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
6756 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6757 *q = '\0';
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6758 nblocks++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6759 pat->nblocks = nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6760 if (last_char != '?')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6761 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
6762 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6763 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6764 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
6765 q = anychar_head;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6766 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6767 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
6768
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6769 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
6770 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6771 /* 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
6772 pat->blocks = NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6773 return pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6774 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6775
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6776 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
6777 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
6778 goto error;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6779
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6780 /* 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
6781 p = pat->buf;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6782 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
6783 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6784 blk->pattern = p;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6785 while (*p != '*')
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6786 p++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6787 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
6788 p++;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6789 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6790 blk->pattern = p;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6791 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
6792
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6793 /* 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
6794 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
6795 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
6796 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6797 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
6798 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
6799
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6800 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
6801 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
6802 break;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6803
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6804 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
6805 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
6806
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6807 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
6808 while (--skip > 0)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6809 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
6810
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6811 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
6812 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6813
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6814 return pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6815
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6816 error:
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6817 xlfdpat_destroy (pat);
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6818 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6819 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6820
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6821 static INLINE int
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6822 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
6823 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6824 {
65643
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
6825 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
6826 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6827
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6828 /* 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
6829 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
6830 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
6831
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6832 static char *
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6833 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
6834 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
6835 unsigned char *string;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6836 int start_max;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6837 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6838 int start, infinity;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6839 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
6840
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6841 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
6842 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
6843 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
6844
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6845 /* 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
6846 use of `infinity'. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6847 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
6848 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
6849
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6850 start = 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6851 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6852 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6853 /* 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
6854 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
6855 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6856 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6857 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
6858 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6859 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
6860
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6861 if (start < infinity)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6862 /* 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
6863 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6864
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6865 /* 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
6866 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
6867 start -= infinity;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6868
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6869 /* 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
6870 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
6871 p = blk->pattern;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6872 s = string + start;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6873 do
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6874 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6875 while (*p++ == *s++)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6876 ;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6877 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6878 while (*(p - 1) == '?');
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6879
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6880 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
6881 /* Matched. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6882 return string + start;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6883
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6884 /* Didn't match. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6885 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
6886 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6887 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
6888
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6889 return NULL;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6890 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6891
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6892 #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
6893 ((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
6894 : 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
6895
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6896 /* 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
6897 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
6898
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6899 static int
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6900 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
6901 struct xlfdpat *pat;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6902 unsigned char *string;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6903 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6904 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
6905 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
6906 unsigned char *s;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6907
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6908 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
6909
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6910 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
6911 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
6912
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6913 /* 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
6914 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
6915 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
6916 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
6917 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6918
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6919 /* 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
6920 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
6921
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6922 /* 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
6923 of the string. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6924 nblocks = pat->nblocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6925 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
6926 if (nblocks == 1)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6927 /* 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
6928 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
6929 && (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
6930 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
6931 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
6932 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6933
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6934 /* 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
6935 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
6936 blk = pat->blocks;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6937 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
6938 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6939 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
6940 if (s == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6941 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6942 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
6943 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6944
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6945 /* 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
6946 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
6947 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
6948 {
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6949 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
6950 if (s == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6951 return 0;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6952 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
6953 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
6954 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6955
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6956 return 1;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6957 }
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6958
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6959
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
6960 /***********************************************************************
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6961 Fonts
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6962 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6963
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6964 /* 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
6965
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6966 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
6967 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
6968 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
6969 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
6970 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6971 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
6972 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6973
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
6974 /* 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
6975 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
6976 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
6977 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
6978
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
6979 /* 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
6980 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
6981 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
6982 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
6983 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
6984 #if USE_ATSUI
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
6985 /* 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
6986 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
6987 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
6988
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
6989 /* 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
6990 coding system. */
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
6991 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
6992
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
6993 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
6994 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
6995 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
6996 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
6997
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
6998 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
6999 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7000 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
7001 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
7002 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
7003
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7004 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
7005 && 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
7006 && 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
7007 && 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
7008 && 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
7009 && 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
7010 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7011
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7012 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
7013 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
7014 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
7015 result);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7016 else
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7017 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
7018 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
7019 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
7020 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7021
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7022 return result;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7023 }
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
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7026 static void
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7027 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
7028 char *name;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7029 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
7030 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
7031 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7032 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
7033 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
7034
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7035 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
7036 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7037 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
7038 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
7039 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7040
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7041 if (*p)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7042 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7043 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
7044 coding.src_multibyte = 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7045 coding.dst_multibyte = 1;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7046 coding.mode |= CODING_MODE_LAST_BLOCK;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7047 coding.composing = COMPOSITION_DISABLED;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7048 buf = (char *) alloca (size);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7049
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7050 decode_coding (&coding, name, buf, strlen (name), size - 1);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7051 bcopy (buf, name, coding.produced);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7052 name[coding.produced] = '\0';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7053 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7054 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7055
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7056 /* 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
7057 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
7058 "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
7059 p = strchr (name, '-');
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7060 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
7061 *p = '_';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7062
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7063 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
7064 /* 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
7065 for some locales. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7066 if (isascii (*p))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7067 *p = tolower (*p);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7068 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7069
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7070
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7071 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
7072 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
7073 char *name;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7074 int size;
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
7075 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
7076 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
7077 {
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7078 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
7079 Str255 family;
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7080 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
7081 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
7082
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7083 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
7084 charset = cs;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7085 else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7086 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7087 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
7088 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
7089 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7090
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7091 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
7092 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
7093 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
7094
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7095 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
7096 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
7097 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
7098 /* 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
7099 for some locales. */
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7100 if (isascii (*p))
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7101 *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
7102 return result;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7103 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7104
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7105
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7106 /* 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
7107 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
7108 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
7109 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
7110 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
7111 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
7112 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
7113 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
7114 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
7115
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7116 const int kDefaultFontSize = 12;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7117
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7118 static int
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7119 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
7120 char *xf, *family;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7121 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
7122 Style *style;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7123 char *charset;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7124 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7125 Str31 foundry, weight;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7126 int point_size, avgwidth;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7127 char slant[2], *p;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7128
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7129 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
7130 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
7131 &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
7132 && 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
7133 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
7134 &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
7135 return 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7136
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7137 if (*size == 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7138 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7139 if (point_size > 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7140 *size = point_size / 10;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7141 else if (avgwidth > 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7142 *size = avgwidth / 10;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7143 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7144 if (*size == 0)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7145 *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
7146
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7147 *style = normal;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7148 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
7149 *style |= bold;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7150 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
7151 *style |= italic;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7152
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7153 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
7154 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7155 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
7156
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7157 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
7158 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7159 /* 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
7160 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
7161 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
7162 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
7163 family[foundry_len] = '-';
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7164 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
7165 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
7166 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7167 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7168 return 0;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7169 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7170
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7171 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
7172 /* 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
7173 for some locales. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7174 if (isascii (*p))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7175 *p = tolower (*p);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7176
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7177 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
7178 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7179
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7180
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7181 static void
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7182 add_font_name_table_entry (char *font_name)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7183 {
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7184 if (font_name_table_size == 0)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7185 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7186 font_name_table_size = 256;
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7187 font_name_table = (char **)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7188 xmalloc (font_name_table_size * sizeof (char *));
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7189 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7190 else if (font_name_count + 1 >= font_name_table_size)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7191 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7192 font_name_table_size *= 2;
45848
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7193 font_name_table = (char **)
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7194 xrealloc (font_name_table,
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7195 font_name_table_size * sizeof (char *));
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7196 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7197
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7198 font_name_table[font_name_count++] = font_name;
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7199 }
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7200
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7201 /* Sets up the table font_name_table to contain the list of all fonts
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7202 in the system the first time the table is used so that the Resource
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7203 Manager need not be accessed every time this information is
39cdf9669519 In src/:
Andrew Choi <akochoi@shaw.ca>
parents: 45803
diff changeset
7204 needed. */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7205
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7206 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7207 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
7208 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7209 #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
7210 FMFontFamilyIterator ffi;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7211 FMFontFamilyInstanceIterator ffii;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7212 FMFontFamily ff;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7213 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
7214 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
7215
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7216 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
7217
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7218 #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
7219 #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
7220 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
7221 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7222 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
7223 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
7224 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7225 OSErr err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7226 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
7227 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
7228 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
7229 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
7230
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7231 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
7232 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
7233 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
7234 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
7235 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
7236 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
7237 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
7238 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
7239 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
7240 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
7241 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
7242 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
7243 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7244 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
7245 kFontMacintoshPlatform, kFontNoScript,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7246 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
7247 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
7248 continue;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7249 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
7250 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
7251 continue;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7252 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
7253 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
7254 kFontMacintoshPlatform, kFontNoScript,
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7255 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
7256 NULL, NULL);
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7257 if (err == noErr)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7258 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
7259 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
7260 && *name != '.'
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7261 && (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
7262 || 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
7263 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7264 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
7265
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7266 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
7267 normal, cs));
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7268 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
7269 italic, cs));
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7270 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
7271 bold, cs));
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7272 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
7273 italic | bold, cs));
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7274 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
7275 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
7276 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
7277 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
7278 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7279 else
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7280 xfree (name);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7281 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7282 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
7283 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
7284 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
7285 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
7286 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7287 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7288
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7289 /* 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
7290 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
7291 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
7292 return;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7293 /* 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
7294 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
7295 != noErr)
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7296 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7297 FMDisposeFontFamilyInstanceIterator (&ffii);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7298 return;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7299 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7300
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7301 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
7302
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7303 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
7304 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7305 Str255 name;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7306 FMFont font;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7307 FMFontStyle style;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7308 FMFontSize size;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7309 TextEncoding encoding;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7310 TextEncodingBase sc;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7311 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
7312
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7313 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
7314 break;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7315 p2cstr (name);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7316 if (*name == '.')
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7317 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7318
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7319 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
7320 break;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7321 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
7322 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
7323 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
7324 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
7325 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
7326 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
7327 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
7328 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
7329 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
7330 make_number (ff)),
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7331 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
7332
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7333 /* 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
7334 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
7335 break;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7336
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7337 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
7338 == noErr)
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7339 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7340 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
7341
65643
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7342 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
7343 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
7344 {
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7345 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
7346
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7347 if (size == 0)
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7348 {
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7349 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
7350 style, cs));
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7351 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
7352 italic, cs));
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7353 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
7354 bold, cs));
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7355 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
7356 italic | bold,
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7357 cs));
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7358 }
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7359 else
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7360 {
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7361 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
7362 style, cs));
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7363 }
44af31946762 (xlfdpat_block_match_1): Fix assertion.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65346
diff changeset
7364 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7365 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7366 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7367
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7368 UNGCPRO;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7369
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7370 /* 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
7371 FMDisposeFontFamilyIterator (&ffi);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7372 FMDisposeFontFamilyInstanceIterator (&ffii);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7373 #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
7374 GrafPtr port;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7375 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
7376 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
7377 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
7378 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
7379 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
7380 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
7381 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
7382 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
7383 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
7384 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
7385 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
7386
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7387 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
7388 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
7389
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7390 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
7391
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7392 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
7393
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7394 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
7395 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7396 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
7397 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
7398 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7399
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7400 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
7401 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
7402 p2cstr (name);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7403 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
7404 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7405
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7406 TextFont (fontnum);
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7407 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
7408 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
7409 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
7410 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
7411 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
7412 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
7413 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
7414 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
7415 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
7416 make_number (fontnum)),
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7417 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
7418 do
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7419 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7420 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
7421
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7422 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
7423 >= 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
7424 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7425 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
7426 + 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
7427 assc_entry
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7428 = (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
7429 + 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
7430 + 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
7431
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7432 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
7433 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7434 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
7435
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7436 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
7437 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7438 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
7439
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7440 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
7441 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
7442 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
7443 cs));
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7444 }
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 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7447
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7448 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
7449 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
7450 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
7451 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
7452 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7453 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
7454 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7455
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7456 UNGCPRO;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7457
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7458 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
7459 #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
7460 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7461
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7462
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7463 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7464 mac_clear_font_name_table ()
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7465 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7466 int i;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7467
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7468 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
7469 xfree (font_name_table[i]);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7470 xfree (font_name_table);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7471 font_name_table = NULL;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7472 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
7473 fm_font_family_alist = Qnil;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7474 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7475
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7476
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7477 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
7478 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7479 XLFD_SCL_PIXEL_SIZE,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7480 XLFD_SCL_POINT_SIZE,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7481 XLFD_SCL_AVGWIDTH,
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7482 XLFD_SCL_LAST
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7483 };
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7484
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7485 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
7486 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7487 6, /* PIXEL_SIZE */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7488 7, /* POINT_SIZE */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7489 11, /* AVGWIDTH */
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7490 -1
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7491 };
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7492
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7493 static Lisp_Object
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7494 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
7495 char *pattern;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7496 int maxnames;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7497 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7498 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
7499 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
7500 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
7501 char *scaled, *ptr;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7502 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
7503 int exact;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7504
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7505 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
7506 init_font_name_table ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
7507
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7508 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
7509 scl_val[i] = -1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7510
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7511 /* 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
7512 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
7513 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
7514 ptr = pattern;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7515 i = 0;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7516 field = xlfd_scalable_fields;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7517 val = scl_val;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7518 if (*ptr == '-')
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7519 do
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7520 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7521 ptr++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7522 if (i == *field)
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7523 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7524 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
7525 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7526 *val = *ptr++ - '0';
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7527 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
7528 *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
7529 if (*ptr != '-')
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7530 *val = -1;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7531 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7532 field++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7533 val++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7534 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7535 ptr = strchr (ptr, '-');
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7536 i++;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7537 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7538 while (ptr && i < 14);
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7539
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7540 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
7541 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7542 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
7543 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
7544 (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
7545 : (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
7546 : -1));
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7547 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
7548 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
7549 (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
7550 : (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
7551 : -1));
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7552 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
7553 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
7554 (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
7555 : (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
7556 : -1));
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7557 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7558 else
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7559 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
7560
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7561 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
7562 if (pat == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7563 return Qnil;
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7564
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7565 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
7566
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7567 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
7568 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7569 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
7570 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7571 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
7572 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
7573 break;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7574 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7575 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
7576 && (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
7577 {
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7578 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
7579
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7580 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
7581 if (scaled == NULL)
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7582 continue;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7583 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
7584 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
7585 "-%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
7586 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
7587 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
7588 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
7589 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
7590
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7591 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
7592 {
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7593 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
7594 xfree (scaled);
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
7595 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
7596 break;
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7597 }
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7598 else
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7599 xfree (scaled);
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7600 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7601 }
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
7602
65346
88cf9abcfe60 (struct xlfdpat_block, struct xlfdpat): New structs.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65110
diff changeset
7603 xlfdpat_destroy (pat);
59034
2dd8aacd82ce * term/mac-win.el (encoding-vector, mac-font-encoder-list)
Steven Tamm <steventamm@mac.com>
parents: 58634
diff changeset
7604
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7605 return font_list;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7606 }
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7607
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7608 /* 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
7609
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7610 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
7611 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
7612 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
7613
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7614 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
7615 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
7616 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
7617 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
7618 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
7619 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7620 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
7621 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
7622 = 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
7623
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7624 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
7625
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7626 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
7627 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
7628 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
7629
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7630 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
7631 {
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7632 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
7633
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7634 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
7635 continue;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7636
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
7637 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
7638 key = Fcons (pattern, make_number (maxnames));
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
7639
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7640 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
7641 if (!NILP (list))
46169
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
7642 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7643 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
7644 /* 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
7645 goto label_cached;
36989d5089ee 2002-07-03 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46168
diff changeset
7646 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7647
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7648 BLOCK_INPUT;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7649 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
7650 UNBLOCK_INPUT;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7651
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7652 /* 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
7653
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7654 /* 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
7655 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
7656 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
7657 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
7658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7659 label_cached:
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7660 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
7661 }
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7662
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7663 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
7664 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7665
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7666
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7667 #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
7668
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7669 /* 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
7670 font table. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7671
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7672 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7673 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
7674 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
7675 XFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7676 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7677 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7678 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
7679
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7680 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
7681
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7682 for (i = 0; i < dpyinfo->n_fonts; i++)
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7683 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
7684 && 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
7685 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7686
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7687 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
7688 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7689
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7690 #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
7691
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7692 /* 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
7693 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
7694 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
7695 "-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
7696 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
7697
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7698 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
7699 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
7700 MacFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7701 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
7702 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7703 *h = FONT_HEIGHT (font);
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
7704 *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
7705 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7706
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7707
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7708 /* 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
7709 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
7710 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
7711 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
7712 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
7713
64102
09d72bda30b9 (mac_draw_vertical_window_border): Use foreground of
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64084
diff changeset
7714 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
7715 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
7716 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
7717 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7718 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7719 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
7720 MacFontStruct *font;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7721 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
7722 int old_height = dpyinfo->smallest_font_height;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7723
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7724 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
7725 dpyinfo->smallest_char_width = 100000;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7726
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7727 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
7728 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
7729 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7730 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
7731 int w, h;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7732
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7733 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
7734 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
7735 x_font_min_bounds (font, &w, &h);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7736
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7737 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
7738 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
7739 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7740
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7741 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
7742 && 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
7743
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7744 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
7745 || 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
7746 || 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
7747 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7748
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7749
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7750 /* 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
7751 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
7752
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7753 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7754 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
7755 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7756 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7757 char *q;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7758
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7759 if (*p != '-')
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7760 return 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7761
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7762 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
7763 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7764 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
7765 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
7766 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7767 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
7768 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7769 p = q;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7770 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7771
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7772 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
7773 return 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7774
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7775 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
7776 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7777
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7778 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7779 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7780
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7781
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7782 /* 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
7783 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
7784 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
7785 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
7786 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
7787
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7788 static MacFontStruct *
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7789 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
7790 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7791 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
7792 char *name;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7793 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
7794 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
7795 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
7796 #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
7797 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
7798 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
7799 #endif
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7800 Style fontface;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7801 #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
7802 TextEncoding encoding;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7803 int scriptcode;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7804 #else
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7805 short scriptcode;
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
7806 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7807 MacFontStruct *font;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7808 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
7809
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7810 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
7811 name = fontname;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7812 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7813 {
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7814 Lisp_Object matched_fonts;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7815
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7816 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
7817 if (NILP (matched_fonts))
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7818 return NULL;
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
7819 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
7820 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7821
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7822 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
7823 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7824
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7825 #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
7826 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
7827 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7828 OSErr err;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7829 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
7830 kATSUQDBoldfaceTag, kATSUQDItalicTag};
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7831 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
7832 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
7833 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
7834 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
7835 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
7836 &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
7837 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
7838 kDiacriticsType};
d88b44855af3 [USE_ATSUI] (atsu_get_text_layout_with_text_ptr)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67788
diff changeset
7839 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
7840 kDecomposeDiacriticsSelector};
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7841 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
7842
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7843 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
7844 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
7845 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
7846 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7847 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
7848 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
7849 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
7850 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
7851 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
7852 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
7853 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7854 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
7855 types, selectors);
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7856 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
7857 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7858 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
7859 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
7860 fontnum = -1;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7861 scriptcode = kTextEncodingMacUnicode;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7862 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7863 else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7864 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7865 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7866 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
7867
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7868 if (NILP (tmp))
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7869 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7870 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
7871 #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
7872 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
7873 return NULL;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7874 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
7875 #else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7876 scriptcode = FontToScript (fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7877 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7878 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7879
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7880 font = (MacFontStruct *) xmalloc (sizeof (struct MacFontStruct));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
7881
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7882 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
7883 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
7884 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
7885 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
7886 #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
7887 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
7888 #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
7889 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
7890 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
7891 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7892 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7893
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
7894 /* 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
7895 "*-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
7896 (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
7897 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
7898 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
7899 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
7900
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
7901 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
7902
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7903 #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
7904 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
7905 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7906 OSErr err;
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7907 UniChar c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7908
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7909 font->min_byte1 = 0;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7910 font->max_byte1 = 0xff;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7911 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
7912 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
7913
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7914 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
7915 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
7916 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7917 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
7918 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7919 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7920 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
7921 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
7922 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
7923 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7924 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
7925 return NULL;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7926 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7927 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
7928
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
7929 #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
7930 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
7931 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
7932 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
7933 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
7934
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
7935 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
7936 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
7937 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
7938 &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
7939 /* 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
7940 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
7941 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
7942 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
7943 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
7944 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
7945 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
7946
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
7947 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
7948 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
7949 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
7950 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
7951 #endif
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7952 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
7953 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
7954 &font->ascent, &font->descent,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7955 space_bounds,
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7956 #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
7957 (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
7958 : NULL)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7959 #else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7960 NULL
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7961 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7962 );
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7963 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
7964 {
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7965 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
7966 return NULL;
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
7967 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7968 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
7969
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7970 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
7971 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
7972 {
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
7973 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
7974 /* 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
7975 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
7976 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
7977 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
7978 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
7979 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
7980 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
7981
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7982 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
7983 #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
7984 (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
7985 : NULL)
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
7986 #else
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7987 NULL
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7988 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7989 );
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7990 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
7991
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7992 #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
7993 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
7994 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7995 /* 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
7996 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
7997 CGFontRelease (font->cg_font);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7998 font->cg_font = NULL;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
7999 xfree (font->cg_glyphs);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8000 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
8001 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8002 #endif
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8003 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8004 }
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8005 else
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8006 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8007 {
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8008 GrafPtr port;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8009 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
8010 Style old_fontface;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8011 FontInfo the_fontinfo;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8012 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
8013
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8014 /* 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
8015 GetPort (&port);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8016 #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
8017 old_fontnum = GetPortTextFont (port);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8018 old_fontsize = GetPortTextSize (port);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8019 old_fontface = GetPortTextFace (port);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8020 #else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8021 old_fontnum = port->txFont;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8022 old_fontsize = port->txSize;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8023 old_fontface = port->txFace;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8024 #endif
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8025
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8026 TextFont (fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8027 TextSize (size);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8028 TextFace (fontface);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8029
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8030 GetFontInfo (&the_fontinfo);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8031
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8032 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
8033 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
8034
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8035 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
8036 || font->mac_scriptcode == smTradChinese
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8037 || font->mac_scriptcode == smSimpChinese
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8038 || font->mac_scriptcode == smKorean);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8039
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8040 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
8041 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8042 int char_width;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8043
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8044 font->min_byte1 = 0xa1;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8045 font->max_byte1 = 0xfe;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8046 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
8047 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
8048
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8049 /* 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
8050 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
8051 some fonts. */
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8052 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
8053 {
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8054 case smJapanese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8055 font->min_byte1 = 0x81;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8056 font->max_byte1 = 0xfc;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8057 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
8058 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
8059 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
8060 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8061 case smTradChinese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8062 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
8063 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
8064 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8065 case smSimpChinese:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8066 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
8067 break;
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8068 case smKorean:
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8069 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
8070 break;
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
8071 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8072
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8073 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
8074
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8075 if (fontface & italic)
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8076 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
8077 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8078 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
8079 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
8080 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
8081 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
8082 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
8083
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8084 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
8085 }
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8086 else
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8087 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8088 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8089
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8090 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
8091 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
8092 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
8093
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8094 font->bounds.per_char =
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8095 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
8096 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
8097 {
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8098 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
8099 return NULL;
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8100 }
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8101 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
8102 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
8103
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8104 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
8105 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
8106 space_bounds, NULL);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8107
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8108 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
8109 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
8110 }
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8111
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8112 /* 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
8113 TextFont (old_fontnum);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8114 TextSize (old_fontsize);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8115 TextFace (old_fontface);
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
8116 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8117
67733
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8118 if (space_bounds)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8119 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8120 int c;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8121
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8122 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
8123 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
8124 if (pcm->width > 0)
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8125 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8126 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
8127 pcm->lbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8128 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
8129 pcm->rbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8130 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
8131 pcm->width);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8132 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
8133 pcm->ascent);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8134
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8135 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
8136 pcm->lbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8137 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
8138 pcm->rbearing);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8139 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
8140 pcm->width);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8141 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
8142 pcm->ascent);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8143 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8144 if (
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8145 #if USE_ATSUI
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8146 font->mac_style == NULL &&
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8147 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8148 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
8149 && 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
8150 && 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
8151 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8152 /* 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
8153 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
8154 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
8155 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8156 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8157
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
8158 #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
8159 /* 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
8160 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
8161 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
8162 if (
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
8163 #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
8164 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
8165 #endif
783439580869 (mac_draw_string_common): Remove arg MODE. New arg
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68770
diff changeset
8166 (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
8167 || 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
8168 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
8169 #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
8170
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8171 return font;
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
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8175 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8176 mac_unload_font (dpyinfo, font)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8177 struct mac_display_info *dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8178 XFontStruct *font;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8179 {
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8180 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
8181 #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
8182 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
8183 {
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8184 int i;
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8185
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8186 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
8187 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
8188 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
8189 xfree (font->bounds.rows);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8190 ATSUDisposeStyle (font->mac_style);
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8191 }
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8192 else
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8193 #endif
330ac31a0c82 (mac_per_char_metric): Add prototype.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67672
diff changeset
8194 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
8195 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
8196 #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
8197 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
8198 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
8199 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
8200 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
8201 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8202 xfree (font);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8203 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8204
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8205
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8206 /* 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
8207 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
8208 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
8209 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
8210
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8211 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
8212 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
8213 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
8214 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
8215 int size;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8216 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8217 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
8218 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
8219
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8220 /* 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
8221 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
8222 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
8223 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
8224
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8225 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
8226 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8227 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
8228 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8229
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8230 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
8231 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
8232 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
8233 && (!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
8234 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
8235 || !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
8236 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
8237 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
8238 }
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8239 else
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8240 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
8241
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8242 /* 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
8243 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8244 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
8245 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
8246 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
8247 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
8248 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8249
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8250 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
8251
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8252 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
8253 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
8254 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
8255 if (!font)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8256 return NULL;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8257
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8258 /* 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
8259 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
8260 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
8261 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8262
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8263 /* 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
8264 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
8265 && 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
8266 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8267 int sz;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8268 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
8269 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
8270 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
8271 = (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
8272 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8273
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8274 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
8275 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
8276 ++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
8277
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8278 /* 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
8279 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
8280 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
8281 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
8282 fontp->font_idx = i;
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8283 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
8284 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
8285
59325
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8286 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
8287 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8288 /* Fixed width font. */
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8289 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
8290 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8291 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8292 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8293 XChar2b char2b;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8294 XCharStruct *pcm;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8295
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8296 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
8297 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
8298 if (pcm)
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8299 fontp->space_width = pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8300 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8301 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
8302
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8303 if (pcm)
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8304 {
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8305 int width = pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8306 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
8307 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
8308 width += pcm->width;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8309 fontp->average_width = width / 95;
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8310 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8311 else
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8312 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
8313 }
68eaccfa130a * macterm.c (x_new_font): Set FRAME_SPACE_WIDTH.
Steven Tamm <steventamm@mac.com>
parents: 59199
diff changeset
8314
61658
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
8315 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
8316 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
8317
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8318 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
8319 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
8320 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8321 /* 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
8322 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
8323 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
8324 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
8325 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
8326 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8327
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8328 /* 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
8329 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
8330 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
8331 (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
8332 2:0xA020..0xFF7F). For the moment, we don't know which charset
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8333 uses this font. So, we set information in fontp->encoding[1]
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8334 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
8335 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
8336 if (font->mac_scriptcode == smJapanese)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8337 fontp->encoding[1] = 4;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8338 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8339 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8340 fontp->encoding[1]
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8341 = (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
8342 /* 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
8343 ? (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
8344 ? (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
8345 ? 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
8346 : 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
8347 : 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
8348 /* 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
8349 : (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
8350 ? (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
8351 ? (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
8352 ? (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
8353 ? 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
8354 : 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
8355 : 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
8356 : 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
8357 : (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
8358 ? (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
8359 ? 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
8360 : 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
8361 : 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
8362 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8363
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8364 #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
8365 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
8366 = (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
8367 ? (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
8368 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
8369 = (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
8370 ? (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
8371 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
8372 = (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
8373 ? (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
8374 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8375 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
8376 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
8377 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
8378 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8379
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8380 /* 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
8381 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
8382 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
8383 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
8384 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
8385 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
8386 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8387 return fontp;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8388 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8389 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8390
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8391
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8392 /* 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
8393 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
8394
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8395 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
8396 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
8397 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
8398 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
8399 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8400 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
8401 int i;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8402
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8403 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
8404 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
8405 && (!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
8406 || !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
8407 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
8408 return NULL;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8409 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8410
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8411
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8412 /* 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
8413 `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
8414
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8415 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8416 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
8417 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
8418 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8419 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
8420
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8421 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
8422 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8423 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
8424 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
8425 && 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
8426 && (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
8427 >= 0))
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8428 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8429 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8430 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
8431 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8432 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
8433 = (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
8434
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8435 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
8436 xfree (ccl);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8437 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8438 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
8439 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8440 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8441
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8442
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8443
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8444 /* 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
8445
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
8446 #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
8447 #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
8448 #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
8449 #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
8450 #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
8451 #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
8452 #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
8453 #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
8454 #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
8455 #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
8456 #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
8457 #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
8458 #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
8459 #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
8460 #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
8461 #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
8462
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8463 #if __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8464 #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
8465 #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
8466 #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
8467
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8468 #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
8469 #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
8470
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8471 #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
8472 #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
8473
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8474 #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
8475
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8476 #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
8477 #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
8478
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8479 #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
8480
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8481 #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
8482 #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
8483 #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
8484
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8485 /* 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
8486 Lisp_Object Qreverse;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8487
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8488
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8489 /* 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
8490 Lisp_Object Vmac_control_modifier;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8491
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8492 /* 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
8493 Lisp_Object Vmac_option_modifier;
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
8494
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8495 /* 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
8496 Lisp_Object Vmac_command_modifier;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8497
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8498 /* 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
8499 Lisp_Object Vmac_function_modifier;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8500
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8501 /* 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
8502 a three button mouse */
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8503 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
8504
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8505 #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
8506 /* Non-zero if the mouse wheel button (i.e. button 4) should map to
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8507 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
8508 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
8509
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
8510 /* 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
8511 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
8512 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
8513
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
8514 /* 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
8515 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
8516 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
8517 #endif
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8518
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8519 /* 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
8520 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
8521 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
8522 static struct input_event *read_socket_inev = NULL;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8523
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8524 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
8525
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8526 /* 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
8527 #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
8528 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
8529 #endif
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
8530 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
8531 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
8532 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
8533 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
8534 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
8535 Lisp_Object *));
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
8536 extern OSErr init_coercion_handler P_ ((void));
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8537
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8538 #if TARGET_API_MAC_CARBON
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8539 /* Drag and Drop */
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
8540 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
8541 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
8542 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
8543 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
8544 #endif
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8545
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8546 #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
8547 #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
8548 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
8549 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
8550 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8551 /* Window Event Handler */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8552 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
8553 EventRef, void *);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8554 #endif
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
8555 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
8556
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8557 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
8558 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
8559
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8560 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
8561 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
8562
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8563 static unsigned int
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8564 #if USE_CARBON_EVENTS
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8565 mac_to_emacs_modifiers (UInt32 mods)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8566 #else
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8567 mac_to_emacs_modifiers (EventModifiers mods)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8568 #endif
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8569 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8570 unsigned int result = 0;
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8571 if (mods & shiftKey)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8572 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
8573
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8574 /* Deactivated to simplify configuration:
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8575 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
8576 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
8577 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
8578 composed one.
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8579 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
8580 (( !NILP(Vmac_option_modifier) ||
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8581 ((mods & cmdKey) || (mods & controlKey))))) */
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8582
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
8583 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
8584 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
8585 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8586 result |= XUINT(val);
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
8587 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8588 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
8589 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
8590 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8591 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
8592 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8593 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
8594 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
8595 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8596 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
8597 }
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8598
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8599 #ifdef MAC_OSX
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8600 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
8601 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
8602 if (INTEGERP(val))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8603 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
8604 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
8605 #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
8606
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8607 return result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8608 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8609
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8610 static int
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8611 mac_get_emulated_btn ( UInt32 modifiers )
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8612 {
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8613 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
8614 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
8615 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
8616 if (modifiers & cmdKey)
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8617 result = cmdIs3 ? 2 : 1;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8618 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
8619 result = cmdIs3 ? 1 : 2;
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8620 }
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8621 return result;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8622 }
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8623
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8624 #if USE_CARBON_EVENTS
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8625 /* Obtains the event modifiers from the event ref and then calls
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8626 mac_to_emacs_modifiers. */
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
8627 static UInt32
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8628 mac_event_to_emacs_modifiers (EventRef eventRef)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8629 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8630 UInt32 mods = 0;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8631 GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32, NULL,
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8632 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
8633 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
8634 GetEventClass(eventRef) == kEventClassMouse)
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8635 {
56277
fd126130c3cd macterm.c (mac_get_emulated_btn)
Steven Tamm <steventamm@mac.com>
parents: 56271
diff changeset
8636 mods &= ~(optionKey | cmdKey);
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8637 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8638 return mac_to_emacs_modifiers (mods);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8639 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8640
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8641 /* Given an event ref, return the code to use for the mouse button
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8642 code in the emacs input_event. */
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8643 static int
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8644 mac_get_mouse_btn (EventRef ref)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8645 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8646 EventMouseButton result = kEventMouseButtonPrimary;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8647 GetEventParameter (ref, kEventParamMouseButton, typeMouseButton, NULL,
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8648 sizeof (EventMouseButton), NULL, &result);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8649 switch (result)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8650 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8651 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
8652 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
8653 return 0;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8654 else {
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8655 UInt32 mods = 0;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8656 GetEventParameter (ref, kEventParamKeyModifiers, typeUInt32, NULL,
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8657 sizeof (UInt32), NULL, &mods);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8658 return mac_get_emulated_btn(mods);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
8659 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8660 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
8661 return mac_wheel_button_is_mouse_2 ? 2 : 1;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8662 case kEventMouseButtonTertiary:
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8663 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
8664 return mac_wheel_button_is_mouse_2 ? 1 : 2;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8665 default:
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8666 return 0;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8667 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8668 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8669
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8670 /* Normally, ConvertEventRefToEventRecord will correctly handle all
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8671 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
8672 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
8673 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
8674 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
8675 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
8676 XTread_socket loop). */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8677 static Boolean mac_convert_event_ref (EventRef eventRef, EventRecord *eventRec)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8678 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8679 OSStatus err;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8680 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
8681
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8682 if (result)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8683 return result;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8684
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8685 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
8686 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8687 case kEventClassMouse:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8688 switch (GetEventKind (eventRef))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8689 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8690 case kEventMouseDown:
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8691 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
8692 result = 1;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8693 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8694
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8695 case kEventMouseUp:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8696 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
8697 result = 1;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8698 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8699
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8700 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8701 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8702 }
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
8703 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8704
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8705 case kEventClassKeyboard:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8706 switch (GetEventKind (eventRef))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8707 {
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8708 case kEventRawKeyDown:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8709 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8710 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
8711 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
8712
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8713 err = GetEventParameter (eventRef, kEventParamKeyMacCharCodes,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8714 typeChar, NULL, sizeof (char),
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8715 NULL, &char_codes);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8716 if (err == noErr)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8717 err = GetEventParameter (eventRef, kEventParamKeyCode,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8718 typeUInt32, NULL, sizeof (UInt32),
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8719 NULL, &key_code);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8720 if (err == noErr)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8721 {
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8722 eventRec->what = keyDown;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8723 eventRec->message = char_codes | ((key_code & 0xff) << 8);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8724 result = 1;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8725 }
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8726 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8727 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8728
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8729 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8730 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8731 }
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
8732 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8733
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8734 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8735 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8736 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8737
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8738 if (result)
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8739 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8740 /* Need where and when. */
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
8741 UInt32 mods = 0;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8742
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8743 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
8744 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
8745 /* 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
8746 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
8747 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
8748 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
8749 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
8750
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8751 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
8752 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
8753
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8754 return result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8755 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8756
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
8757 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8758
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8759 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8760 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
8761 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8762 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
8763 MenuHandle menu_handle;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8764
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8765 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
8766 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
8767 abort ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8768 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
8769 DrawMenuBar ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8770
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
8771 #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
8772 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
8773 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
8774 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
8775 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8776 abort ();
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
8777 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8778 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8779
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8780
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8781 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8782 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
8783 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8784 #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
8785 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
8786 InitFonts ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8787 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
8788 InitWindows ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8789 InitMenus ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8790 TEInit ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8791 InitDialogs (NULL);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8792 #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
8793 InitCursor ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8794
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8795 #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
8796 /* 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
8797 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
8798
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8799 /* 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
8800 complicated scripts */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8801 MaxApplZone ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8802 MoreMasters ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8803 #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
8804 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8805
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8806 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8807 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
8808 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8809 SInt32 physical_ram_size, logical_ram_size;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8810
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8811 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
8812 || 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
8813 || 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
8814 || 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
8815 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8816 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
8817 exit (1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8818 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8819 }
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 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8822 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
8823 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
8824 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
8825
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8826 BeginUpdate (win);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8827
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8828 /* 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
8829 below. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8830 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
8831 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8832 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
8833 {
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
8834 /* 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
8835 #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
8836 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
8837 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
8838 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
8839 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8840 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8841 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
8842 {
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8843 Rect r;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8844 #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
8845 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
8846
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
8847 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
8848 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
8849 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
8850 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
8851 DisposeRgn (region);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8852 #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
8853 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
8854 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
8855 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
8856 #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
8857 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8858 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8859
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8860 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
8861 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8862
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8863 static int
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8864 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
8865 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8866 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
8867
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8868 if (!win)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8869 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8870
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8871 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
8872 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
8873 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
8874 return 1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8875
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8876 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8877 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8878
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8879 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8880 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
8881 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
8882 /* 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
8883 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8884
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8885 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8886 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
8887 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
8888 /* 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
8889 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8891
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8892 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8893 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
8894 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8895 #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
8896 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
8897 SInt16 da_driver_refnum;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8898
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8899 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
8900 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
8901 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8902 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8903 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
8904 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
8905 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8906 #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
8907 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8908
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8909 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8910 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
8911 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8912 SInt16 menu_id, menu_item;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8913
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8914 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
8915 menu_item = LoWord (menu_choice);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8916
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8917 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
8918 {
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
8919 case 0:
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
8920 break;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
8921
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8922 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
8923 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
8924 break;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8925
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8926 default:
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8927 {
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
8928 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
8929 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
8930 if (menu)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8931 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8932 UInt32 refcon;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8933
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8934 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
8935 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
8936 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8937 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8938 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8939
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8940 HiliteMenu (0);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8941 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8942
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8943
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8944 /* 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
8945 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
8946
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8947 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8948 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
8949 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8950 Rect limit_rect;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8951 int rows, columns, width, height;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
8952 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
8953 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
8954 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
8955 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8956 Rect new_rect;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8957 #else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8958 long grow_size;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8959 #endif
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8960
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8961 if (size_hints->flags & PMinSize)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8962 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8963 min_width = size_hints->min_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8964 min_height = size_hints->min_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8965 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8966 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
8967
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8968 #if TARGET_API_MAC_CARBON
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8969 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
8970 return;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8971 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
8972 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
8973 #else
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8974 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
8975 /* 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
8976 if (grow_size == 0)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8977 return;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8978 height = HiWord (grow_size);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8979 width = LoWord (grow_size);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8980 #endif
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8981
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8982 if (width != FRAME_PIXEL_WIDTH (f)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8983 || height != FRAME_PIXEL_HEIGHT (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8984 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
8985 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
8986 columns = FRAME_PIXEL_WIDTH_TO_TEXT_COLS (f, width);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
8987
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8988 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
8989 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8990 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8991
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8992
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8993 /* 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
8994 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
8995 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
8996 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
8997
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8998 static void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
8999 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
9000 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9001 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
9002 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
9003 Point top_left;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9004 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
9005 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
9006 struct mac_display_info *dpyinfo = FRAME_MAC_DISPLAY_INFO (f);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9007
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9008 #if TARGET_API_MAC_CARBON
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9009 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9010 Point standard_size;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9011
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9012 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
9013 standard_size.v = dpyinfo->height;
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9014
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9015 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
9016 zoom_in_or_out = inZoomIn;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9017 else
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9018 {
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9019 /* 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
9020
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9021 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
9022 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
9023 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
9024 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
9025 GetWindowBounds (w, kWindowContentRgn, &port_rect);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9026 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
9027 && port_rect.left == zoom_rect.left
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9028 && port_rect.top == zoom_rect.top)
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9029 zoom_in_or_out = inZoomIn;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9030 else
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9031 zoom_in_or_out = inZoomOut;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9032 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9033
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9034 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
9035 }
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9036 #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
9037 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
9038
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9039 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
9040
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9041 /* 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
9042 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
9043 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
9044 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9045 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
9046 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
9047
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9048 /* 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
9049 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
9050 - (**((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
9051
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9052 /* 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
9053 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
9054 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
9055 InsetRect (&zoom_rect, 8, 4); /* not too tight */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9056
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9057 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
9058 + 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
9059
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9060 /* 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
9061 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
9062 zoom_rect.bottom =
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9063 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
9064
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9065 (**((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
9066 = zoom_rect;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9067 }
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9068
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
9069 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
9070
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9071 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
9072 #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
9073
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9074 /* 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
9075 #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
9076 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
9077 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9078 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
9079 #endif
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9080 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
9081 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
9082
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9083 if (width != FRAME_PIXEL_WIDTH (f)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9084 || height != FRAME_PIXEL_HEIGHT (f))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9085 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9086 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
9087 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
9088
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9089 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
9090 SET_FRAME_GARBAGED (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9091 cancel_mouse_face (f);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9092
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9093 FRAME_PIXEL_WIDTH (f) = width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9094 FRAME_PIXEL_HEIGHT (f) = height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9095 }
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
9096 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
9097 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9098
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9099 OSErr
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9100 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
9101 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
9102 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
9103 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9104 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
9105 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
9106 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
9107
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9108 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
9109 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
9110 err = memFullErr;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9111 else
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9112 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
9113 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
9114 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9115 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
9116
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9117 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
9118 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
9119 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
9120 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
9121 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
9122 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
9123 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
9124 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
9125 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9126
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9127 return err;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9128 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9129
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9130 Lisp_Object
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9131 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
9132 int code;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9133 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9134 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
9135 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
9136
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9137 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
9138 AEDisposeDesc (desc);
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9139 xfree (desc);
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9140
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9141 return obj;
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9142 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9143
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9144 #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
9145 static pascal OSStatus
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9146 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
9147 EventHandlerCallRef next_handler;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9148 EventRef event;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9149 void *data;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9150 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9151 OSStatus result, err;
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9152 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
9153 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
9154
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9155 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
9156 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
9157 return result;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9158
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9159 err = GetEventParameter (event, kEventParamDirectObject, typeHICommand,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9160 NULL, sizeof (HICommand), NULL, &command);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9161
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9162 if (err != noErr || command.commandID == 0)
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9163 return eventNotHandledErr;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9164
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9165 /* 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
9166 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
9167 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
9168 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
9169 &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
9170 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
9171 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
9172 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
9173 else
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9174 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9175 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
9176 UInt32 modifiers;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9177 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
9178 kEventParamKeyModifiers};
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9179 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
9180 typeUInt32};
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9181 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
9182 &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
9183 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
9184 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9185 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
9186 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
9187 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9188 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
9189 return noErr;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9190 }
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9191
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9192 return eventNotHandledErr;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9193 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9194
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9195 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
9196 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
9197 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9198 OSErr err = noErr;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9199 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
9200 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
9201
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9202 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
9203 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
9204 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
9205 GetEventTypeCount (specs), specs,
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9206 NULL, NULL);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
9207 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9208
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9209 static pascal OSStatus
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9210 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
9211 EventHandlerCallRef next_handler;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9212 EventRef event;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9213 void *data;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9214 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9215 WindowPtr wp;
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9216 OSStatus result, err;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9217 UInt32 attributes;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9218 XSizeHints *size_hints;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9219
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9220 err = GetEventParameter (event, kEventParamDirectObject, typeWindowRef,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9221 NULL, sizeof (WindowPtr), NULL, &wp);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9222 if (err != noErr)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9223 return eventNotHandledErr;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9224
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9225 switch (GetEventKind (event))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9226 {
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9227 case kEventWindowUpdate:
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9228 result = CallNextEventHandler (next_handler, event);
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9229 if (result != eventNotHandledErr)
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9230 return result;
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9231
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9232 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
9233 return noErr;
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9234
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9235 case kEventWindowBoundsChanging:
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9236 result = CallNextEventHandler (next_handler, event);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9237 if (result != eventNotHandledErr)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9238 return result;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9239
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9240 err = GetEventParameter (event, kEventParamAttributes, typeUInt32,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9241 NULL, sizeof (UInt32), NULL, &attributes);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9242 if (err != noErr)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9243 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9244
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9245 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
9246 if ((attributes & kWindowBoundsChangeUserResize)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9247 && ((size_hints->flags & (PResizeInc | PBaseSize | PMinSize))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9248 == (PResizeInc | PBaseSize | PMinSize)))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9249 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9250 Rect bounds;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9251 int width, height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9252
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9253 err = GetEventParameter (event, kEventParamCurrentBounds,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9254 typeQDRectangle, NULL, sizeof (Rect),
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9255 NULL, &bounds);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9256 if (err != noErr)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9257 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9258
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9259 width = bounds.right - bounds.left;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9260 height = bounds.bottom - bounds.top;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9261
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9262 if (width < size_hints->min_width)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9263 width = size_hints->min_width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9264 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9265 width = size_hints->base_width
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9266 + (int) ((width - size_hints->base_width)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9267 / (float) size_hints->width_inc + .5)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9268 * size_hints->width_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9269
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9270 if (height < size_hints->min_height)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9271 height = size_hints->min_height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9272 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9273 height = size_hints->base_height
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9274 + (int) ((height - size_hints->base_height)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9275 / (float) size_hints->height_inc + .5)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9276 * size_hints->height_inc;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9277
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9278 bounds.right = bounds.left + width;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9279 bounds.bottom = bounds.top + height;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9280 SetEventParameter (event, kEventParamCurrentBounds,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9281 typeQDRectangle, sizeof (Rect), &bounds);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9282 return noErr;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9283 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9284 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
9285
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
9286 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
9287 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
9288 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
9289 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
9290 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
9291
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
9292 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
9293 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
9294
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
9295 break;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9296 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9297
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9298 return eventNotHandledErr;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9299 }
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9300
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9301 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
9302 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
9303 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
9304 EventRef event;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9305 void *data;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9306 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9307 OSStatus result, err;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9308
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9309 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
9310 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9311 case kEventMouseWheelMoved:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9312 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9313 WindowPtr wp;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9314 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
9315 EventMouseWheelAxis axis;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9316 SInt32 delta;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9317 Point point;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9318
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9319 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
9320 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
9321 return result;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9322
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9323 err = GetEventParameter (event, kEventParamWindowRef, typeWindowRef,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9324 NULL, sizeof (WindowRef), NULL, &wp);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9325 if (err != noErr)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9326 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9327
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9328 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
9329 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
9330 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9331
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9332 err = GetEventParameter (event, kEventParamMouseWheelAxis,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9333 typeMouseWheelAxis, NULL,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9334 sizeof (EventMouseWheelAxis), NULL, &axis);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9335 if (err != noErr || axis != kEventMouseWheelAxisY)
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9336 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9337
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9338 err = GetEventParameter (event, kEventParamMouseWheelDelta,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9339 typeSInt32, NULL, sizeof (SInt32),
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9340 NULL, &delta);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9341 if (err != noErr)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9342 break;
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9343 err = GetEventParameter (event, kEventParamMouseLocation,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9344 typeQDPoint, NULL, sizeof (Point),
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9345 NULL, &point);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9346 if (err != noErr)
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9347 break;
63461
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9348 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
9349 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
9350 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
9351 (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
9352 | ((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
9353 SetPortWindowPort (wp);
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9354 GlobalToLocal (&point);
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9355 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
9356 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
9357 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
9358
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9359 return noErr;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9360 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9361 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9362
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9363 default:
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9364 break;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9365 }
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9366
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9367 return eventNotHandledErr;
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9368 }
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9369
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9370 #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
9371 OSErr
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9372 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
9373 EventRef event;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9374 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9375 OSErr err;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9376 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
9377 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
9378
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9379 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
9380 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9381 case kEventServicePaste:
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9382 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
9383 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
9384 &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
9385 break;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9386
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9387 case kEventServicePerform:
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9388 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9389 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
9390 kEventParamServiceUserData};
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9391 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
9392 typeCFStringRef};
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9393
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9394 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
9395 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
9396 &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
9397 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9398 break;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9399
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9400 default:
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9401 abort ();
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9402 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9403
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9404 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
9405 {
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9406 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
9407 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
9408 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9409
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9410 return err;
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9411 }
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9412 #endif /* MAC_OSX */
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9413 #endif /* USE_CARBON_EVENTS */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9414
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9415
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9416 OSErr
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9417 install_window_handler (window)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9418 WindowPtr window;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9419 {
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9420 OSErr err = noErr;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9421 #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
9422 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
9423 {{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
9424 {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
9425 {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
9426 {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
9427 {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
9428 {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
9429 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
9430 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
9431 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
9432
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9433 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
9434 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
9435 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
9436 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
9437 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
9438 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
9439 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
9440 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
9441 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
9442 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
9443 specs_mouse, NULL, NULL);
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9444 #endif
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9445 #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
9446 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
9447 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
9448 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
9449 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
9450
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9451 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
9452 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
9453 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
9454 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
9455 #endif
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9456 return err;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9457 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9458
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
9459 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
9460 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
9461 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
9462 {
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
9463 #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
9464 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
9465 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
9466 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
9467 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
9468 #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
9469 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9470
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9471 #if TARGET_API_MAC_CARBON
47635
b8d711da249c Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47634
diff changeset
9472 static pascal OSErr
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9473 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
9474 void *handlerRefCon, DragReference theDrag)
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9475 {
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9476 static int can_accept;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9477 short items;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9478 short index;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9479 ItemReference theItem;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9480 FlavorFlags theFlags;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9481 OSErr result;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9482
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9483 if (GetFrontWindowOfClass (kMovableModalWindowClass, false))
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9484 return dragNotAcceptedErr;
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9485
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9486 switch (message)
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9487 {
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9488 case kDragTrackingEnterHandler:
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9489 CountDragItems (theDrag, &items);
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9490 can_accept = 0;
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9491 for (index = 1; index <= items; index++)
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9492 {
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9493 GetDragItemReferenceNumber (theDrag, index, &theItem);
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9494 result = GetFlavorFlags (theDrag, theItem, flavorTypeHFS, &theFlags);
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9495 if (result == noErr)
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9496 {
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9497 can_accept = 1;
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9498 break;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9499 }
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9500 }
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9501 break;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9502
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9503 case kDragTrackingEnterWindow:
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9504 if (can_accept)
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9505 {
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9506 RgnHandle hilite_rgn = NewRgn ();
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9507 Rect r;
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9508 struct frame *f = mac_window_to_frame (window);
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9509
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9510 GetWindowPortBounds (window, &r);
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9511 OffsetRect (&r, -r.left, -r.top);
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9512 RectRgn (hilite_rgn, &r);
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9513 ShowDragHilite (theDrag, hilite_rgn, true);
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9514 DisposeRgn (hilite_rgn);
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9515 SetThemeCursor (kThemeCopyArrowCursor);
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9516 }
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9517 break;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9518
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9519 case kDragTrackingInWindow:
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9520 break;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9521
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9522 case kDragTrackingLeaveWindow:
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9523 if (can_accept)
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9524 {
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9525 struct frame *f = mac_window_to_frame (window);
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9526
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9527 HideDragHilite (theDrag);
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9528 SetThemeCursor (kThemeArrowCursor);
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9529 }
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9530 break;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9531
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9532 case kDragTrackingLeaveHandler:
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9533 break;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9534 }
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9535
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9536 return noErr;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9537 }
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9538
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9539 static pascal OSErr
47635
b8d711da249c Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47634
diff changeset
9540 mac_do_receive_drag (WindowPtr window, void *handlerRefCon,
b8d711da249c Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47634
diff changeset
9541 DragReference theDrag)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9542 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9543 short items;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9544 short index;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9545 FlavorFlags theFlags;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9546 Point mouse;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9547 OSErr result;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9548 ItemReference theItem;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9549 HFSFlavor data;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9550 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
9551 Lisp_Object file_list;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9552
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9553 if (GetFrontWindowOfClass (kMovableModalWindowClass, false))
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9554 return dragNotAcceptedErr;
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
9555
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
9556 file_list = Qnil;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9557 GetDragMouse (theDrag, &mouse, 0L);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9558 CountDragItems (theDrag, &items);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9559 for (index = 1; index <= items; index++)
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9560 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9561 /* Only handle file references. */
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9562 GetDragItemReferenceNumber (theDrag, index, &theItem);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9563 result = GetFlavorFlags (theDrag, theItem, flavorTypeHFS, &theFlags);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9564 if (result == noErr)
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9565 {
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9566 OSErr err;
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9567 AEDesc desc;
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9568
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9569 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
9570 &data, &size, 0L);
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9571 if (err == noErr)
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9572 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
9573 TYPE_FILE_NAME, &desc);
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9574 if (err == noErr)
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9575 {
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9576 Lisp_Object file;
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9577
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9578 /* 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
9579 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
9580 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
9581 if (err == noErr)
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9582 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
9583 AEDisposeDesc (&desc);
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9584 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9585 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9586 }
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9587 /* If there are items in the list, construct an event and post it to
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9588 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
9589 if (!NILP (file_list))
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9590 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9591 struct input_event event;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9592 Lisp_Object frame;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9593 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
9594 SInt16 modifiers;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9595
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9596 GlobalToLocal (&mouse);
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9597 GetDragModifiers (theDrag, NULL, NULL, &modifiers);
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9598
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9599 event.kind = DRAG_N_DROP_EVENT;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9600 event.code = 0;
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9601 event.modifiers = mac_to_emacs_modifiers (modifiers);
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9602 event.timestamp = TickCount () * (1000 / 60);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9603 XSETINT (event.x, mouse.h);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9604 XSETINT (event.y, mouse.v);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9605 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
9606 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
9607 event.arg = file_list;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9608 /* Post to the interrupt queue */
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9609 kbd_buffer_store_event (&event);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9610 /* MAC_TODO: Mimic behavior of windows by switching contexts to Emacs */
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9611 {
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9612 ProcessSerialNumber psn;
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9613 GetCurrentProcess (&psn);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9614 SetFrontProcess (&psn);
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9615 }
59189
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9616
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9617 return noErr;
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9618 }
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9619 else
60ffced08532 * term/mac-win.el: Require x-dnd.
Steven Tamm <steventamm@mac.com>
parents: 59146
diff changeset
9620 return dragNotAcceptedErr;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9621 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9622 #endif
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9623
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9624
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9625 #if __profile__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9626 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9627 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
9628 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9629 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
9630 ProfilerTerm ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9631 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9632 #endif
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 /* 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
9635 (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
9636 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
9637 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
9638 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
9639 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
9640 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
9641 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
9642 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
9643 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
9644 (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
9645 (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
9646 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
9647
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
9648 #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
9649 #undef main
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9650 int
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9651 main (void)
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9652 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9653 #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
9654 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
9655 exit(1);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9656 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9657
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9658 #if __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9659 /* 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
9660 _fcreator = 'EMAx';
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9661 _ftype = 'TEXT';
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9662 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9663
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9664 do_init_managers ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9665
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9666 do_get_menus ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9667
53651
c7d570b7ba42 (main) [USE_LSB_TAG]: Don't range check the ram.
Stefan Monnier <monnier@iro.umontreal.ca>
parents: 53606
diff changeset
9668 #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
9669 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
9670 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9671
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9672 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
9673
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9674 init_environ ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9675
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9676 init_coercion_handler ();
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
9677
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9678 initialize_applescript ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9679
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
9680 init_apple_event_handler ();
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9681
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9682 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9683 char **argv;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9684 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
9685
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9686 /* 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
9687 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
9688 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
9689 argc++;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9690
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9691 /* 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
9692 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
9693
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9694 #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
9695 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
9696 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9697
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9698 /* 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
9699 (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
9700 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9701
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9702 /* 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
9703 return 0;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9704 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9705 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9706
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9707 /* 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
9708 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
9709 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
9710 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
9711 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
9712 <linefeed>). */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9713 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
9714 /*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
9715 /*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
9716 /*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
9717
0ffb4e489776 2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents: 49346
diff changeset
9718 /*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
9719 /*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
9720 /*0x38*/ 0, 0, 0, 0,
0ffb4e489776 2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents: 49346
diff changeset
9721 /*0x3C*/ 0, 0, 0, 0,
0ffb4e489776 2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents: 49346
diff changeset
9722
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9723 /*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
9724 /*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
9725 /*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
9726 /*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
9727
0ffb4e489776 2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents: 49346
diff changeset
9728 /*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
9729 /*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
9730 /*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
9731 /*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
9732
0ffb4e489776 2003-01-28 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
Andrew Choi <akochoi@shaw.ca>
parents: 49346
diff changeset
9733 /*0x60*/ 0xc2 /*f5*/, 0xc3 /*f6*/, 0xc4 /*f7*/, 0xc0 /*f3*/,
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9734 /*0x64*/ 0xc5 /*f8*/, 0xc6 /*f9*/, 0, 0xc8 /*f11*/,
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9735 /*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
9736 /*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
9737
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
9738 /*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
9739 /*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
9740 /*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
9741 /*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
9742 };
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9743
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9744
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
9745 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
9746 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
9747 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9748 *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
9749 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
9750 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9751
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9752 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
9753 /*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
9754 /*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
9755 /*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
9756
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9757 /*0x30*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9758 /*0x34*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9759 /*0x38*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9760 /*0x3C*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9761
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9762 /*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
9763 /*0x44*/ 0, '/' /*kp-+*/, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9764 /*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
9765 /*0x4C*/ 0, 0, 0x3b /*kp-- = ';'*/, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9766
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9767 /*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
9768 /*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
9769 /*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
9770 /*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
9771
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9772 /*0x60*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9773 /*0x64*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9774 /*0x68*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9775 /*0x6C*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9776
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9777 /*0x70*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9778 /*0x74*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9779 /*0x78*/ 0, 0, 0, 0,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9780 /*0x7C*/ 0, 0, 0, 0
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9781 };
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9782 static int
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9783 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
9784 {
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9785 #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
9786 /* 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
9787 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
9788 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
9789 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
9790 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
9791 */
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9792
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9793
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9794 /* TODO / known issues
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9795
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9796 - 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
9797 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
9798 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
9799
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9800 - 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
9801 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
9802 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
9803 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
9804 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
9805 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
9806 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
9807
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9808 */
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9809 OSStatus err;
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9810 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
9811 if (!NILP(Vmac_function_modifier))
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9812 {
69301
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9813 err = GetEventParameter (eventRef, kEventParamKeyModifiers, typeUInt32,
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9814 NULL, sizeof (UInt32), NULL, &mods);
9082ca3ebeed (get_control_part_bounds): Fix type of return value.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69113
diff changeset
9815 if (err != noErr && mods & kEventKeyModifierFnMask)
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9816 { *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
9817
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9818 return (*newCode != 0);
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9819 }
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9820 }
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9821 #endif
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9822 return false;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9823 }
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9824
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
9825 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
9826 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
9827 {
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
9828 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
9829 (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
9830 | (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
9831 | (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
9832
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
9833 if (mods & mapped_modifiers)
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9834 {
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9835 /* This code comes from Keyboard Resource,
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9836 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
9837 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
9838 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
9839 It also does not translate correctly
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9840 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
9841 here also.
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9842
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9843 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
9844 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
9845 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
9846 such as Alt-3.
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9847 */
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
9848 /* 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
9849 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
9850 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
9851 /* 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
9852 int new_keycode = keycode | new_modifiers;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9853 Ptr kchr_ptr = (Ptr) GetScriptManagerVariable (smKCHRCache);
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9854 unsigned long some_state = 0;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9855 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
9856 &some_state) & 0xff;
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9857 /* 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
9858 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
9859 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
9860 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
9861 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
9862 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
9863
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9864 }
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9865 else
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9866 return def;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9867 }
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9868
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
9869
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9870 #if !USE_CARBON_EVENTS
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9871 static RgnHandle mouse_region = NULL;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9872
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9873 Boolean
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9874 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
9875 EventRecord *er;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9876 UInt32 sleep_time;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9877 Boolean dequeue;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9878 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9879 static EventRecord er_buf = {nullEvent};
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9880 UInt32 target_tick, current_tick;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9881 EventMask event_mask;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9882
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9883 if (mouse_region == NULL)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9884 mouse_region = NewRgn ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9885
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9886 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
9887 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
9888 event_mask -= highLevelEventMask;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9889
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9890 current_tick = TickCount ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9891 target_tick = current_tick + sleep_time;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9892
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9893 if (er_buf.what == nullEvent)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9894 while (!WaitNextEvent (event_mask, &er_buf,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9895 target_tick - current_tick, mouse_region))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9896 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9897 current_tick = TickCount ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9898 if (target_tick <= current_tick)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9899 return false;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9900 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9901
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9902 *er = er_buf;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9903 if (dequeue)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9904 er_buf.what = nullEvent;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9905 return true;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9906 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9907 #endif /* not USE_CARBON_EVENTS */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9908
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9909 /* 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
9910 user. */
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9911 int
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9912 XTread_socket (sd, expected, hold_quit)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9913 int sd, expected;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9914 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
9915 {
88d1b7a60637 (XTread_socket): Remove bufp_r and numcharsp args. Add hold_quit arg.
Kim F. Storm <storm@cua.dk>
parents: 54150
diff changeset
9916 struct input_event inev;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9917 int count = 0;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9918 #if USE_CARBON_EVENTS
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9919 EventRef eventRef;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9920 EventTargetRef toolbox_dispatcher;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9921 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9922 EventRecord er;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9923 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
9924
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9925 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
9926 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9927 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
9928 return -1;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9929 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9930
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9931 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
9932 BLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9933
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
9934 /* 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
9935 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
9936
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
9937 ++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
9938
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9939 #if USE_CARBON_EVENTS
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9940 toolbox_dispatcher = GetEventDispatcherTarget ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9941
69433
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
9942 while (
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
9943 #if USE_CG_DRAWING
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
9944 mac_prepare_for_quickdraw (NULL),
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
9945 #endif
a8fd29f179b0 (mac_draw_rectangle, x_draw_glyph_string_foreground)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69369
diff changeset
9946 !ReceiveNextEvent (0, NULL, kEventDurationNoWait,
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9947 kEventRemoveFromQueue, &eventRef))
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9948 #else /* !USE_CARBON_EVENTS */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
9949 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
9950 #endif /* !USE_CARBON_EVENTS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9951 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9952 int do_help = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9953 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
9954 unsigned long timestamp;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9955
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9956 /* 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
9957 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
9958 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
9959 in the kbd_buffer_gcpro vector. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9960 EVENT_INIT (inev);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9961 inev.kind = NO_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9962 inev.arg = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9963
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9964 #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
9965 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
9966 #else
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
9967 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
9968 #endif
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
9969
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
9970 #if USE_CARBON_EVENTS
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9971 /* Handle new events */
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
9972 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
9973 {
8aa0953a6870 (mac_compute_glyph_string_overhangs): Don't set
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 63098
diff changeset
9974 /* 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
9975 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
9976 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
9977 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
9978 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
9979 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
9980 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
9981 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
9982 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
9983 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
9984 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
9985 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
9986 else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9987 #endif /* USE_CARBON_EVENTS */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9988 switch (er.what)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9989 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9990 case mouseDown:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9991 case mouseUp:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9992 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9993 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
9994 ControlPartCode part_code;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9995 int tool_bar_p = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
9996
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
9997 #if USE_CARBON_EVENTS
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
9998 /* 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
9999 buttons to the correct handler. */
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10000 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10001 != eventNotHandledErr)
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10002 break;
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10003 #endif
66431
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
10004 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
10005
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10006 if (dpyinfo->grabbed && last_mouse_frame
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10007 && FRAME_LIVE_P (last_mouse_frame))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10008 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10009 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
10010 part_code = inContent;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10011 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10012 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10013 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10014 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
10015 if (tip_window && window_ptr == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10016 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10017 HideWindow (tip_window);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10018 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
10019 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10020 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10021
66181
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10022 if (er.what != mouseDown &&
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10023 (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
10024 break;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10025
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10026 switch (part_code)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10027 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10028 case inMenuBar:
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10029 f = mac_focus_frame (dpyinfo);
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10030 saved_menu_event_location = er.where;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10031 inev.kind = MENU_BAR_ACTIVATE_EVENT;
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10032 XSETFRAME (inev.frame_or_window, f);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10033 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10034
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10035 case inContent:
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10036 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
10037 SelectWindow (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10038 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10039 {
62281
9df01a686e3c [USE_TOOLKIT_SCROLL_BARS] (get_control_part_bounds):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 62103
diff changeset
10040 ControlPartCode control_part_code;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10041 ControlHandle ch;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10042 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
10043 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10044 ControlKind control_kind;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10045 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10046
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10047 f = mac_window_to_frame (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10048 /* convert to local coordinates of new window */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10049 SetPortWindowPort (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10050
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10051 GlobalToLocal (&mouse_loc);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10052 #if TARGET_API_MAC_CARBON
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10053 ch = FindControlUnderMouse (mouse_loc, window_ptr,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10054 &control_part_code);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10055 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10056 if (ch)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10057 GetControlKind (ch, &control_kind);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10058 #endif
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10059 #else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10060 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
10061 &ch);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10062 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10063
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10064 #if USE_CARBON_EVENTS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10065 inev.code = mac_get_mouse_btn (eventRef);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10066 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
10067 #else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10068 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
10069 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
10070 #endif
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10071 XSETINT (inev.x, mouse_loc.h);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10072 XSETINT (inev.y, mouse_loc.v);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10073
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10074 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
10075 || ch != 0
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10076 #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
10077 /* 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
10078 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
10079 && control_part_code != kControlNoPart
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10080 #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
10081 #ifdef MAC_OSX
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10082 && control_kind.kind == kControlKindScrollBar
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10083 #endif /* MAC_OSX */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10084 #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
10085 )
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10086 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10087 struct scroll_bar *bar;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10088
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10089 if (dpyinfo->grabbed && tracked_scroll_bar)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10090 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10091 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
10092 #ifndef USE_TOOLKIT_SCROLL_BARS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10093 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
10094 #endif
55851
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 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10097 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
10098 #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
10099 /* 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
10100 for toolkit scroll bars. */
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10101 if (er.modifiers & controlKey)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10102 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
10103 &er, &inev);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10104 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
10105 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
10106 &inev);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10107 else
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10108 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
10109 #else /* not USE_TOOLKIT_SCROLL_BARS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10110 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
10111 &er, &inev);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10112 if (er.what == mouseDown
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10113 && control_part_code == kControlIndicatorPart)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10114 tracked_scroll_bar = bar;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10115 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10116 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
10117 #endif /* not USE_TOOLKIT_SCROLL_BARS */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10118 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10119 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10120 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10121 Lisp_Object window;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10122 int x = mouse_loc.h;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10123 int y = mouse_loc.v;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10124
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10125 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
10126 if (EQ (window, f->tool_bar_window))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10127 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10128 if (er.what == mouseDown)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10129 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
10130 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10131 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
10132 inev.modifiers);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10133 tool_bar_p = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10134 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10135 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10136 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10137 XSETFRAME (inev.frame_or_window, f);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10138 inev.kind = MOUSE_CLICK_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10139 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10140 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10141
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10142 if (er.what == mouseDown)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10143 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10144 dpyinfo->grabbed |= (1 << inev.code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10145 last_mouse_frame = f;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10146
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10147 if (!tool_bar_p)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10148 last_tool_bar_item = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10149 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10150 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10151 {
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10152 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
10153 /* 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
10154 previously pressed, that would be because
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10155 of multi-button emulation. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10156 dpyinfo->grabbed = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10157 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10158 dpyinfo->grabbed &= ~(1 << inev.code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10159 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10160
66181
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10161 /* 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
10162 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
10163 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
10164 ButtonPress. */
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10165 if (f != 0)
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10166 f->mouse_moved = 0;
dc3ff6945eb2 (note_mouse_movement): Use PtInRect.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66110
diff changeset
10167
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10168 #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
10169 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
10170 #endif
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10171 switch (er.what)
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10172 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10173 case mouseDown:
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10174 inev.modifiers |= down_modifier;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10175 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10176 case mouseUp:
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10177 inev.modifiers |= up_modifier;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10178 break;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10179 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10180 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10181 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10182
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10183 case inDrag:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10184 #if TARGET_API_MAC_CARBON
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10185 DragWindow (window_ptr, er.where, NULL);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10186 #else /* not TARGET_API_MAC_CARBON */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10187 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
10188 #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
10189 /* Update the frame parameters. */
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
10190 {
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
10191 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
10192
56271
98f2b9da67f0 macterm.c (XTread_socket): Correctly set the frame position
Steven Tamm <steventamm@mac.com>
parents: 56146
diff changeset
10193 if (f && !f->async_iconified)
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10194 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
10195 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10196 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10197
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10198 case inGoAway:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10199 if (TrackGoAway (window_ptr, er.where))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10200 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10201 inev.kind = DELETE_WINDOW_EVENT;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10202 XSETFRAME (inev.frame_or_window,
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10203 mac_window_to_frame (window_ptr));
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10204 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10205 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10206
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10207 /* window resize handling added --ben */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10208 case inGrow:
57357
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10209 do_grow_window (window_ptr, &er);
05fe2d3ca439 macfns.c (mac_get_window_bounds): Add extern.
Steven Tamm <steventamm@mac.com>
parents: 56890
diff changeset
10210 break;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10211
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10212 /* window zoom handling added --ben */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10213 case inZoomIn:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10214 case inZoomOut:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10215 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
10216 do_zoom_window (window_ptr, part_code);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10217 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10218
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10219 default:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10220 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10221 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10222 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10223 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10224
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10225 case updateEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10226 #if USE_CARBON_EVENTS
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10227 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10228 != eventNotHandledErr)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
10229 break;
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10230 #else
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10231 do_window_update ((WindowPtr) er.message);
59384
a1edc5959dcf * macfns.c: Include sys/param.h.
Steven Tamm <steventamm@mac.com>
parents: 59325
diff changeset
10232 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10233 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10234
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10235 case osEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10236 #if USE_CARBON_EVENTS
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10237 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10238 != eventNotHandledErr)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
10239 break;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10240 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10241 switch ((er.message >> 24) & 0x000000FF)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10242 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10243 case suspendResumeMessage:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10244 if ((er.message & resumeFlag) == 1)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10245 do_app_resume ();
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10246 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10247 do_app_suspend ();
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10248 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10249
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10250 case mouseMovedMessage:
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10251 #if !USE_CARBON_EVENTS
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10252 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
10253 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
10254 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10255 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
10256 help_echo_string = Qnil;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10257
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10258 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
10259 && 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
10260 f = last_mouse_frame;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10261 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10262 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
10263
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10264 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
10265 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10266 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
10267 clear_mouse_face (dpyinfo);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10268 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10269
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10270 if (f)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10271 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10272 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
10273 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
10274
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10275 SetPortWindowPort (wp);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10276
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10277 GlobalToLocal (&mouse_pos);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10278
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10279 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
10280 #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
10281 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
10282 mouse_pos, &inev);
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10283 #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
10284 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
10285 mouse_pos.v
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10286 - 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
10287 er.when * (1000 / 60));
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10288 #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
10289 else
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10290 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10291 /* 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
10292 if (mouse_autoselect_window)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10293 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10294 Lisp_Object window;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10295
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10296 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
10297 mouse_pos.h,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10298 mouse_pos.v,
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10299 0, 0, 0, 0);
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10300
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10301 /* 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
10302 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
10303 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
10304 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
10305 if (WINDOWP (window)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10306 && !EQ (window, last_window)
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10307 && !EQ (window, selected_window))
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10308 {
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10309 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
10310 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
10311 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10312
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10313 last_window=window;
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10314 }
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
10315 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
10316 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
10317 }
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10318 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10319
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10320 /* If the contents of the global variable
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10321 help_echo_string has changed, generate a
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10322 HELP_EVENT. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10323 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
10324 do_help = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10325 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10326 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10327 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10328
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10329 case activateEvt:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10330 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10331 WindowPtr window_ptr = (WindowPtr) er.message;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10332
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10333 #if USE_CARBON_EVENTS
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10334 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10335 != eventNotHandledErr)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10336 break;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10337 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10338 if (window_ptr == tip_window)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10339 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10340 HideWindow (tip_window);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10341 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10342 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10343
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10344 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
10345 break;
57373
38e45bf0128a (x_update_window_end): Fix flicker on vertical line between
Kim F. Storm <storm@cua.dk>
parents: 57357
diff changeset
10346
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10347 if ((er.modifiers & activeFlag) != 0)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10348 {
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10349 /* A window has been activated */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10350 Point mouse_loc = er.where;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10351
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10352 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
10353
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10354 SetPortWindowPort (window_ptr);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10355 GlobalToLocal (&mouse_loc);
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10356 /* 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
10357 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
10358 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
10359 &mouse_loc);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10360 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10361 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10362 {
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10363 /* 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
10364 #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
10365 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
10366 {
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10367 struct input_event event;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10368
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10369 EVENT_INIT (event);
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10370 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
10371 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
10372 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
10373 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10374 event.timestamp = timestamp;
62103
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10375 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
10376 count++;
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10377 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10378 }
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
10379 #endif
56278
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10380 dpyinfo->grabbed = 0;
3d525d0266de macterm.c (do_window_activate, do_window_deactivate): Remove.
Steven Tamm <steventamm@mac.com>
parents: 56277
diff changeset
10381
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10382 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
10383
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10384 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
10385 if (f == dpyinfo->mouse_face_mouse_frame)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10386 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10387 /* 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
10388 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
10389 frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10390 clear_mouse_face (dpyinfo);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10391 dpyinfo->mouse_face_mouse_frame = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10392 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10393
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10394 /* 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
10395 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
10396 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
10397 mouse leaves the frame. */
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10398 if (any_help_event_p)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10399 do_help = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10400 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10401 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10402 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10403
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10404 case keyDown:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10405 case autoKey:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10406 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10407 int keycode = (er.message & keyCodeMask) >> 8;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10408 int xkeysym;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10409
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
10410 #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
10411 /* 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
10412 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
10413 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
10414 "eventNotHandledErr" and we can process it
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10415 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
10416 if ((mac_pass_command_to_system
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10417 || !(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
10418 && (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
10419 || !(er.modifiers & controlKey))
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10420 && (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
10421 || !(er.modifiers & optionKey)))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10422 if (SendEventToEventTarget (eventRef, toolbox_dispatcher)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10423 != eventNotHandledErr)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10424 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10425 #endif
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10426
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
10427 #if 0
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10428 if (dpyinfo->x_focus_frame == NULL)
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10429 {
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10430 /* 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
10431 are invisible. */
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10432 SysBeep (1);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10433 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10434 }
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
10435 #endif
61574
d3c53b9d1828 (x_autoselect_window_p): Remove variable.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61555
diff changeset
10436
61500
441abfeebcb2 (mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60635
diff changeset
10437 {
441abfeebcb2 (mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60635
diff changeset
10438 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
10439 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
10440
441abfeebcb2 (mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60635
diff changeset
10441 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
10442 {
441abfeebcb2 (mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60635
diff changeset
10443 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
10444
61500
441abfeebcb2 (mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60635
diff changeset
10445 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
10446 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
10447 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
10448 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
10449 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
10450 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
10451 count++;
441abfeebcb2 (mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60635
diff changeset
10452 }
441abfeebcb2 (mac_keyboard_text_encoding, current_mac_keyboard_text_encoding):
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 60635
diff changeset
10453 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
10454 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10455
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10456 ObscureCursor ();
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10457
69660
bc015cae7e3e (XTread_socket): Don't let key-press clear mouse face
Kim F. Storm <storm@cua.dk>
parents: 69512
diff changeset
10458 if (!dpyinfo->mouse_face_hidden && INTEGERP (Vmouse_highlight)
bc015cae7e3e (XTread_socket): Don't let key-press clear mouse face
Kim F. Storm <storm@cua.dk>
parents: 69512
diff changeset
10459 && !EQ (f->tool_bar_window, dpyinfo->mouse_face_window))
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10460 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10461 clear_mouse_face (dpyinfo);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10462 dpyinfo->mouse_face_hidden = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10463 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10464
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10465 /* 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
10466 /* 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
10467 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
10468 without re-translating the key code. */
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10469 #if USE_CARBON_EVENTS
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10470 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
10471 {
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10472 inev.code = xkeysym;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10473 /* 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
10474 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
10475 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
10476 xkeysym | 0x80, xkeysym);
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10477 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
10478 }
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
10479 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
10480 #endif
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10481 if (keycode_to_xkeysym (keycode, &xkeysym))
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10482 {
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10483 inev.code = 0xff00 | xkeysym;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10484 inev.kind = NON_ASCII_KEYSTROKE_EVENT;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10485 }
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10486 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
10487 {
b633b787c04d [USE_CG_TEXT_DRAWING] (mac_draw_string_cg): New function.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66818
diff changeset
10488 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
10489 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
10490 er.message & charCodeMask);
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10491 inev.kind = ASCII_KEYSTROKE_EVENT;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10492 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10493 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10494
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10495 #if USE_CARBON_EVENTS
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10496 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
10497 #else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10498 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
10499 #endif
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10500 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
10501 & (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
10502 | 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
10503 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
10504 break;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10505
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10506 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
10507 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
10508 AEProcessAppleEvent (&er);
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10509 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
10510 break;
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10511
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10512 default:
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10513 break;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10514 }
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
10515 #if USE_CARBON_EVENTS
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10516 ReleaseEvent (eventRef);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10517 #endif
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10518
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10519 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
10520 {
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10521 inev.timestamp = timestamp;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10522 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
10523 count++;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10524 }
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10525
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10526 if (do_help
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10527 && !(hold_quit && hold_quit->kind != NO_EVENT))
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10528 {
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10529 Lisp_Object frame;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10530
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10531 if (f)
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10532 XSETFRAME (frame, f);
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10533 else
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10534 frame = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10535
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10536 if (do_help > 0)
46860
8b7ade57211d 2002-08-11 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46856
diff changeset
10537 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10538 any_help_event_p = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10539 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
10540 help_echo_object, help_echo_pos);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10541 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10542 else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10543 {
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10544 help_echo_string = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10545 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
10546 }
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10547 count++;
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10548 }
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10549
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10550 }
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10551
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10552 /* 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
10553 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
10554 /* ??? 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
10555 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
10556 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10557 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
10558 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
10559 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10560
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
10561 #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
10562 /* 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
10563 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
10564 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
10565 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
10566 {
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
10567 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
10568
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
10569 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
10570 {
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
10571 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
10572
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
10573 /* 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
10574 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
10575 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
10576 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
10577
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
10578 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
10579 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
10580 }
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
10581 }
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
10582 #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
10583
68770
4eb8cd48f0ef (mac_define_frame_cursor): Don't change pointer shape
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 68651
diff changeset
10584 --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
10585 UNBLOCK_INPUT;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10586 return count;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10587 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10588
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10589
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10590 /* 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
10591 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
10592 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
10593 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
10594 #ifdef __MWERKS__
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10595 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10596 __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
10597 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10598 #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
10599 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10600
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10601 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10602 __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
10603 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10604 #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
10605 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10606 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10607
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10608 #ifdef MAC_OS8
47634
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
10609 void
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
10610 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
10611 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10612 Lisp_Object frame;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10613 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
10614
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10615 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
10616
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10617 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
10618 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
10619 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
10620 bzero (f->output_data.mac, sizeof (struct mac_output));
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10621
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10622 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
10623
51198
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
10624 FRAME_COLS (f) = 96;
f8e097cae353 Make (several) trivial substitutions for renamed and
Kim F. Storm <storm@cua.dk>
parents: 51048
diff changeset
10625 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
10626
53722
4f64eb1ea148 Move setting of scroll bars from make_mac_frame to
Steven Tamm <steventamm@mac.com>
parents: 53651
diff changeset
10627 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
10628 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
10629
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10630 FRAME_DESIRED_CURSOR (f) = FILLED_BOX_CURSOR;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10631
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10632 f->output_data.mac->cursor_pixel = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10633 f->output_data.mac->border_pixel = 0x00ff00;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10634 f->output_data.mac->mouse_pixel = 0xff00ff;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10635 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
10636
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
10637 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
10638 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
10639 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
10640 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
10641 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
10642 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
10643
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10644 FRAME_FONTSET (f) = -1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10645 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
10646 f->left_pos = 8;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10647 f->top_pos = 32;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10648 f->border_width = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10649
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10650 f->internal_border_width = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10651
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10652 f->auto_raise = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10653 f->auto_lower = 1;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10654
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10655 f->new_text_cols = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10656 f->new_text_lines = 0;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10657
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10658 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
10659 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
10660 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
10661
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10662 BLOCK_INPUT;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10663
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10664 if (!(FRAME_MAC_WINDOW (f) =
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10665 NewCWindow (NULL, &r, "\p", true, dBoxProc,
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10666 (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
10667 abort ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10668 /* 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
10669 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
10670
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10671 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
10672
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10673 x_make_gc (f);
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10674
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10675 /* 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
10676 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
10677
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10678 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
10679 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
10680 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
10681 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
10682 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
10683 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
10684 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
10685 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
10686 build_string ("white")), Qnil));
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10687 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10688 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10689
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10690
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10691 /***********************************************************************
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10692 Initialization
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10693 ***********************************************************************/
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10694
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10695 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
10696
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10697 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10698 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
10699 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10700 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
10701 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
10702
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10703 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
10704
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10705 #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
10706 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
10707 = (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
10708 + 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
10709 + 2);
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10710 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
10711 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
10712 #else
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10713 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
10714 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
10715 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10716
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10717 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
10718
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10719 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
10720 dpyinfo->resx = 72.0;
8ee33d677ac7 (last_mouse_glyph_frame): New var.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 66181
diff changeset
10721 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
10722 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
10723 #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
10724 /* 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
10725 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
10726 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
10727 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
10728 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
10729 {
550df8e67006 * macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents: 56278
diff changeset
10730 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
10731 CGDisplayCount disp_count;
550df8e67006 * macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents: 56278
diff changeset
10732 CGDisplayErr error_code;
550df8e67006 * macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents: 56278
diff changeset
10733
550df8e67006 * macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents: 56278
diff changeset
10734 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
10735 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
10736 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
10737
550df8e67006 * macterm.c (mac_initialize_display_info): Use CGGetActiveDisplayList
Jan Djärv <jan.h.d@swipnet.se>
parents: 56278
diff changeset
10738 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
10739 }
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
10740 #else
54150
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
10741 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
10742 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
10743 gdDevType, dpyinfo->color_p))
6c8849d06ab3 Inserting Yamomotosan's changes for MacOSX image support, better support
Steven Tamm <steventamm@mac.com>
parents: 53956
diff changeset
10744 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
10745 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10746 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
10747 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
10748 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
10749 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
10750 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
10751
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10752 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
10753 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
10754 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
10755 dpyinfo->mouse_face_window = Qnil;
55851
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10756 dpyinfo->mouse_face_overlay = Qnil;
f1d6a507dcfd Support Tooltips with the Carbon emacs port.
Steven Tamm <steventamm@mac.com>
parents: 55583
diff changeset
10757 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
10758 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10759
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
10760
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
10761 static XrmDatabase
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10762 mac_make_rdb (xrm_option)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10763 char *xrm_option;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10764 {
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
10765 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
10766
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
10767 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
10768 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
10769 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
10770
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
10771 return database;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10772 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10773
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10774 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
10775 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
10776 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
10777 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
10778 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
10779 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10780 struct mac_display_info *dpyinfo;
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10781
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10782 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
10783
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10784 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
10785 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10786 mac_initialize ();
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10787 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
10788 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10789
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10790 if (x_display_list)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10791 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
10792
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10793 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
10794
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10795 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
10796
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
10797 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
10798
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10799 /* Put this display on the chain. */
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10800 dpyinfo->next = x_display_list;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10801 x_display_list = dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10802
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10803 /* 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
10804 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
10805 Fcons (Qnil, dpyinfo->xrdb)),
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10806 x_display_name_list);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10807 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
10808
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10809 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
10810
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10811 return dpyinfo;
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10812 }
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10813 /* 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
10814
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10815 void
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10816 x_delete_display (dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10817 struct mac_display_info *dpyinfo;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10818 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10819 int i;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10820
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10821 /* 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
10822 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
10823 if (! NILP (x_display_name_list)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10824 && 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
10825 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
10826 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10827 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10828 Lisp_Object tail;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10829
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10830 tail = x_display_name_list;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10831 while (CONSP (tail) && CONSP (XCDR (tail)))
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10832 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10833 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
10834 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10835 XSETCDR (tail, XCDR (XCDR (tail)));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10836 break;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10837 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10838 tail = XCDR (tail);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10839 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10840 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10841
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10842 if (x_display_list == dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10843 x_display_list = dpyinfo->next;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10844 else
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10845 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10846 struct x_display_info *tail;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10847
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10848 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
10849 if (tail->next == dpyinfo)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10850 tail->next = tail->next->next;
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10851 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10852
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10853 /* 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
10854 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
10855 if (dpyinfo->font_table[i].name)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10856 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10857 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
10858 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
10859 xfree (dpyinfo->font_table[i].name);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10860 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10861
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10862 if (dpyinfo->font_table->font_encoder)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10863 xfree (dpyinfo->font_table->font_encoder);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10864
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10865 xfree (dpyinfo->font_table);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10866 xfree (dpyinfo->mac_id_name);
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10867
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10868 if (x_display_list == 0)
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10869 {
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10870 mac_clear_font_name_table ();
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10871 bzero (dpyinfo, sizeof (*dpyinfo));
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10872 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10873 }
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
10874
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10875
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
10876 #ifdef MAC_OSX
47634
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
10877 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
10878 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
10879 {
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10880 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
10881 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
10882 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
10883 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
10884
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10885 /* 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
10886 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
10887 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
10888
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10889 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
10890 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
10891 {
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10892 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
10893 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
10894 /* 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
10895 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
10896 {
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10897 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
10898 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
10899 }
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10900 }
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10901 /* 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
10902
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10903 /* 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
10904 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
10905 }
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10906
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10907 void
47634
fb65015ecfce Whitespace changes.
Richard M. Stallman <rms@gnu.org>
parents: 47173
diff changeset
10908 MakeMeTheFrontProcess ()
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
10909 {
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
10910 ProcessSerialNumber psn;
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
10911 OSErr err;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
10912
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
10913 err = GetCurrentProcess (&psn);
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
10914 if (err == noErr)
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
10915 (void) SetFrontProcess (&psn);
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
10916 }
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
10917
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10918 /***** 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
10919
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10920 /* 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
10921 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
10922 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
10923 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
10924
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10925 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
10926 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
10927 {
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10928 /* 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
10929 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
10930
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10931 /* 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
10932 mac_quit_char_modifiers = 0;
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
10933 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
10934 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
10935 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
10936 }
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10937
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10938 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
10939 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
10940 {
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
10941 /* 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
10942 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
10943 /* 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
10944 /* 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
10945
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
10946 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
10947 }
64276
0a062d2d75f3 Don't include stdlib.h or composite.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 64102
diff changeset
10948 #endif /* MAC_OSX */
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
10949
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10950 static void
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10951 init_menu_bar ()
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10952 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10953 #ifdef MAC_OSX
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10954 OSErr err;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10955 MenuRef menu;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10956 MenuItemIndex menu_index;
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10957
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10958 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
10959 &menu, &menu_index);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10960 if (err == noErr)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10961 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
10962 #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
10963 EnableMenuCommand (NULL, kHICommandPreferences);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10964 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
10965 &menu, &menu_index);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10966 if (err == noErr)
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10967 {
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10968 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
10969 InsertMenuItemTextWithCFString (menu, NULL,
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10970 0, kMenuItemAttrSeparator, 0);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10971 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
10972 0, 0, kHICommandAbout);
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10973 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10974 #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
10975 #else /* !MAC_OSX */
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10976 #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
10977 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
10978 #endif
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10979 #endif
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10980 }
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10981
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
10982
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10983 /* 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
10984
50360
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
10985 extern frame_parm_handler mac_frame_parm_handlers[];
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
10986
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
10987 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
10988 {
50360
0cebe62850bc Remove unnecessary extern declarations.
Kim F. Storm <storm@cua.dk>
parents: 50344
diff changeset
10989 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
10990 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
10991 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
10992 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
10993 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
10994 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
10995 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
10996 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
10997 x_update_window_end,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
10998 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
10999 x_flush,
58634
95d38c47c806 * keyboard.c: Don't undef SIGIO
Steven Tamm <steventamm@mac.com>
parents: 58403
diff changeset
11000 0, /* flush_display_optional */
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11001 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
11002 x_get_glyph_overhangs,
50097
ee703213acfa Remove generic fringe code.
Kim F. Storm <storm@cua.dk>
parents: 49600
diff changeset
11003 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
11004 x_draw_fringe_bitmap,
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11005 #if USE_CG_DRAWING
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11006 mac_define_fringe_bitmap,
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11007 mac_destroy_fringe_bitmap,
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11008 #else
53885
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
11009 0, /* define_fringe_bitmap */
693745d24f76 (x_draw_fringe_bitmap): Copy unadapted code from
Kim F. Storm <storm@cua.dk>
parents: 53722
diff changeset
11010 0, /* destroy_fringe_bitmap */
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11011 #endif
50157
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
11012 mac_per_char_metric,
203d5a0f77a8 The following changes consolidate some of the gui-independent
Kim F. Storm <storm@cua.dk>
parents: 50097
diff changeset
11013 mac_encode_char,
59718
d4cb255b034d * dispextern.h (struct glyph_string): New members clip_head and
Steven Tamm <steventamm@mac.com>
parents: 59655
diff changeset
11014 mac_compute_glyph_string_overhangs,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11015 x_draw_glyph_string,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11016 mac_define_frame_cursor,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11017 mac_clear_frame_area,
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11018 mac_draw_window_cursor,
50344
31cf5b909af7 (x_redisplay_interface): Add missing entry for
Andreas Schwab <schwab@suse.de>
parents: 50247
diff changeset
11019 mac_draw_vertical_window_border,
50222
90e10bfd8bfa * macterm.c: Remove consolidated defines and code.
Kim F. Storm <storm@cua.dk>
parents: 50157
diff changeset
11020 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
11021 };
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11022
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11023 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11024 mac_initialize ()
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11025 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11026 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
11027
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11028 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
11029 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
11030 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
11031 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
11032 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
11033 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
11034 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
11035 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
11036 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
11037 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
11038 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
11039 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
11040 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
11041 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
11042
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11043 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
11044 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
11045 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
11046 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
11047
53226
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
11048 TTY_SCROLL_REGION_OK (CURTTY ()) = 1; /* we'll scroll partial frames */
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
11049 TTY_CHAR_INS_DEL_OK (CURTTY ()) = 1;
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
11050 TTY_LINE_INS_DEL_OK (CURTTY ()) = 1; /* we'll just blt 'em */
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
11051 TTY_FAST_CLEAR_END_OF_LINE (CURTTY ()) = 1; /* X does this well */
dd3018b4785b Implemented multiple tty support.
Karoly Lorentey <lorentey@elte.hu>
parents: 53225
diff changeset
11052 TTY_MEMORY_BELOW_FRAME (CURTTY ()) = 0; /* we don't remember what
53225
4250e7e26247 Add a level of indirection to terminal characteristics.
Karoly Lorentey <lorentey@elte.hu>
parents: 52977
diff changeset
11053 scrolls off the
4250e7e26247 Add a level of indirection to terminal characteristics.
Karoly Lorentey <lorentey@elte.hu>
parents: 52977
diff changeset
11054 bottom */
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11055 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
11056
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11057 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
11058 any_help_event_p = 0;
49600
23a1cea22d13 Trailing whitespace deleted.
Juanma Barranquero <lekktu@gmail.com>
parents: 49504
diff changeset
11059
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11060 /* Try to use interrupt input; if we can't, then start polling. */
83417
fe870a866ce7 Don't let x_initialize break 8-bit input on ttys. (Reported by Joakim Verona.) Split `set-input-mode'.
Karoly Lorentey <lorentey@elte.hu>
parents: 83408
diff changeset
11061 Fset_input_interrupt_mode (Qt);
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11062
57425
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
11063 BLOCK_INPUT;
46121
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11064
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11065 #if TARGET_API_MAC_CARBON
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11066
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11067 #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
11068 #ifdef MAC_OSX
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11069 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
11070
9f54273b7ff1 Added code to check for pressing of quit_char in the Carbon Event Queue
Steven Tamm <steventamm@mac.com>
parents: 48625
diff changeset
11071 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
11072 #endif /* MAC_OSX */
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11073
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11074 init_command_handler ();
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11075
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11076 init_menu_bar ();
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11077 #endif /* USE_CARBON_EVENTS */
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
11078
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
11079 #ifdef MAC_OSX
67788
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
11080 init_coercion_handler ();
114d965dfb60 Don't include sys/param.h.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67733
diff changeset
11081
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11082 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
11083
46856
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
11084 if (!inhibit_window_system)
eba75fedd593 2002-08-10 Andrew Choi <akochoi@shaw.ca>
Andrew Choi <akochoi@shaw.ca>
parents: 46805
diff changeset
11085 MakeMeTheFrontProcess ();
46121
2198a6632b2b In mac:
Andrew Choi <akochoi@shaw.ca>
parents: 45890
diff changeset
11086 #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
11087 #endif
69488
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11088
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11089 #if USE_CG_DRAWING
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11090 mac_init_fringe ();
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11091 #endif
72158718da16 (mac_initialize) [USE_CG_DRAWING]: Call mac_init_fringe.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 69433
diff changeset
11092
57425
0867872551d9 macterm.c (x_raise_frame): Add BLOCK_INPUT around SelectWindow
Steven Tamm <steventamm@mac.com>
parents: 57373
diff changeset
11093 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
11094 }
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11095
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11096
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11097 void
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11098 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
11099 {
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11100 #if 0
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11101 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
11102 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
11103 #endif
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11104
67101
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
11105 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
11106 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
11107 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
11108 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
11109 Qsuper = intern ("super"); staticpro (&Qsuper);
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
11110 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
11111 staticpro (&Qmodifier_value);
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
11112
f7f6ee6060c8 (Qcontrol): Rename from Qctrl. All uses changed.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67000
diff changeset
11113 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
11114 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
11115 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
11116 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
11117 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
11118
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11119 #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
11120 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
11121 #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
11122 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
11123 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
11124 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
11125 #endif
67458
e6e566aad553 (Qmac_ready_for_drag_n_drop, Qapplication, Qabout)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67101
diff changeset
11126 #endif
61786
223bdb2c3b9a (handling_window_update, terminate_flag): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61658
diff changeset
11127
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11128 #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
11129 Fprovide (intern ("mac-carbon"), Qnil);
59146
9bde7721ad0f * dispextern.h: Change HAVE_CARBON to MAC_OS.
Steven Tamm <steventamm@mac.com>
parents: 59041
diff changeset
11130 #endif
49015
c49640262de0 * macterm.c (syms_of_macterm): Provide the feature "mac-carbon" to
Steven Tamm <steventamm@mac.com>
parents: 49003
diff changeset
11131
53956
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11132 staticpro (&Qreverse);
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11133 Qreverse = intern ("reverse");
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11134
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11135 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
11136 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
11137
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11138 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
11139 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
11140
66005
f455f022b799 (PER_CHAR_METRIC): Remove unused macro.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65910
diff changeset
11141 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
11142 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
11143
65772
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
11144 #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
11145 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
11146 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
11147 #endif
797dc38b416e (mac_draw_string_common, x_per_char_metric)
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 65643
diff changeset
11148
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
11149 /* 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
11150 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
11151 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
11152 &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
11153 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
11154 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
11155 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
11156 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
11157
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
11158 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
11159 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
11160
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11161 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
11162 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
11163 #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
11164 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
11165 #else
2d42fd79f829 (toolkit_scroll_bar_interaction): Remove unused
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61786
diff changeset
11166 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
11167 #endif
44890
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11168
01b93e5e53a7 Patch for building Emacs on Mac OS X. April 26, 2002. See ChangeLog,
Andrew Choi <akochoi@shaw.ca>
parents:
diff changeset
11169 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
11170 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
11171
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
11172 /* 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
11173
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
11174 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
11175 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
11176 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
11177 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
11178 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
11179
57783
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
11180 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
11181 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
11182 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
11183 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
11184 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
11185 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
11186 Vmac_option_modifier = Qnil;
4cb8cebc3255 2004-10-28 Will <will@glozer.net>
John Wiegley <johnw@newartisans.com>
parents: 57425
diff changeset
11187
66818
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
11188 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
11189 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
11190 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
11191 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
11192 Vmac_command_modifier = Qmeta;
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
11193
d85a089fce11 macterm.c (backtranslate_modified_keycode): New function to
Steven Tamm <steventamm@mac.com>
parents: 66431
diff changeset
11194 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
11195 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
11196 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
11197 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
11198 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
11199 Vmac_function_modifier = Qnil;
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11200
55025
5cbecea4d4ad (x_draw_relief_rect): Add top_p and bot_p args.
Kim F. Storm <storm@cua.dk>
parents: 54366
diff changeset
11201 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
11202 &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
11203 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
11204 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
11205 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
11206 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
11207 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
11208 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
11209 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
11210 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
11211 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
11212 Vmac_emulate_three_button_mouse = Qnil;
922b1cbf208b (Vmac_emulate_three_button_mouse): New variable for
Steven Tamm <steventamm@mac.com>
parents: 53935
diff changeset
11213
46798
a8e027c9c403 In src:
Andrew Choi <akochoi@shaw.ca>
parents: 46370
diff changeset
11214 #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
11215 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
11216 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
11217 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
11218 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
11219 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
11220
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
11221 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
11222 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
11223 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
11224
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
11225 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
11226 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
11227 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
11228
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
11229 #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
11230
037431c17fba (mac_do_receive_drag): Drag-and-drop items are now
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 67458
diff changeset
11231 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
11232 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
11233 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
11234 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
11235 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
11236
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
11237 /* 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
11238 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
11239 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
11240 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
11241 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
11242 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
11243
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
11244 (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
11245
38a086380ddc (Qbig5, Qcn_gb, Qsjis, Qeuc_kr): Remove variables.
YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
parents: 61615
diff changeset
11246 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
11247 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
11248 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
11249 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
11250 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
11251 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
11252 }
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
11253
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
11254 /* arch-tag: f2259165-4454-4c04-a029-a133c8af7b5b
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 51570
diff changeset
11255 (do not change this comment) */